Está en la página 1de 18

1

1 1

Visual Basic para Aplicaciones

Pgina 2

Visual Basic para Aplicaciones 11 12 13 14 15 16


Else MsgBox "El dato es igual a Cero", vbInformation + vbOKOnly, "Informacin sobre el dato ingresado" End If End Sub

Visual Basic para Aplicaciones


Ejemplos y Ejercicios
Ejemplo 1: Instruccin condicional Solicita un valor entero y determina si es mayor, menor o igual a cero. Devuelve un mensaje en el que indica si es negativo, cero o positivo. Diagrama del Problema

Explicacin: Lnea 1: Sub es la instruccin que inicia la macro, la indicacin Entero1() corresponde al nombre que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea2: Declaramos una variable de nombre Entero mediante la instruccin Dim y le asignamos el tipo de Datos Integer (Entero) mediante la instruccin As Lnea 3: Mediante un la instruccin al InputBox y lo solicitamos dato usuario

guardamos en la variable Entero. Lnea 4: Mediante la instruccin If iniciamos el bloque de decisin y comprobamos si valor guardado en la Variable Entero es mayor a cero y de ser as pasamos el control a la instruccin Then, que pasa el control a la lnea 5, sino pasa el control a la lnea 6, literalmente Si Entero >0 entonces Lnea 5: Mediante la instruccin Msgbox mostramos un mensaje donde se indica que el nmero es positivo. Lnea 6: Mediante la instruccin ElseIf se realiza otra comprobacin, en este caso si el valor guardado en Entero es menor a cero y de

1 2 3 4 5 6 7 8 9 10 2

Sub Entero1() Dim Entero As Integer Entero = InputBox("Ingrese un nmero entero", "Cuadro de Ingreso de Datos") If Entero > 0 Then MsgBox "El dato es positivo", vbInformation + vbOKOnly, "Informacin sobre el dato ingresado" ElseIf Entero < 0 Then MsgBox "El dato es negativo", vbInformation + vbOKOnly, "Informacin sobre el dato ingresado"

ser as se pasa el control a la instruccin Then que pasa el control a la lnea 7, sino pasa el control a la lnea 8. Lnea 7: Mediante la instruccin MsgBox se muestra un mensaje donde se indica que el nmero es negativo Lnea 8: Mediante la instruccin Else se indica que si no se ha cumplido ninguna de las

Pgina 3

1
condiciones anteriores (Entero >0 o Entero <0) se ejecute la lnea 9 Lnea 9: Mediante la instruccin MsgBox se muestra un mensaje indicando que el nmero es cero. Lnea 10: Mediante la instruccin End If acabamos con el bloque de decisin. Lnea 11: Mediante la instruccin End Sub acabamos con la macro.

Visual Basic para Aplicaciones

Pgina 4

Visual Basic para Aplicaciones


asignamos el tipo de Datos String (Cadena Ejemplo 2: Instruccin condicional Solicita un nombre y determina si el nombre es Alex. Si lo es devuelve el mensaje Hola Alex!, caso contrario devuelve el mensaje No te conozco Nombre Diagrama del Problema Lnea de Texto) mediante la instruccin As 3: Mediante la instruccin InputBox solicitamos un nombre al usuario y lo guardamos en la variable Nombre. Lnea 4: Mediante la instruccin If iniciamos el bloque de decisin y comprobamos si valor guardado en la Variable Nombre es Alex y de ser as pasamos el control a la instruccin Then, que pasa el control a la lnea 5, sino pasa el control a la lnea 6, literalmente Si Nombre es igual a Alex entonces Lnea 5: Mediante la instruccin Msgbox mostramos un mensaje Hola y le concatenamos el valor de Nombre. Lnea 6: Mediante la instruccin Else se indica que si no se ha cumplido la condicin anterior (Nombre = Alex) se ejecute la lnea 7 Lnea 7: Mediante la instruccin MsgBox se muestra un mensaje No te conozco y se le concatena el valor de Nombre. Lnea 8: Mediante la instruccin End If acabamos

1 2 3 4 5 6 7 8 9 10

Sub Nombres() Dim Nombre As String Nombre = InputBox("Ingrese su nombre", "Ingreso de Datos") If Nombre = "Alex" Then MsgBox "Hola " & Nombre & "!" Else MsgBox "No te conozco " & Nombre End If End Sub

con el bloque de decisin. Lnea 9: Mediante la instruccin End Sub acabamos con la macro.

Explicacin: Lnea 1: Sub es la instruccin que inicia la macro, la indicacin Nombres() corresponde al nombre que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea2: Declaramos una variable de nombre Nombre mediante la instruccin Dim y le

Pgina 5

Visual Basic para Aplicaciones

Ejemplo 3: Instruccin Condicional

Solicita un monto, un periodo de tiempo, una tasa 2 y devuelve el inters simple generado. A los datos 3 ingresados se les hace comprobacin para 4 determinar si son vlidos. 5 Diagrama del Problema

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Sub InteresSimple() Dim Principal As Currency Dim Tiempo As Integer Dim Tasa As Single Dim Resultado As Single EntradaCapital: Principal = InputBox("Ingrese el capital a Invertir", "Clculo Principal") If Principal <= 0 Then MsgBox "Datos no vlidos", vbCritical + vbOKOnly, "Error en Datos" GoTo EntradaCapital End If EntradaTiempo: Tiempo = InputBox("Ingrese el periodo de tiempo") If Tiempo <= 0 Then MsgBox "Datos no vlidos", vbCritical + vbOKOnly, "Erro en Datos" GoTo EntradaTiempo End If EntradaTasa: Tasa = InputBox("Ingrese el valor de la tasa sin el signo de %", "Ingreso de Tasa") If Tasa <= 0 Then MsgBox "Datos no vlidos", vbCritical + vbOKOnly, "Error en Datos" GoTo EntradaTasa End If Resultado = Principal * (Tasa / 100) * Tiempo MsgBox "El inters generado es de " & Resultado, vbInformation + vbOKOnly, "Inters Generado" End Sub

Explicacin: Lnea 1: Sub es la instruccin que inicia la macro, la indicacin InteresSimple() corresponde al nombre que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea2: Declaramos el una tipo variable de de nombre Currency Principal mediante la instruccin Dim y le asignamos Datos (Moneda) mediante la instruccin As Lnea 3: Declaramos una variable de nombre Tiempo mediante la instruccin Dim y le

Pgina 6

Visual Basic para Aplicaciones


asignamos el tipo de Datos Integer (Entero) mediante la instruccin As Lnea 4: Declaramos una variable de nombre Tasa mediante la instruccin Dim y le asignamos el tipo de Datos Single (Simple) mediante la instruccin As Lnea 5: Declaramos una variable de nombre Resultado mediante la instruccin Dim y le asignamos el tipo de Datos Single (Simple) mediante la instruccin As Lnea 6: Asignamos una etiqueta EntradaCapital para luego hacer referencia a esa lnea de cdigo. Lnea 7: Mediante un la instruccin al InputBox y lo Lnea solicitamos capital usuario la instruccin Then, que pasa el control a la lnea 15, sino pasa el control a la lnea 17, literalmente Si Tiempo es negativo o cero entonces Lnea 15: Mediante la instruccin MsgBox se muestra un mensaje de Datos no vlidos. Lnea 16: Mediante la instruccin GoTo pasamos el control a la etiqueta EntradaTiempo (Lnea 12) Lnea 17: Mediante la instruccin End If acabamos con el bloque de decisin. Lnea 18: Asignamos una etiqueta EntradaTasa para luego hacer referencia a esa lnea de cdigo. 19: Mediante la instruccin InputBox solicitamos un tasa de inters al usuario y lo guardamos en la variable Tasa. Lnea 20: Mediante la instruccin If iniciamos el bloque de decisin y comprobamos si valor guardado en la Variable Tasa es menor o igual a cero y de ser as pasamos el control a la instruccin Then, que pasa el control a la lnea 21, sino pasa el control a la lnea 23, literalmente Si Tasa es negativo o cero entonces Lnea 21: Mediante la instruccin MsgBox se muestra un mensaje de Datos no vlidos. Lnea 22: Mediante la instruccin GoTo pasamos el control a la etiqueta EntradaTasa (Lnea 18) Lnea 23: Mediante la instruccin End If acabamos con el bloque de decisin. Lnea 24: Asignamos a la variable Resultado el valor resultante de la frmula de inters simple (C*r*t), siendo en este caso C=Capital, r= la instruccin InputBox (Tasa/100) y t = Tiempo Lnea 25: Mediante la instruccin MsgBox se muestra un mensaje con el valor de la variable Resultado. Lnea 26: Mediante la instruccin End Sub acabamos con la macro.

guardamos en la variable Principal. Lnea 8: Mediante la instruccin If iniciamos el bloque de decisin y comprobamos si valor guardado en la Variable Principal es menor o igual a cero y de ser as pasamos el control a la instruccin Then, que pasa el control a la lnea 9, sino pasa el control a la lnea 11, literalmente Si Principal es negativo o cero entonces Lnea 9: Mediante la instruccin MsgBox se muestra un mensaje de Datos no vlidos. Lnea 10: Mediante la instruccin GoTo pasamos el control a la etiqueta EntradaCapital (Lnea 6) Lnea 11: Mediante la instruccin End If acabamos con el bloque de decisin. Lnea 12: Asignamos una etiqueta EntradaTiempo para luego hacer referencia a esa lnea de cdigo. Lnea 13: Mediante solicitamos un periodo de tiempo al usuario y lo guardamos en la variable Tiempo. Lnea 14: Mediante la instruccin If iniciamos el bloque de decisin y comprobamos si valor guardado en la Variable Tiempo es menor o igual a cero y de ser as pasamos el control a

Pgina 7

1
Ejercicios Propuestos 1) Crear una macro que solicite dos nmeros enteros y devuelva un mensaje indicando cul es el mayor. 2) Crear una macro que solicite tres nmeros y devuelva un mensaje con los nmeros ordenados de manera descendente (de mayor a menor). 3) Crear una macro que solicite el capital invertido(Principal), el periodo de inversin y el capital obtenido al final del periodo y devuelva un mensaje con la tasa aplicada para obtener dicho capital.(Inters simple) Ejemplo 4: Instruccin Condicional Solicita un dato y devuelve un mensaje indicando si es positivo, negativo o cero. Diagrama del Problema Ver Ejemplo 4 Lnea

Visual Basic para Aplicaciones


el tipo de Datos Double (Doble) mediante la instruccin As 3: Mediante un la la instruccin al InputBox y lo solicitamos Lnea 4: Mediante el dato usuario

guardamos en la variable Valor1. instruccin Select Case bloque las de decisin y diversas el posibilidades caso para se iniciamos

comprobamos literalmente Valor1

para el valor guardado en la Variable Valor1, Seleccionar

Lnea 5: Mediante la instruccin Case Is

determina si el valor guardado en Valor1 es mayor a Cero y de ser as se pasa el control a la lnea 6, en caso contrario se pasa a la lnea 7. Lnea 6: Mediante la instruccin Msgbox mostramos un mensaje donde se indica que el nmero es positivo. Lnea 7: Mediante la instruccin Case Is se determina si el valor guardado en Valor1 es menor a Cero y de ser as se pasa el control a la lnea 8, en caso contrario se pasa a la lnea 9. Lnea 8: Mediante la instruccin MsgBox se muestra un mensaje donde se indica que el nmero es negativo Lnea 9: Mediante la instruccin Case Eslse se indica que si el valor guardado en Valor1 no cumple ninguno de los casos anteriores se pasa el control a la lnea 10. Lnea 10: Mediante la instruccin MsgBox se muestra un mensaje indicando que el

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Sub Numeros() Dim Valor1 As Double Valor1 = InputBox("Ingrese un nmero", "Ingreso de Datos") Select Case Valor1 Case Is > 0 MsgBox "El valor es nmero positivo", vbInformation + vbOKOnly, "Informacin" Case Is < 0 MsgBox "El valor es nmero negativo", vbInformation + vbOKOnly, "Informacin" Case Else MsgBox "El valor es cero", vbInformation + vbOKOnly, "Informacin" End Select End Sub

Explicacin: Lnea 1: Sub es la instruccin que inicia la macro, la indicacin Numeros() corresponde al nombre que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea2: Declaramos una variable de nombre Valor1 mediante la instruccin Dim y le asignamos Lnea

nmero es cero. Lnea 11: Mediante la instruccin End Select acabamos con el bloque de decisin. 12: Mediante la instruccin End Sub acabamos con la macro.

Pgina 8

Visual Basic para Aplicaciones


Explicacin Ejemplo 5: Instruccin Condicional Muestra una lista de los das de la semana, solicita que se seleccione uno de ellos y muestra el mensaje Das solicitado es Diagrama del Problema Lnea 1: Sub es la instruccin que inicia la macro, la indicacin DiasSemana() corresponde al nombre que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea 2: Declaramos una variable de nombre Dia mediante la instruccin Dim y le asignamos el tipo de Datos Integer (Entero) mediante la instruccin As

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Sub DiasSemana() Dim Dia As Integer Dim Dias As String IngresoDias: Dia = InputBox("1-Domingo" & Chr(13) & "2-Lunes" & Chr(13) & "3Martes" & Chr(13) & "4-Mircoles" & Chr(13) & "5-Jueves" & Chr(13) & "6Viernes" & Chr(13) & "7-Sbado" & Chr(13) & "Ingrese el nmero correspondiente al da de la semana", "Ingreso de Datos") If Dia < 1 Or Dia > 7 Then MsgBox "Datos no vlidos, ingrese un nmero de la lista" GoTo IngresoDias End If Select Case Dia Case 1 Dias = "Domingo" Case 2 Dias = "Lunes" Case 3 Dias = "Martes" Case 4 Dias = "Mircoles" Case 5 Dias = "Jueves" Case 6 Dias = "Viernes" Case 7 Dias = "Sbado" End Select MsgBox "Da seleccionado es " & Dias, vbExclamation + vbOKOnly, "Das" End Sub

Lnea 3: Declaramos una variable de nombre Dias mediante la instruccin Dim y le asignamos el tipo de Datos String (Cadena de Texto) mediante la instruccin As Lnea 4: Asignamos una etiqueta IngresoDias para luego hacer referencia a esa lnea de cdigo. Lnea 5, 6 y 7: Mediante la instruccin InputBox mostramos una lista al usuario y solicitamos un dato guardndolo en la variable Dia. Lnea 4: Mediante el la instruccin Select Case bloque las de decisin y diversas el posibilidades caso para se iniciamos

comprobamos literalmente Valor1

para el valor guardado en la Variable Valor1, Seleccionar

Lnea 5: Mediante la instruccin Case Is

determina si el valor guardado en Valor1 es mayor a Cero y de ser as se pasa el control a la lnea 6, en caso contrario se pasa a la lnea 7. Lnea 6: Mediante la instruccin Msgbox mostramos un mensaje donde se indica que el nmero es positivo. Lnea 7: Mediante la instruccin Case Is se determina si el valor guardado en Valor1 es menor a Cero y de ser as se pasa el control a la lnea 8, en caso contrario se pasa a la lnea 9.

Pgina 9

1
Lnea 8: Mediante la instruccin MsgBox se muestra un mensaje donde se indica que el nmero es negativo Lnea 9: Mediante la instruccin Case Eslse se indica que si el valor guardado en Valor1 no cumple ninguno de los casos anteriores se pasa el control a la lnea 10. Lnea 10: Mediante la instruccin MsgBox se muestra un mensaje indicando que el nmero es cero. Lnea 11: Mediante la instruccin End Select acabamos con el bloque de decisin. Lnea 12: Mediante la instruccin End Sub acabamos con la macro.

Visual Basic para Aplicaciones

Pgina 10

Visual Basic para Aplicaciones


