Datos personales

Hola fejoal, ¿Qué macro tengo que hacer para que cuando abras un libro de excel por primera vez te pida unos datos personales como nombre, dirección, etc...? Solo quiero que salga la primera vez que la abras. Las siguientes veces se supone que se queda "en memoria".
Gracias de antemano
David.

1 respuesta

Respuesta
1
Supondré que existe un archivo que siempre tiene los datos que mencionas en blanco.
Por ejemplo, usando un archivo plantilla (o template) que luego se graba con otro nombre.
Este archivo inicial, buscará en alguna celda que le indiques la presencia de caracteres en ella. Si estuviera en blanco, solicitará que sean completados. Caso contrario, obviamente, no preguntará nada.
Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y busca la hoja que dice "ThisWorkbook" (o "EsteLibro" según la versión")
Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Workbook_Open()
'David: Completa estos datos con los de tu archivo
Hojadata = "Hoja2"
Celda_Nombre = "B2" 'Celda donde alojará el nombre
Celda_Direcc = "B3" 'Celda donde alojará la Dirección
Celda_etc = "B4" 'Celda donde alojará etc...
'---------------------------- gracias
Set Hojadata = Sheets(Hojadata)
If IsEmpty(Hojadata.Range(Celda_Nombre)) Then
For ton = 1 To 4
Beep ' LLamado atención acústico
Next ton
Do
D_Nombre = InputBox("Por favor, ingrese su nombre:", "COMPLETE DATOS PERSONALES")
Loop While Len(D_Nombre) = 0 'obliga a ingresar dato en este inputbox
Do
D_Dir = InputBox("Por favor, ingrese su dirección:", "COMPLETE DATOS PERSONALES")
Loop While Len(D_Dir) = 0 'obliga a ingresar dato en este inputbox
Do
D_etc = InputBox("Por favor, ingrese su etc:", "COMPLETE DATOS PERSONALES")
Loop While Len(D_etc) = 0 'obliga a ingresar dato en este inputbox
'...
Hojadata.Range(Celda_Nombre).Value = D_Nombre
Hojadata.Range(Celda_Direcc).Value = D_Dir
Hojadata.Range(Celda_etc).Value = D_etc
End If
Set Hojadata = Nothing
End Sub
Completa los datos indicados al inicio del código, relativos a la ubicación de los datos a solicitar y, eventualmente, agrega variables para otros que no figuran allí.
Cierra el Editor de Visual Basic y graba el archivo.
Como verás la macro está preparada para recibir tres datos, pero creo que entenderás la idea y podrás adaptarla a tu caso.
La macro revisa en la hoja que le indiques si existen datos o no. En el caso de la archivo de plantilla original siempre estará en blanco toda vez que al intentar grabarla, esta debe recomendar que se grabe con otro nombre. En cambio si el archivo que se llama, fuese uno grabado como xls, con otro nombre, al encontrar datos en aquellas celdas, la macro no será ejecutada.
Independientemente de tu estrategia para la generación de un archivo nuevo, cada vez que se abra este archivo, tal control de existencia será llevado a cabo.
En el caso de que no encuentre datos, aparece una sucesión de Inputbox que le solicitan al usuario/a que complete cada dato. Notarás que cada uno de ellos está encerrado en un ciclo (loop) Do-while que obliga a que la caja de texto se complete. Desde luego puedes eliminarle este control, si así lo deseas.
Alojados los datos en cada variable, son volcadas luegos a las direcciones que le indicaste originalmente.
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas