You are on page 1of 8

27/08/2010 Formularios dinámicos : Hojas de cálcul…

Location via proxy: http://hojas-de-calculo-en-excel.blogspot.com/2009/05/formularios-dinamicos.html


Go [ UP ]

No cookies No scripts No ads No referrer

Buscar en el blog

Hojas de cálculo en excel


Formularios dinámicos
Si la inform ació n que has Ya hemos visto en otros artículos de este blog, cómo generar llenar dinámicamente un combobox. La cosa es muy
e ncontrado e n e ste blo g ha
sido de tu inte rés, te sencilla, pues nos bastaba con determinar por ejemplo, un rango de celdas contiguo, que será el que tomaremos como
a gra dece ría que de jases un
co m e ntario ;-) conjunto de datos para llenar el combobox. Tan sencillo como eso. Lo único "complicado" es saber como se "escribe"
Y si de jas un m e nsaje, no eso en un macro, si no lo has hecho o no lo has visto nunca. Una vez le pillas el truquillo, los combobox dejan de tener
hagas spam , po rque este blo g
no e s e l luga r indica do para
secreto, y se convierten en algo bastante sencillo con lo que trabajar.
hacer SEO .

Estaré de va ca ciones ha sta Ahora vamos a ver como mostrar diferentes controles en un formulario, dependiendo de una o varias condiciones.
fina les de agosto, a sí que lo s
co m e ntarios entran en Cuando me refiero a controles, me refiero a mostrar etiquetas (label), combobox, o cualquier otro elemento que suele
m odera ción hasta esa fe cha,
para evita r el spam . utilizarse en un formulario. Nosotros emplearemos 2 etiquetas (2 labels), 1 combobox, y 1 botón para cerrar el
formulario.
Et iquet as
Quizás os estéis preguntando ¿pero no es más fácil hacer varios formularios y lanzar uno u otro, dependiendo de si se
access (3)
cumple una u otra condición?. Es probable que así sea, pero ¿por qué no aprender a hacerlo todo en un único
aplicaciones (10)
formulario?. Si lo hacemos con un único formulario, veremos la utilidad de hacer visible o invisible un control,
economía y finanzas (12)
dependiendo de si se cumple una condición u otra.
excel avanzado (20)
excel fácil (72) Vamos a trabajar con un ejemplo, para lo cual evaluaremos si se cumple una condición, y mostraremos la label1 en el
excel intermedio (24) caso de que se produzca esa condición, y la label2 y el combobox (le dejaremos el nombre que tiene por defecto,
excel mobile (1) combobox1) en el caso de que no se produzca esa condición. Por concretarlo más, vamos a habilitar la celda C4 para
formatos (5) que el usuario introduzca una fecha, que será el dato que evaluaremos (aunque puede ser cualquier otra condición, por
FSO (10) supuesto). Si la fecha introducida corresponde al mes de agosto, mostraremos la label1, y si es cualquier otro mes del

funciones personalizadas (8)


año, mostraremos la label2 y el combobox1.

fórmulas (16)
Para empezar, diseñaremos el formulario, y colocaremos las 2 etiquetas, eliminando el texto que presentan por
gráficos (1)
defecto, y que es el nombre de la propia etiqueta. En la siguiente imagen os he remarcado las 2 etiquetas para que se
macros en excel (86)
vean bien (ambas están vacías, sin texto, y tienen forma rectangular):
solver (1)
utilidades (2)
validación de datos (5)
word (1)

Art ículos publicados

artículos publicados:

• Préstamos según el método


americano
• Préstamos con amortización de
capital constante
• Calcular el VAN, para periodos
irregulares
• Calculadora de tiempos

pzeg.com/…/687474703a2f2f686f6a61… 1/8
27/08/2010 Formularios dinámicos : Hojas de cálcul…
• Habilitar y deshabilitar controles de
un formulario
• La hoja de cálculo
• Calcular la TAE
• Calcular la TIR de una inversión,
para periodos irregulares
• Préstamos y cálculo de hipotecas Si seleccionamos una de ellas, nos fijaremos en el nombre que tiene (en este caso, hemos seleccionado la etiqueta
• Modificar datos, utilizando un más pequeña, que es la label2):
formulario
• Protegiendo nuestros trabajos en
Excel
• Introducir datos usando un
formulario
• Calendarios para imprimir
• Enviar un email desde Excel
• Ejecutar una macro a una hora
determinada
• Obtener datos de una página web
• Ejecutar macro al seleccionar un
elemento de un combobox
• Espacio libre y espacio total en
disco
• Validar la entrada de datos en un
formulario
• Ejecutar varias macros a la vez
• Forzar la escritura en mayúsculas
(o minúsculas)
• Números aleatorios no repetidos
• Fecha de creación, modificación,
último acceso, y peso en Kb de un
fichero
• Leer otro fichero excel
• Formularios dinámicos
• Calcular la TIR y el VAN
• Buscar hojas ocultas
• Informar de que está ejecutándose Una vez creadas las etiquetas y el botón del formulario, crearemos también el combobox, para que nos quede algo
un macro como esto (he remarcado las etiquetas porque como se solapan, no se verían):
• Obtener el nombre del PC
• Leer las tablas de una base de
datos Access
• Compactar una base de datos
Access, desde Excel
• Ejecutar un macro al cambiar una
celda
• Importar datos concretos de un
fichero de texto
• Combinar correspondencia con
Excel y Word
• Calcular el vencimiento real de
facturas
• Ponerle un nombre a las celdas
• Combobox: sacándoles provecho
• Usuarios, hojas, y permisos
• Asociar un macro a un botón
• Solver: cálculo de la TIR Crearemos también un botón en la hoja de cálculo (aparte del otro botón para cerrar el Userform), y le asociaremos
• Combobox dependientes este macro, que lanzará el Userform:
• Horas de 100 minutos, y conversión
de unidades de tiempo
• Impedir que se cambie el nombre a
una hoja Sub form ula rio _dina m ico ()
• Evolución de un capital a interés 'carga m o s e l fo rm ulario
simple e interés compuesto Use rFo rm 1.Sho w
End Sub
• Euroconversor
• Listar los archivos de un directorio
• Convertir unidades de tiempo a
Ahora copiaremos estos dos códigos que os incluyo a continuación, en el Userform. El primero de ellos, es el código
formato hh:mm:ss
• Calcular el umbral de rentabilidad, asociado al botón del formulario, y cierra el mismo (el Userform), liberándolo de la memoria:
con excel
• Llenar dinámicamente un
combobox
• Control horario: horas normales, y P rivate Sub Co m m andButton1_Click ()
'Elim ina m os el userfo rm de la m em oria
horas extras
Unlo ad Use rFo rm 1
• HP iPaq 614C, con excel en el End Sub
bolsillo
• Mostrar y ocultar hojas, utilizando
macros
pzeg.com/…/687474703a2f2f686f6a61… 2/8
27/08/2010 Formularios dinámicos : Hojas de cálcul…
macros Este otro código lo que hace es cargar las label1, label2 y combobox1, en función de si se cumple la condición de que
• Controlar los cambios en ficheros en la celda C4 figure o no, un día del mes de agosto:
compartidos
• Mostrar imágenes asociadas a un
desplegable
• Validación de listas dependientes
P rivate Sub UserForm _Activate ()
• Saber si existe un fichero 'ocultam os el proce dim ie nto
• Convertir unidades de tiempo: Application.Scree nUpda ting = False
horas, minutos, y segundos 'carga m o s los objeto s del form ula rio
'dependie ndo de la fecha de la ce lda C4,
• Validación con datos en otra hoja 'para lo cual pa sa m o s e se da to a una varia ble
• Crear un gráfico, con un macro fe cha = R ange ("C4")
• Mi primer Combobox m es = Mo nth(fe cha)
'si la fecha es cualquier día de ago sto (de cualquier a ño)
• El libro PERSONAL.XLS (XLSB) 'entonce s m ostrare m o s un te xto (un label)
• Formularios inteligentes If m es = 8 The n
• Más sobre las funciones de bases 'Mostram os el texto en el label1
Label1 = "En te oría en agosto, ca si todo el m undo se cogerá uno s" + Chr(13) & _
de datos personalizadas
"días de vacacio ne s, y se irá a la playa a to m ar el sol, a" + C hr(13) & _
• Funciones de bases de datos "to m a rse una cervecita, y a ""ta pea r""." & _
personalizadas C hr(13) + Chr(13) & "¿Me pue des decir qué hace s tú trabajando?."
'ocultam os la label2 y el co m bo bo x
• Volviendo con los números
Label2.Visible = False
aleatorios C om boBox1.Visible = False
• Sencilla aplicación en excel Else
• Leer el número de serie de los 'en ca so contrario, es decir, si la fe cha no e s un
'día de l m es de ago sto , entonces ocultam os la label1
discos Label1.Visible = False
• Trabajando con horas, minutos, y 'm o stra m o s e l te xto en e l labe l2
segundos Label2 = "Se le cciona una o pció n:"
'lle nam os el com bobox con los da tos de l ra ngo
• Ocultar filas y columnas, mediante 'que ha y e n la hoja 2 (ba jando de sde A1, ha sta do nde ha ya da tos)
macros 'pero antes lo lim piam os
• Simultanear filas de colores C om boBox1.Cle ar
'se leccio na m os la ho ja 1, y la ce lda A1
• Leer una base de datos Access
Hoja 2.Sele ct
• Calcular la letra del NIF/DNI R ange("A1").Select
• Leer un fichero de texto plano 'lle nam os el com bobox
Do W hile Active Cell <> Em pty
• Desplazarse por las hojas,
'ponem os un ite m el el com bobox
utilizando macros C om boBox1.AddItem Active Cell.Va lue
• Impedir que se cambie el nombre 'nos despla za m o s hacia abajo
al fichero ActiveCe ll.O ffset(1, 0).Sele ct
Loo p 'co ntinua m o s co n e l bucle
• Uso de la función BDContar 'Volve m o s a la hoja1
• Mostrar un mensaje en la barra de Hoja 1.Sele ct
estado End If
'm o stra m o s e l procedim iento
• Eliminar filas vacías Application.Scree nUpda ting = True
• Crear hojas con un clic End Sub
• Grabar datos en un fichero de texto
• Tiempo transcurrido entre dos
fechas No hace falta que comente nada respecto a este último código, que es algo más extenso, porque el propio código
• Omitir los avisos al ejecutar un fuente está comentado.
macro
• Mi primer UserForm
Desde aquí podéis descargar el fichero, con el ejemplo que hemos visto en este artículo.
• Números de colores
• Poner la hora en una celda
• Pasar a mayúsculas o minúsculas miércoles 27 de mayo de 2009 Publicado por Javier Marco
• Creando nuestro propio buscador Etiquetas: excel avanzado macros en excel
• Extraer la inicial de cada palabra
• Ocultar hojas para que no se vean
• Contar las hojas de un libro
• Nombre del día
• Proteger un libro de excel
• Proteger y desproteger una hoja de 5 comentarios:
cálculo, sin macros
• Impedir que se cierre excel Manu Méndez dijo...
• Contar palabras Hola, Javier. Antes que nada, como soy nuevo, darte la enhorabuena por este blog. Es genial...
• Introducir números pares
• Introducir valores únicos (no
repetidos) Soy muy novato en esto de programar formularios en Excel, y quiero hacer una aplicación y no sé si es la mejor
• Macro al abrir o al cerrar un libro opción.
• Ir a una celda, de forma aleatoria
• Volver donde estábamos Lo que quiero hacer es una aplicación simple de gestión de inventario de mercancías en almacén. Tendría 4
inicialmente
almacenes distintos y varios artículos. La idea sería abrir una solicitud de movimiento donde se dijese qué
• Impedir que se cierre un formulario
artículo se quiere mover (con cantidades, por ejemplo, 4 sillas) a otra ubicación distinta (es decir, de la tienda A
• Evitar la cancelación de un macro
• Número aleatorio, con efecto a la tienda C).
tragaperras
• Proteger y desproteger con macros Me lío al tener que introducir variables como cantidades disponibles mínimas, como gestionar el stock para
• Verificar si existe hoja de cálculo poder chequearlo, etc.
• Recorrer fila a fila
• Obtener ruta, nombre del fichero, y
hoja
¿Podrías darme alguna pista o enviarme algun fichero parecido a esto que tuvieras hecho?

pzeg.com/…/687474703a2f2f686f6a61… 3/8
27/08/2010
hoja Formularios dinámicos : Hojas de cálcul…
• Obtener nombre de la hoja
• Macros sin refresco de pantalla Muchas gracias.
• Mi primer macro en excel
• Obtener nombre del fichero Mi correo es manuel.j.mendez arroba gmail.com
• Crear carpetas desde excel
28 de mayo de 2009 13:14
• Separar cadenas de texto
• Desproteger hoja de cálculo Sebas Pasini dijo...
• Contar el número de caracteres Hola Javier!
• Mostrar la fecha de hoy
• Presentación del blog Antes que nada queria comentarte que a nivel laboral tu blog me ha dado resultados excelentes y realmente
Webs int eresant es agradezco todos los trucos y ayudas que publicas!!!!

Recetas de cocina
Queria consultarte ahora por los formularios Dinamicos, arme uno siguiendo las instrucciones que publicaste y
Trucos de cocina necesitaria saber como puedo hacer para bajar a una hoja de excel los datos que se carguen en ese formulario
Recetas dinamico.
Coches clásicos
Multas exceso velocidad Muchas gracias de antemano.
Cuentos infantiles
Recetas de cocina Saludos

Sevilla
Sebastian Pasini (sebastian.pasini@gmail.com)
Monumentos de Sevilla
14 de octubre de 2009 14:23
Hostales en Sevilla hoteles
alexxxxxo dijo...
Sevilla ocio y cultura
Hola, espero que me puedas o alguien más de los lectore spuedan ayudarme, abajo escribo el codigo de un
Concierto U2 en Sevilla 2010 formulario que logre diseñar en una hoja de excel (aclaro que practicamente nada conozco de programación,
Emoticonos animados gifs todo lo voy haciendo en forma autodidacta), pues bién,ahora necesito que el formulario me permita desplazarme
por los registros de la base de datos, es decir que me funcione como el formulario que trae incorporado excel
2003, que me permita ir viendo en él mismos, los registros 1,2,3, etc, ya sea así o a la inversa, e incluso què
pueda introducir un número y me lleve al registro que corresponda a ese numero.
Como lo tengo diseñado actualmente, solo me permite capturar datos nuevos y al vaciarlos a la hoja de excel
me limpia el formulario, ahora quiero recorrer todos los registros uno por uno para poder ir modificando lo que
haya capturado mal.
Gracias
Saludos
Alexx
Los Mochis, Sinaloa, México

Private Sub Agregardatos_Click()

'definición de variables
Dim iFila As Long
Dim Ws As Worksheet
Set Ws = Worksheets(1)

'encontrar la siguiente fila vacia


iFila = Ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'Verificar que se ingrese un nombre


If Trim(Me.N_CONTRATO.Value) = "" Then
Me.N_CONTRATO.SetFocus
MsgBox "Debes Ingresar el Número de Contrato"
Exit Sub
End If

EN EL SIGUIENTE MENSAJE CONTINUA PORQUE NO ME ACEPTA EL BLOG MÁS CARACTERES


19 de octubre de 2009 07:29
alexxxxxo dijo...
CONTINUACION DE MI PETICION

'Copiar los datos a la tabla de excel


Ws.Cells(iFila, 1).Value = Me.N_CONTRATO.Value
Ws.Cells(iFila, 2).Value = Me.TITULAR.Value
Ws.Cells(iFila, 3).Value = Me.CONYUGE.Value
Ws.Cells(iFila, 4).Value = Me.RFC_TITULAR.Value
Ws.Cells(iFila, 5).Value = Me.SUPERFICIE.Value

pzeg.com/…/687474703a2f2f686f6a61… 4/8
27/08/2010 Formularios dinámicos : Hojas de cálcul…
Ws.Cells(iFila, 20).Value = Me.FOLIO_ID_TITUL.Value
Ws.Cells(iFila, 21).Value = Me.FOL_ID_CONYUG.Value
Ws.Cells(iFila, 22).Value = Me.PROPIEDAD.Value
Ws.Cells(iFila, 23).Value = Me.PROP_DESCRIP.Value
Ws.Cells(iFila, 19).Value = Me.FECHA_VCTO.Value
Ws.Cells(iFila, 24).Value = Me.UBICAC_PARCELA.Value
Ws.Cells(iFila, 25).Value = Me.CURP.Value
Ws.Cells(iFila, 12).Value = Me.DOMICILIO.Value

Ws.Cells(iFila, 13).Value = Me.FECHA_CONTRAT.Value


Ws.Cells(iFila, 26).Value = Me.OTRA_GARANTIA.Value
Ws.Cells(iFila, 14).Value = ListBox1.Text
Ws.Cells(iFila, 27).Value = Me.obligado_solid.Caption
Ws.Cells(iFila, 28).Value = Me.sexo_list.Text
'limpiar el formulario
Me.N_CONTRATO.Value = ""
Me.TITULAR.Value = ""
Me.CONYUGE.Value = ""
Me.RFC_TITULAR.Value = ""
Me.SUPERFICIE.Value = ""
Me.FOLIO_ID_TITUL.Value = ""
Me.FOL_ID_CONYUG.Value = ""
Me.PROPIEDAD.Value = ""
Me.PROP_DESCRIP.Value = ""
Me.FECHA_VCTO.Value = ""
Me.UBICAC_PARCELA.Value = ""
Me.CURP.Value = ""
Me.DOMICILIO.Value = ""

Me.FECHA_CONTRAT.Value = ""
Me.OTRA_GARANTIA.Value = ""
Me.ListBox1.Value = ""
Me.obligado_solid.Value = ""
Me.sexo_list.Value = ""
Me.N_CONTRATO.SetFocus
End Sub

Private Sub APORTAC_Change()

End Sub

Private Sub CommandButton1_Click()

End Sub

Private Sub CerrarCuadro_Click()


Unload Me

End Sub

Private Sub CONCEPTO_Change()

End Sub

Private Sub CULTIVO_Change()

End Sub

Private Sub DOMICILIO_Change()

pzeg.com/…/687474703a2f2f686f6a61… 5/8
27/08/2010 Formularios dinámicos : Hojas de cálcul…
End Sub

Private Sub Etiqueta_Click()

End Sub

Private Sub FECHA_CONTRAT_Change()

End Sub

Private Sub Label13_Click()

End Sub

Private Sub Label14_Click()

End Sub

Private Sub Label15_Click()

End Sub

Private Sub Label16_Click()

End Sub

Private Sub Label19_Click()

End Sub

Private Sub Label2_Click()

End Sub

Private Sub Label5_Click()

End Sub

Private Sub Label7_Click()

End Sub

Private Sub Label8_Click()

End Sub

Private Sub Label9_Click()

End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub ListBox2_Click()

End Sub

Private Sub N_CONTRATO_Change()

End Sub

pzeg.com/…/687474703a2f2f686f6a61… 6/8
27/08/2010 Formularios dinámicos : Hojas de cálcul…
Private Sub obligado_solid_Click()

End Sub

Private Sub OTRA_GARANTIA_Change()

End Sub

Private Sub PENDIENTE2_Change()

End Sub

Private Sub propiedad_Change()

End Sub

Private Sub sexo_list_Click()

End Sub

Private Sub superficie_Change()

End Sub

Private Sub TITULAR_Change()

End Sub

Private Sub UBICAC_PARCELA_Change()

End Sub

Private Sub UserForm_Click()

End Sub
19 de octubre de 2009 07:29
Investigacion dijo...
Hola Alexxo, hace tiempo pusiste un post :

"Hola, espero que me puedas o alguien más ...excel 2003, que me permita ir viendo en él mismos, los registros
1,2,3, etc,...."

Bueno te comento q yo tenia el mismo problema, y si lo que quieres es lo mismo q tenia el 2003 en el excel
2007 andate a
Boton Redondo Excel-> Opciones de Excel->Comandos q no estan en la cinta de Opciones-> Formularios..... y
listo!

y arriba a lado de tu boton redondo de excel , te saldrá el ícono de formularios automáticos de excel.

Aun asi d todas formas yo quiero personalizar más mis formularios como estabas haciendo con esa macro, la
terminaste? me la puedes enviar porfa? scorpio_cool@hotmail.com
Gracias
16 de marzo de 2010 22:28

Publicar un comentario en la entrada

pzeg.com/…/687474703a2f2f686f6a61… 7/8
27/08/2010 Formularios dinámicos : Hojas de cálcul…

Entrada más reciente Página principal Entradas antiguas

Suscribirse a: Enviar comentarios (Atom)

© Copyright Hojas de cálculo en excel | Aviso legal

pzeg.com/…/687474703a2f2f686f6a61… 8/8

You might also like