Armar fichero

Hola, espero como siempre lo han hecho puedan ayudarme.
Necesito hacer algún desarrollo que me permita armar fichas individuales en distintas hojas de excel para luego poder imprimirlas.
Debería ir cargando algunos datos de los distintos contactos que tengo de clientes y que estos se vayan a la hoja del cliente.
Ej:
Pregunta: Nombre del Cliente RTa: CArlos Perez que arme la hoaj uno del excel cON NOMBRE "PEREZ CARLOS" y que ubique "carlos perez" en lña celda "A3"
Pregunta: edad Rta: 55 y que ubique el dato en la hoja "PEREZ CARLOS" CELDA "B3".
Y así con el resot de las preguntas
Muchas gracias

1 Respuesta

Respuesta
1
Antes de enviarte respuesta a tu planteo, voy a proponerte otro método para que lo evalúes.
Con tu idea, necesitarás tantas hojas como contactos, utilizando seguramente un mínimo de espacio de esa hoja.
Se me ocurre que tengas 1 hoja tipo base, con las col de datos : Nombre, edad, mail, etc
Allí vas cargando toda la información fila por fila, manualmente o con un pequeño formulario en otra hoja o Userform
Luego tendrás 1 hoja con el formulario para imprimir tipo ficha, donde en A3 ingresarás el nombre y en el resto de los celdas utilizarás fórmulas con función BUSCARV:
Ej para edad:
=BUSCARV(A3;HojaBase!A2:J100;2;falso)
Estoy imaginando que la los datos estarán en hoja llamada HojaBase y que tendrá col hasta J, siendo la col B para la edad.
Este diseño de mantener todos los datos en 1 sola hoja te permitirá en algún momento sacar información filtrada de tus contacos: por ej por edad, ubicación, hobbies, etc.
Sdos. Comentame si la idea te resulta
VOY A SER MÁS ESPECIFICO.. muchas gracias por responder a mi pregunta...
Mi pedido es el siguiente:
Con frecuencia tengo que hacer una serie de fichas/informes de clientes y contactos...
Tengo un informe base en WORD en el que completaba los datos de los contactos por ej.:
En donde están los puntos (...) son datos como nombres, edades, etc.
En donde están las por (XXX) son párrafos de 2 o 3 renglones.
Quiero agilizar la carga de estos datos; siguiendo tu idea te aclaro que necesito conservar y / o generar una hoj ao archivo por cada contacto o informe.
Espero haber sido claro...
Muchas, gracias.
                                                                                   Buenos Aires, ... de ... de 2010
1. Datos de filiación:
Nombre y Apellido: ...
Edad: ... años
Nº de pasaporte: ...
Teléfono: ...... / Celular: ..........
2. Datos familiares:
Padre:......, de .... años; ...........
Madre: ......., de .... años; ......
Hermanos: ........, ..... años; .....
Novio/a: .......
3. Ocupación: (trabajo - estudio - otra)
Primario: .....
Secundario: .....
Terciario: ......
4. observaciones 1
xxxxxxxxxxxxxxxxxxxxxxxxx
5. observaciones 2
xxxxxxxxxxxxxxxxxxxxxxxxxx
6. observaciones 3
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Bien, entonces te sugiero tener 1 hoja, en mi ejemplo Hoja1, para cargar los datos y un botón dibujado, en este caso con la barra Formularios.
En el Editor, insertá un módulo y allí copiá la rutina. Luego la asignás a ese botón. Si tené´s alguna duda en estos pasos, los tengo explicados en mi página de macros.
Lo que hace la rutina es comparar si en el libro ya existe una hoja con nombre = contenido de celda A3. Si no está la creará.
Aquí estoy pasando celda por celda pero bien podría ser un copiado de rango completo, si la hoja1 tiene el mismo formato que las fichas.
Sub pase_de_fichas()
'x Elsamatilde
esta = 0
For Each sh In Sheets
If sh.Name = ActiveSheet.Range("A3") Then
    esta = 1
    sh.Select
    Exit For
End If
Next sh
'si la hoja no existe, se creará
If esta = 0 Then
    nbre = ActiveSheet.Range("A3")
    Sheets.Add
    ActiveSheet.Name = nbre
End If
'estoy en la hoja ficha y paso datos de la plantilla
ActiveSheet.Range("A3") = Sheets("Hoja1").Range("A3")
ActiveSheet.Range("A5") = Sheets("Hoja1").Range("A5")
'continuar con las otras celdas
End Sub
Muchas gracias ...
Voy aintentar armarlo más tarde...
No califico tu excelente predisposición por si tengo que volver a hacer una aclaración
Muchas gracias nuevamente
Estuve probándolo...
Esta perfectamente interpretada la idea...
Ahora:
1) Si .. como hago para que se copie un rango si hoja Ficha es la suma de los datos de hoja1 + modelo / plantilla de hoja2 ( por ejemplo) ahí armaría l aplantilla sin los datos que se completen en hoja1
2) Existe la posibilidad de que los datos que vuelque en hoja1 vayan apareciendo como ventanas con preguntas en donde debo colocar la rta. ej:
ventana1: ¿Escriba el Nombre y APellido? Al colocar la respue4sta y dar enter pasar a la ventana 2 que pregunta: ¿Cuál es la edad? Y así sucesivamente con los datos que necesite...
Muchas gracias
Excelente repuesta...
Lo del pto1 no lo comprendí. Debieras explicarlo con referencias concretas.
Si tenés 2 plantillas que deben volcar sus datos en la ficha del usuario, solo tenés que reemplazar el nombre de la hoja, por ej:
ActiveSheet.Range("A3") = Sheets("Hoja1").Range("A3")
ActiveSheet.Range("A5") = Sheets("Hoja2").Range("A5")
Para el pto 2, te estás refiriendo a un formulario del tipo Userform.
Entrás al Editor, insertás un Userform, dibujás los controles y luego los programás. Te imaginas que siendo este un lugar de 'consulta' no puedo realizarte el 'trabajo' de diseñarlo y programarlo. Si necesitas ayuda extra contáctame al correo que encontrarás en mi sitio.
Sino a medida que lo vas desarrollando, vas dejando tus dudas en nuevas consultas.
Muchas gracias... está más que comprendida la aclaración...
Respecto a la consulta sobre el pto.1 ) me refería a no hacer celda por celda sino copiar un rango de celdas
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas