Académique Documents
Professionnel Documents
Culture Documents
Sub primerarutina()
'VBA distingue entre mayusculas y minisculas, generalmente las mayusculas se autocorrigen'
'entre Sub y End Sub se escriben todas las lineas a ejecutar'
'se puede definir todas las sub rutinas que necesites'
Cells(1, 1) = "HOLA"
End Sub
Sub segundarutina()
'la tecla Tabs se utiliza para obtener el codigo jerarquicamente'
For i = 1 To 100
Cells(i, 1) = "Fila" & " " & i
Next i
'la estructura for repite una accion un numero determinado de veces'
End Sub
Sub tercerarutina()
ActiveCell.Value = Date
ActiveCell.NumberFormat = "mmm, d, yyyy"
ActiveCell.Font.Bold = True
ActiveCell.Interior.Color = vbBlack
ActiveCell.Font.Color = vbWhite
End Sub
Clase 19
'Estructuras condicionales
Sub condicionales()
'If<condicin>Then
'Haga algo
'End If
Cells(2, 8) = "Bien"
End If
Cells(3, 8) = "Bien"
Else
Cells(3, 8) = "Mal"
End If
'Ejercicio: si a nota es mayor a 3 poner bien si esta entre 2 y 3 poner regular y si es menor que 2
pone mal
Cells(4, 8) = "Bien"
Cells(4, 8) = "Regular"
Else
Cells(4, 8) = "Mal"
End If
'Hacer algo
'Else
Else
Cells(5, 8) = "Normal"
End If
'Estructura
'Haga algo
'Else
'End If
Else
Cells(6, 8) = "Normal"
End If
'Ejercicio: si la nota1 es mayor que 3 y al menos una de las 2 ltima notas es mayor que 4, ponga
"no estuvo mal"
'Si la nota es mayor o igual que 3 y al menos una de las 2 ltimas notas es mayor que 4.5, ponga
"la salvo"
'Si la nota1 es mayor a 3 y la segunda es mayor a 3 y el promedio de las dos ltimas notas es
mayor o igual a 4.2, ponga "excelente"
'Si no cumple ninguna de las condiciones anteriores, ponga "no hay calificacin"
'Haga eso mismo para todas las demas notas. Use un for
'Recuerde la estructura del For:
'Next i
For i = 7 To 12
Cells(i, 8) = "excelente"
Else
End If
Next i
End Sub
Clase 20
Sub arreglo()
'Un arreglo de nombres
Dim arr1(1 To 5) As String
'Note que se ha definido un arreglo estatico (se ha establecido el tamao del arreglo
desde el inicio
'La estructura para declarar un arreglo fijo es la siguiente:
'Dim <nombre_arreglo> (1 to n) As <Tipo de variable>
' n es el tamao del arreglo a declarar. en el ejemplo hemos declarado un arreglo con 5
componentes
'Podemos asignar valor a cada variable (componente) del arreglo de la siguiente manera
'nombre_arreglo (i) = Valor
'donde i es la posicion a la qie queremos acceder
arr1(1) = "primero"
arr1(2) = "segundo"
arr1(3) = "tercero"
arr1(4) = "cuarto"
arr1(5) = "quinto"
Cells(1, 1) = arr1(1)
'los arreglos son especialmente utiles cuando se tranbaja con estructuras respectivas
(recorridos) tipo fot o while
End Sub
Sub repetir()
'las estructuras de recorrido se pueden clasificar en determinada o indeterminada segun
se especifique el numero de pasos a realizar o no.
'cuando se sabe (o es posible calcular) el numero de pasos que se van a realizar entocnes
se usan recorridos determinados como: for, for each
' si no se sabe de antemano la longitud del recorrido, entonces se usan recorridos
indeterminados: while, do until, do while
Dim arr2(1 To 10) As Integer
For i = 1 To 10
arr2(i) = i
Next
'la estructura de un for es la siguiente:
'for i=1 to m
'hacer algo en cada iteracion
'next
'ejemplo
'en las primeras filas de la columna a escriba el numero de la fila
For i = 1 To 10
Cells(i, 1) = i
Next
Dim suma As Double
suma = 0
For i = 1 To 10
suma = suma + Cells(i, 1)
Next
Cells(1, 2) = suma
End Sub
Sub mientras()
'si necesitamos un recorrido indeterminado podemos usar while
'la estructura de una sentencia while es la siguiente
'while <condicion a evaluar>
' hacer algo en cada iteracion
'wend
Dim suma As Double
i=1
suma = 0
While i <= 10
suma = suma + Cells(i, 1)
i=i+1
Wend
Cells(2, 2) = suma
End Sub
Sub ocho()
'sume un rango de numeros hasta encontrar un 8
Dim suma As Double
Dim valor As Boolean
Dim contador As Integer
'valor sera false si aun no se ha llegado al ocho
contador = 1
suma = 0
While valor = False
If Cells(contador, 4) = 8 Then
valor = True
Else
suma = suma + Cells(contador, 4)
contador = contador + 1
End If
Wend
Cells(1, 5) = suma
Cells(2, 5) = contador
End Sub
Clase nn
'Trabajar con celdas y rangos desde VBA
Sub rabgos()
Cells(1, 1) = "mecanico"
Range("b1") = "mundo"
Range("a3:b4") = "cruel"
Range("5:5") = 1
End Sub
Sub range2()
Range("b6:c7,d5:f9") = 3
'tenga en cuenta que los argumentos de los comandos se separan 'con coma (,) sin importar el
separador decimal
End Sub
Sub rangos3()
'objeto.accion / objeto.propiedad
Range("b6:c7,d5:f9").Name = "primero"
Range("primero") = 7
End Sub
Sub rangos4()
Range("d5:d9").Copy
Range("i5").PasteSpecial
End Sub
Clase nn
Sub Macro1()
'
'
'
Range("A1:A7").Select
Selection.Copy
Range("D1").Select
ActiveSheet.Paste
End Sub
Sub Macro2()
'
'
'
Workbooks.Add
End Sub
Sub Macro3()
'
'
'
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Users\ESTUDIANTES\Desktop\Libro6.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Sub Macro9()
'
' Nombre
'
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Karen"
Range("A2").Select
End Sub
Sub propio()
Range("b1").Select
Selection.Font.Bold = True
Selection.Font.Size = 16
Selection.Font.Italic = True
Range("c1").Select
With Selection
.Font.Bold = True
.Font.Size = 16
.Font.Italic = True
End With
Range("a3").Select
With Selection.Font
.Bold = True
.Size = 16
.Italic = True
End With
End Sub
Sub yomairis()
Range("a1").Select
Selection.Value = "Yomairis"
With Selection.Font
.Bold = True
.Size = 16
.Italic = True
End With
End Sub
Clase 21
Sub ejemplo()
numcol = 1
seguir = True
seguir = False
Else
numcol = numcol + 1
End If
Wend
'Limpiar el rango
End If
Next k
Next j
Next i
Else
End If
End Sub
Sub limpiar()
numcol = 1
seguir = True
seguir = False
Else
numcol = numcol + 1
End If
Wend
End Sub
Clase 18
'declarar variables
'integer: entero
'declaraciones locales: se hacen dentro de sub y solo se pueden llamar dentro de sub
'variables globales
Sub punto1()
'monstrar en un mensaje
MsgBox ("la cantidad de filas es:" & filas & " Y la cantidad de columnas es: " & columnas)
End Sub
Sub punto2()
Worksheets("base de datos").Activate
Worksheets("base de datos").Range("a:a").Select
Selection.Copy
Worksheets("RESUMEN").Activate
Worksheets("RESUMEN").Range("a1").Select
'pegamos la seleccion
Selection.PasteSpecial xlPasteAll
Worksheets("base de datos").Activate
'seleccionar el rango a copiar
Worksheets("base de datos").Range("g:g").Select
Selection.Copy
Worksheets("RESUMEN").Activate
Worksheets("RESUMEN").Range("b1").Select
'pegamos la seleccion
Selection.PasteSpecial xlPasteAll
End Sub
Sub punto3()
Worksheets("RESUMEN").Activate
Range("b:b").Select
suma = WorksheetFunction.Sum(Selection)
'mostrar un mensaje
MsgBox ("el total de los precios de los clientes de: " & suma)
End Sub
Sub punto4()
'declarar una variable para guardar el valor del promedio
Worksheets("RESUMEN").Activate
Range("b:b").Select
promedio = WorksheetFunction.Average(Selection)
'mostrar un mensaje
MsgBox ("el promedio de los precios de cierre es de: " & promedio)
End Sub
Sub das()
Worksheets("RESUMEN").Activate
numcol = 1
seguir = False
Else
End If
Wend
If numcol = 20 Then
MsgBox ("No se encontr el nombre")
Else
End If
End Sub
Sub das1()
Worksheets("RESUMEN").Activate
For i = 3 To 20
'Cells(i, 3) = Curso
For j = 3 To 7
For k = 4 To 10
End If
Next
Next
Next
End Sub
Instrucciones en VBA para Excel
Algunos de las instrucciones o comandos en Visual Basic para Excel ms
utilizados en programacin de VBA son los que veremos a continuacin:
Activar una hoja en Visual Basic para Excel: para ir a una hoja de clculo
de Excel utilizaremos el siguiente comando en VBA Shetts (Hoja).Select
With Selection
.HorizontalAlignment=xlLeft
End With
COMANDOS MS COMUNES VISUAL BASIC PARA EXCEL 2010