la instruccin Then, que pasa el control a la Ejemplo 6: Bucle for Solicita un nmero entero y muestra el mensaje Bucle nmero . Diagrama del Problema lnea 6, sino pasa el control a la lnea 8, literalmente Si Indice es negativo o cero entonces Lnea 6: Mediante la instruccin MsgBox se muestra un mensaje de Datos no vlidos. Lnea 7: Mediante la instruccin GoTo pasamos el control a la etiqueta Ingreso (Lnea 3) Lnea 8: Mediante la instruccin End If acabamos con el bloque de decisin. Lnea 9: Mediante la instruccin For se inicia un bucle inicia con un contador x = 1 aumentando en 1 y mediante la instruccin To se indica que finaliza cuando x tenga el mismo valor que Indice. Lnea 10: Mediante la instruccin MsgBox se muestra un mensaje en el cual se indica el valor de la x para cada repeticin del bucle. Lnea 11: Mediante la instruccin Next se aumenta el valor de la x en 1 y se devuelve el control a la lnea 10 Explicacin Lnea 1: Sub es la instruccin que inicia la macro, la indicacin BucleMensaje() corresponde al nombre que hemos asignado a dicha macro, este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea 2: Declaramos una variable de nombre Indice mediante la instruccin Dim y le asignamos el tipo de Datos Integer (Entero) mediante la instruccin As Lnea 3: Asignamos una etiqueta Ingreso para luego hacer referencia a esa lnea de cdigo. Lnea 4: Mediante la instruccin InputBox solicitamos un entero al usuario y lo iniciamos el Lnea 12: Mediante la instruccin End Sub acabamos con la macro.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sub BucleMensaje() Dim Indice As Integer Ingreso: Indice = InputBox("Ingrese un nmero entero positivo", "Ingreso de Datos") If Indice <= 0 Then MsgBox "Nmero no vlido, ingrese un nmero positivo", vbCritical + vbOKOnly, "Error en Datos" GoTo Ingreso End If For x = 1 To Indice MsgBox "Bucle nmero " & x Next x End Sub

guardamos en la variable Indice. Lnea 5: Mediante la instruccin If bloque de decisin y comprobamos si valor guardado en la Variable Indice es menor o igual a cero y de ser as pasamos el control a

Pgina 11

1 7 8 Ejemplo 7: Ingreso de Datos en una Matriz 9 Solicita un conjunto de cuatro Referencias a celdas 10 y las muestra luego en un mensaje. 11 12 Diagrama del Problema 13 Maccro Llena 14 Matriz

Visual Basic para Aplicaciones


Next x For j = 0 To 3 Resultado = Resultado & Chr(13) & MiMatriz(j) Next j MsgBox "Las referencias ingresadas son: " & Resultado, vbInformation + vbOKOnly, "Salida de Datos" End Sub

Explicacin
Bucleinicio en x= 0 hastax= 3

Lnea 1: Sub es la instruccin que inicia la macro, la indicacin LlenaMatrix() corresponde al nombre que hemos asignado a dicha macro,

MiMatriz(x)

este nombre puede cambiarse por cualquier otro que se crea conveniente. Lnea 2: Declaramos una Matriz de nombre MiMatriz de cuatro elementos mediante la instruccin Dim y le asignamos el tipo de Datos String (Cadena de Texto) mediante la instruccin As Lnea 3: Declaramos una variable de nombre Resultado mediante la instruccin Dim y le asignamos el tipo de datos String ( Cadena

Finde buclex

BucleInicia con j= 0 hasta j= 3

Resultado= Resultado + MiMatriz(j)

de Texto) mediante la instruccin As. Lnea 4: Mediante la instruccin For se inicia un bucle inicia con un contador x = 0 aumentando en 1 y mediante la instruccin

Fin buclej

To se indica que finaliza cuando x tenga el valor 3. Lnea 5: Mediante la instruccin InputBox

Resultado

solicitamos una referencia

al usuario y lo

guardamos como el elemento x de la matriz MiMatriz. Esta instruccin se repite 4 veces


Fin

gracias al bucle, as se llenan cada uno de los elementos de la matriz. Lnea 6: Mediante la instruccin Next se aumenta el valor de la x en 1 y se devuelve el control a la lnea 5. Lnea 7: Mediante la instruccin For se inicia un bucle inicia con un contador j = 0 aumentando en 1 y mediante la instruccin

1 2 3 4 5 6

Sub LlenaMatrix() Dim MiMatriz(3) As String Dim Resultado As String For x = 0 To 3 MiMatriz(x) = InputBox("Ingrese una referencia a celda tipo A1", "Ingreso de Datos")

Pgina 12

Visual Basic para Aplicaciones


To se indica que finaliza cuando j tenga el valor 3. Lnea 8: Se concatena en cada ciclo del bucle los valores guardados en los elementos de la matriz MiMatriz en la variable Resultado. El uso de la funcin Chr con el parmetro 13 es para ingresar un retorno de carro para que aparezcan los resultado en una lista y no en la misma lnea de mensaje cuando se muestren en pantalla. Lnea 9: Mediante la instruccin Next se aumenta el valor de la j en 1 y se devuelve el control a la lnea 8 Lnea 10: Mediante la instruccin MsgBox se muestra un mensaje con el valor de la variable Resultado. Lnea 11: Mediante la instruccin End Sub acabamos con la macro.

