Upload
batryjclr
View
705
Download
0
Tags:
Embed Size (px)
DESCRIPTION
En este manual podras encontrar programación basica de visual basic para el diseño de formularios.
Citation preview
FORMULARIOSMODULO.- MuestraFormulario
Option Explicit
'MACROS PARA MOSTRAR LOS FORMULAROS
Sub form1()
Load ALUMNOS
ALUMNOS.Show
End Sub
Sub form2()
Load Altas
Altas.Show
End Sub
Sub form3()
Load MODIFICAR
MODIFICAR.Show
End Sub
Sub form4()
Load MODIFICAR
BAJAS.Show
End Sub
MODULO.- Ordena
Sub Macro1()
Dim i As Integer
ActiveWorkbook.Worksheets("ALUMNOS").Select
Range("A365536").End(xlUp).Offset(1, 0).Select
i = ActiveCell.Row
Range("A2:J" & i).Select
ActiveWorkbook.Worksheets("ALUMNOS").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ALUMNOS").Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ALUMNOS").Sort
.SetRange Range("A2:J" & i)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Hoja1.Select
Range("B9").Select
End Sub
MODULO.-Modulo2
Sub Macro2()
Dim i As Integer
ActiveWorkbook.Worksheets("EXTRAS").Select
Range("A365536").End(xlUp).Offset(1, 0).Select
i = ActiveCell.Row
Range("A2" & i).Select
ActiveWorkbook.Worksheets("EXTRAS").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("EXTRAS").Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("EXTRAS").Sort
.SetRange Range("A2" & i)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Hoja1.Select
Range("X9").Select
End Sub
ALTAS
Option Explicit
'AGREGAR DATOS
Private Sub CommandButton1_Click()
'declaración de la variable i
Dim i As Integer
'se despliega un mensaje de advertencia si algún TextBox
'no fue llenado
'la palabra reservada "Me" hace referencia al UserForm2 (para abreviar)
'pues es lo mismo que poner UserForm2
If Me.NUMERO.Text = "" Then MsgBox ("Campo NUMERO no puede estar vacio"): _
Exit Sub
If Me.NOMBRE.Text = "" Then MsgBox ("Campo NOMBRE no puede estar vacio"): _
Exit Sub
If Me.APELLIDOP.Text = "" Then MsgBox ("Campo APELLIDO PATERNO no puede estar vacio"): _
Exit Sub
If Me.APELLIDOM.Text = "" Then MsgBox ("Campo APELLIDO MATERNO no puede estar vacio"): _
Exit Sub
If Me.EDAD.Text = "" Then MsgBox ("Campo EDAD no puede estar vacio"): Exit Sub
If Me.LOCALIDAD.Text = "" Then MsgBox ("Campo LOCALIDAD no puede estar vacio"): _
Exit Sub
If Me.COMUNIDAD.Text = "" Then MsgBox ("Campo COMUNIDAD no puede estar vacio"): _
Exit Sub
If Me.TELEFONO.Text = "" Then MsgBox ("Campo TELEFONO no puede estar vacio"): _
Exit Sub
If Me.GRUPO.Text = "" Then MsgBox ("Campo GRUPO no puede estar vacio"): _
Exit Sub
If Me.TURNO.Text = "" Then MsgBox ("Campo TURNO no puede estar vacio"): Exit Sub
'la sentencia de abajo se pone para evitar los flashes de pantalla
Application.ScreenUpdating = False
'se selecciona la hoja 2 que es donde está el listado
Hoja2.Select
'se asigna a la variable i el valor de la última fila con datos +1
'con Range("A" & Rows.Count).End(xlUp).Row + 1, es decir,
'se va hasta la última fila de la columna "A"(1048576 en la versión 2007
'o 65536 en la versión 2003) y de allí se sube con(xlUp)hasta la primera fila
'con datos, luego se le suma una para obtener la fila donde
'se deben agregar los ítems
i = Range("A" & Rows.Count).End(xlUp).Row + 1
'se agregan los nuevos datos
Range("A" & i).Value = NUMERO.Text
Range("B" & i).Value = NOMBRE.Text
Range("C" & i).Value = APELLIDOP.Text
Range("D" & i).Value = APELLIDOM.Text
Range("E" & i).Value = EDAD.Text
Range("F" & i).Value = LOCALIDAD.Text
Range("G" & i).Value = COMUNIDAD.Text
Range("H" & i).Value = TELEFONO.Text
Range("i" & i).Value = GRUPO.Text
Range("j" & i).Value = TURNO.Text
'mensaje de advertencia
If MsgBox("¿VERIFICO QUE TODOS LOS DATOS ESTAN CORRECTOS?", vbExclamation + vbYesNo) = _
vbYes Then
'Después de verificar que todos los datos están correctos
'se vacían los TextBox
NUMERO.Text = ""
NOMBRE.Text = ""
APELLIDOP.Text = ""
APELLIDOM.Text = ""
EDAD.Text = ""
LOCALIDAD.Text = ""
COMUNIDAD.Text = ""
TELEFONO.Text = ""
GRUPO.Text = ""
TURNO.Text = ""
'se cierra el if
End If
'se selecciona la hoja 1 para que el formulario
'aparezca en ella
Hoja1.Select
'se selecciona el rango B4 para ocultrlo detrás de un botón
Range("B4").Select
End Sub
'OCULTA EL FORMULARIO ALTAS
Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
'se llama a la subrutina Macro1
'que es la que ordena alfabéticamente por marca y modelo
'me parece la mejor ubicación pues si se agregan varios vehículos
'se los ordena todos juntos y no uno por uno como seria el caso
'de habela puesto en la línea 49 de la macro CommandButton1_Click()
Macro1
'se oculta el formulario
Me.Hide 'se podría haber puesto ALTAS.Hide
'se coloca el cursor(foco) en el TextMModelo
NUMERO.SetFocus
End Sub
Private Sub UserForm_Initialize()
Dim A2 As Range
Dim B2 As Range
Dim C2 As Range
Application.ScreenUpdating = False
Hoja3.Select
Range("A2").Select
While ActiveCell <> ""
LOCALIDAD.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Macro2
Hoja1.Select
Range("E9").Select
Hoja3.Select
Range("B2").Select
While ActiveCell <> ""
GRUPO.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Hoja1.Select
Range("F9").Select
Hoja3.Select
Range("C2").Select
While ActiveCell <> ""
TURNO.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Hoja1.Select
Range("G9").Select
End Sub
ALUMNOS
Option Explicit
Private Sub CommandButton1_Click()
NUMERO = ""
NOMBRE = ""
APELLIDOP = ""
APELLIDOM = ""
EDAD = ""
LOCALIDAD = ""
COMUNIDAD = ""
TELEFONO = ""
GRUPO = ""
TURNO = ""
Hoja1.Select
Range("B4").Select
ALUMNOS.Hide
End Sub
'SE MUESTRAN TODOS LOS DATOS DE LOS VEHICULOS
Private Sub NUMERO_Change()
'declaración de variables
Dim NUMEROS As String 'a esta variable se le asignará
'el modelo que se selecciona del ComboBox1
Dim idBusca As String 'busca una coincidencia con MarcaModelo
Dim fila As Integer 'variable que comienza en 1 y se incrementa
'hasta que haya coincidencia con MarcaModelo e idBusca
'se elimina el parpadeo de la pantalla
Application.ScreenUpdating = False
Sheets("ALUMNOS").Select
Range("A2").Select
fila = 1
NUMEROS = NUMERO
'se entra en un ciclo Do-While-Loop del que se sale si hay coincidencia
'entre idBusca y MarcaModelo, obteniéndose la fila de dicha coincidencia
Do While idBusca <> NUMEROS
fila = fila + 1
idBusca = Range("A" & fila).Value
Loop
NOMBRE = Range("B" & fila).Value
APELLIDOP = Range("C" & fila).Value
APELLIDOM = Range("D" & fila).Value
EDAD = Range("E" & fila).Value
LOCALIDAD = Range("F" & fila).Value
COMUNIDAD = Range("G" & fila).Value
TELEFONO = Range("H" & fila).Value
GRUPO = Range("I" & fila).Value
TURNO = Range("J" & fila).Value
'
End Sub
'ACTUALIZACION DEL ComboBox1
Private Sub NUMERO_Enter()
Dim x As Integer
Application.ScreenUpdating = False
Hoja2.Select
'Borro el contenido del combobox
Me.NUMERO.Clear
For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(x, 1) <> Empty Then NUMERO.AddItem Range("A" & x).Value
Next
Macro1
End Sub
BAJAS
Option Explicit
'BUSCA EL MODELO PARA ELIMINAR
Private Sub CommandButton1_Click()
Dim NUMEROS As String
Dim idBusca As String
Dim fila As Integer
Application.ScreenUpdating = False
Sheets("ALUMNOS").Select
fila = 1
NUMEROS = NUMERO
Do While idBusca <> NUMEROS
fila = fila + 1
idBusca = Range("A" & fila).Value
Loop
If MsgBox("¿SEGURO QUE QUIERE ELIMINAR ESTE VEHICULO?", vbExclamation + vbYesNo) = _
vbYes Then
'se selecciona la celda
Range("A" & fila).Select
'se borra toda la fila
Selection.EntireRow.Delete
End If
'se elimina el contenido del texto del ComboBox1
Me.NUMERO.Text = ""
Hoja1.Activate
End Sub
Private Sub CommandButton2_Click()
Me.Hide
End Sub
'ACTUALIZACION DEL ComboBox1
Private Sub NUMERO_Enter()
'declaramos una variable que representa las filas
'del listado que hay en la hoja 2
Dim x As Integer
Application.ScreenUpdating = False
'selección de la hoja 2
Hoja2.Select
'se limpia el ComboBox1
Me.NUMERO.Clear
'entramos en un ciclo FOR que recorre las filas de la columna A
'empezando por la fila 2 hasta la última que tiene datos
For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
'tiene en cuenta si hubiera una fila vacía (no es nuestro caso)
'y luego se agrega un ítem
If Cells(x, 1) <> Empty Then NUMERO.AddItem Range("A" & x).Value
Next
Hoja1.Select
End Sub
MODIFICAR
Option Explicit
'MODIFICA DATOS
Private Sub CommandButton2_Click()
Dim NUMEROS As String
Dim idBusca As String
Dim fila As Integer
Application.ScreenUpdating = False
Sheets("ALUMNOS").Select
fila = 1
NUMEROS = NUMERO
'se busca la fila para modificar uno o varios ítems
'según el elemento del ComboBox1 que se selecciono
Do While idBusca <> NUMEROS
fila = fila + 1
idBusca = Range("A" & fila).Value
Loop
If MsgBox("¿SEGURO QUE HIZO TODOS LOS CAMBIOS AL VEHICULO?", vbExclamation + vbYesNo) = _
vbYes Then
'se modifica algún dato de la fila hallada cuando se sale del ciclo
Range("B" & fila).Value = NOMBRE
Range("C" & fila).Value = APELLIDOP
Range("D" & fila).Value = APELLIDOM
Range("E" & fila).Value = EDAD
Range("F" & fila).Value = LOCALIDAD
Range("G" & fila).Value = COMUNIDAD
Range("H" & fila).Value = TELEFONO
Range("I" & fila).Value = GRUPO
Range("J" & fila).Value = TURNO
End If
'se vacian los ComboBox1 y TexTbox
NUMERO = ""
NOMBRE = ""
APELLIDOP = ""
APELLIDOM = ""
EDAD = ""
LOCALIDAD = ""
COMUNIDAD = ""
TELEFONO = ""
GRUPO = ""
TURNO = ""
Hoja1.Select
Range("B4").Select
End Sub
'INFORMA
Private Sub NUMERO_Change()
Dim NUMEROS As String
Dim idBusca As String
Dim fila As Integer
Application.ScreenUpdating = False
Sheets("ALUMNOS").Select
Range("A2").Select
fila = 1
NUMEROS = NUMERO
Do While idBusca <> NUMEROS
fila = fila + 1
idBusca = Range("A" & fila).Value
Loop
NOMBRE = Range("B" & fila).Value
APELLIDOP = Range("C" & fila).Value
APELLIDOM = Range("D" & fila).Value
EDAD = Range("E" & fila).Value
LOCALIDAD = Range("F" & fila).Value
COMUNIDAD = Range("G" & fila).Value
TELEFONO = Range("H" & fila).Value
GRUPO = Range("I" & fila).Value
TURNO = Range("J" & fila).Value
End Sub
Private Sub CommandButton1_Click()
Hoja1.Select
Range("B4").Select
Me.Hide
End Sub
End Sub
'CARGA Y ACTUALIZA EL COMBOBOX
Private Sub NUMERO_Enter()
Dim x As Integer
Application.ScreenUpdating = False
Hoja2.Select
Me.NUMERO.Clear
For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(x, 1) <> Empty Then NUMERO.AddItem Range("A" & x).Value
Next
End Sub
Private Sub UserForm_Initialize()
Dim A2 As Range
Dim B2 As Range
Dim C2 As Range
Application.ScreenUpdating = False
Hoja3.Select
Range("A2").Select
While ActiveCell <> ""
LOCALIDAD.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Macro2
Hoja1.Select
Range("E9").Select
Hoja3.Select
Range("B2").Select
While ActiveCell <> ""
GRUPO.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Hoja1.Select
Range("F9").Select
Hoja3.Select
Range("C2").Select
While ActiveCell <> ""
TURNO.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
Hoja1.Select
Range("G9").Select
End Sub
Hoja1
ALUMNOS
EXTRAS