Pgina 13

Visual Basic para Aplicaciones

Ejemplo 8: Bucle Condicional Do Juego donde se le pide adivinar un nmero entre 1 y 1 100, en cinco intentos. Diagrama del Problema Sub JuegoAdivina() Dim Contador As Integer Dim MiNumero As Integer Dim ElNumero As Integer Contador = 1 Randomize Esta instruccin permite generar un nmero al azar ElNumero = Int((100 * Rnd) + 1) Int transforma en entero y Rnd es el nmero generado por Randomize Do While Contador < 6 MiNumero = InputBox("Ingrese un nmero de 1 a 100") If MiNumero = ElNumero Then MsgBox "Has adivinado en nmero en " & Contador & " intentos" Exit Do Else Contador = Contador + 1 If MiNumero < ElNumero Then MsgBox "El nmero buscado es mayor a " & MiNumero, vbInformation + vbOKOnly, "Salida de Datos" Contador + 1 Else MsgBox "El nmero buscado es menor a " & MiNumero, vbInformation + vbOKOnly, "Salida de Datos" End If End If Loop If MiNumero <> ElNumero Then MsgBox "Perdiste!" & Chr(13) & "El Nmero buscado era " & ElNumero El nmero End Sub
buscado es mayor

Juego Adivina

ElNumero aleatorio de 1 a 100

Contador=1

Has perdido, el nmero es + ElNumero

Contador < 6

MiNumero

MiNumero = ElNumero

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

MiNumero < ElNumero

Has adivinado el numero en +Contador + intentos

El nmero buscado es menor

Fin

Pgina 14

Visual Basic para Aplicaciones

Pgina 15

1 6 7 Ejemplo 9: Recorrido de una Matriz 8 Se solicita un nombre, se busca en la matriz de 9 nombres que se cuenta y se emite un mensaje si no 10 est dentro de la lista de nombres. 11 12 Comprueba 13 Nombre 14 15 16 17 Nombres() 18 19 20 21 22 23 Nombre 24 25 26 Bucle para cada 27 elemento de 28 Nombres() 29 30
Nombre=Nombres(i) El Nombre se encuentra en la base de datos

Visual Basic para Aplicaciones


'Ingreso de los nombres en la matriz Nombres(0) = "Alexander" Nombres(1) = "Carlos" Nombres(2) = "Juan" Nombres(3) = "Marta" Nombres(4) = "Carmen" 'Solicitud del nombre Nombre = InputBox("Ingrese un Nombre", "Nombre") 'Recorrido de la matriz For Each Name In Nombres If Nombre = Name Then MsgBox "El Nombre se encuentra en la base de datos", vbInformation + vbOKOnly, "Resultado de Bsqueda" NombreComprueba = Name Exit For End If Next Name If NombreComprueba <> Nombre Then MsgBox "El nombre no se encuentra en la base de datos", vbExclamation + vbOKOnly, "Resultado de Bsqueda" End Sub

Ejercicios Propuestos: 1) Crear una macro que solicite dos nmeros enteros y devuelva un listado de todos los nmeros comprendidos entre ellos. 2) Crear una macro que solicite cuatro nombres y devuelva el mensaje Hola, {Nombre}

Fin de Bucle Nombres()

El Nombre no se encuentra en la base de datos

Ejemplo 10: Creacin de libros La siguiente macro crea un libro nuevo y oculta sus dos ltimas hojas.

Fin

1 2 3 4 5

Sub ListaNombres() Dim Nombres(4) As String Dim Nombre As String Dim NombreComprueba As String NombreComprueba = ""

31 32 33 34 35 36 37

Sub CreaLibro() Dim LibroCreado As Workbook Set LibroCreado = Workbooks.Add LibroCreado.Worksheets(2).Visible = False LibroCreado.Worksheets(3).Visible = False End Sub

Ejemplo 11: Nombra Hojas

Pgina 16

Visual Basic para Aplicaciones


La siguiente macro crea un libro nuevo y da el 37 nombre de Principal, Datos Borrador, Datos 38 Fijos a sus respectivas hojas. 39 Set LibroCreado = Workbooks.Add With LibroCreado .Worksheets.Add After:=Worksheets(Worksheets.Count) .Worksheets(Worksheets.Count).Name = "Suma de Datos" End With Rango = InputBox("Ingrese el rango o referencia", "Ingreso de Rangos") For x = 0 To 9 Datos = InputBox("Ingrese Dato", "Ingreso de Datos") WorkSheets(Suma de Datos).Range(Rango).Offset(x, 0).Value = Datos Next x End Sub

1 2 3 4 5 6 7 8 9

Sub NombraHojas() Dim LibroCreado As Workbook Set LibroCreado = Workbooks.Add With LibroCreado .Worksheets(1).Name = "Principal" .Worksheets(2).Name = "Datos Borrador" .Worksheets(3).Name = "Datos Fijos" End With End Sub Ejemplo 12: Crea hoja y agrega datos

40 41 42 43 44 45 46 47 48 49 50 51 52

La siguiente macro solicita diez datos numricos, crea una hoja llamada Suma de Datos e ingresa los datos en columna a partir de la celda que se le especifique.

Ejemplo 13: Rellena las celdas de A2 a A6 de la hoja activa con los pares del 2 al diez. Sub rellenar() Dim Fila As Integer Fila = 2 For i = 2 To 10 Step 2 ActiveSheet.Cells(Fila, 1).Value = i Fila = Fila + 1 Next i End Sub

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

53 Caso 1: Se ingresan todos los datos una vez 54 digitados en el rango correspondiente 55 Sub IngresaDatos() 56 Dim LibroCreado As Workbook 57 Dim Datos(9) As Double 58 Dim Rango As String 59 Set LibroCreado = Workbooks.Add 60 With LibroCreado .Worksheets.Add After:=Worksheets(Worksheets.Count) .Worksheets(Worksheets.Count).Name = "Suma de Datos" End With 61 For x = 0 To 9 62 Datos(x) = InputBox("Ingrese Dato", "Ingreso 63 de Datos") 64 Next x 65 Rango = InputBox("Ingrese el rango o 66 referencia", "Ingreso de Rangos") 67 For j = 0 To 9 68 WorkSheets(Suma de 69 Datos).Range(Rango).Offset(j, 0).Value = Datos(j) 70 Next j 71 End Sub 72
Caso II: Los Datos se van agregando a como se ingresan. Sub IngresoDatos2() Dim LibroCreado As Workbook Dim Datos As Double Dim Rango As String

Ejemplo 14: Crea una base de datos en la Hoja3 y rellena los registros. Sub Registros() 'Rellenar los registros de una Base de Datos. Hoja3 Dim Nombre As String Dim Ciudad As String Dim Edad As Integer Dim fecha As Date 'Activar Hoja3 Worksheets("Hoja3").Activate With ActiveSheet .Range("B4").Value = "Nombre" .Range("C4").Value = "Ciudad" .Range("D4").Value = "Edad" .Range("E4").Value = "Fecha" End With

73 74 75 76 77

'Para poner negrita y centrar la cabecera Range("B4:E4").Select

Pgina 17

1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
With Selection .Font.Bold = True .HorizontalAlignment = xlCenter End With

Visual Basic para Aplicaciones

'Activar casilla B5 ActiveSheet.Range("B5").Activate Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 'Mientras la variable Nombre sea diferente a cadena vaca Do While Nombre <> "" Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") Edad = Val(InputBox("Entre la Edad : ", "Edad")) fecha = CDate(InputBox("Entra la Fecha : ", "Fecha")) 'Copiar los datos en las casillas correspondientes With ActiveCell .Value = Nombre .Offset(0, 1).Value = Ciudad .Offset(0, 2).Value = Edad .Offset(0, 3).Value = fecha End With 'Hacer activa la celda de la fila siguiente a la actual ActiveCell.Offset(1, 0).Activate Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") Loop

'Seleccionamos la Base de Datos y la ponemos de color amarillo Application.Goto Reference:="R4C2" Selection.CurrentRegion.Select With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With End Sub

Pgina 18

También podría gustarte