Formulario Excel para copiar el dato de una celda a un archivo nuevo(libro)

Me encuentro con un problema. Estoy necesitando una mano para poder transferir los datos de una celda excel y convertirla en un archivo word o excel también. Es decir que me agarre un listado de 2000 personas con legajo y me cree 2000 archivos excel o word (libros), suena a locura pero me sirve mucho. Una vez que tenga todos los archivos, desde un excel crear hiperviculos a cada archivo según corresponda la persona.

Busque mucho por todos lados pero no puedo encontrar e intente pero no me sale, ojala alguno mepueda ayudar.

1 respuesta

Respuesta
1

Puedes poner un ejemplo completo, con los siguientes datos:

  1. En cuál columna tienes los nombres de las personas
  2. Qué información se va a pasar a los nuevos archivos
  3. Cómo se va a llamar la hoja nueva
  4. Cómo se va a llamar el archivo nuevo
  5. Supongo que en el nombre de la persona quieres el hipervinculo hacia el nuevo libro de excel

Los archivos se guardarán con excel, ya que no se pueden crear como word, o es más complicado, la otra alternativa es que se guarden como txt

Te recuadro unos datos al azar, yo preciso que se cree un word(en blanco) con el nombre que aparece ahí

Esto lo hice de forma manual, pero yo preciso de toda la columna "A"
la ruta de destino seria "C:\Nueva carpeta\AGENCIA DE MEDIO AMBIENTE\AGENTES"

Y una vez creado todos los words, tomar el excel original y vicularlos a todos de una vez.

...

Esto se usara para crear todos los words en blanco, donde con los hipervínculos puedo llamarlos y modificarlos, esto es para un seguimiento completo del agente.
¿Me pude explicar más o menos? Esto ya se me hace desesperante hace unos años que no toco VB y estoy más perdido que Wally en el día del amigo

Ya sea en excel o word es lo mismo, lo que preciso es crear todos los archivos y vincularlos. 

Te anexo la macro para crear los archivos de excel y los vínculos. Pon la macro en el libro que contiene los nombres. Guarda el archivo como excel habilitado para macros en la misma carpeta donde quieres que se generen todos los archivos.

Sub CrearArchivos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = ThisWorkbook.Path & "\"
    '
    'Inicia en la fila 2 y termina en la última fila con datos de la columna A
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        'pone en la variable nombre el contenido de la celda fila i, columna A
        nombre = Cells(i, "A")
        'Crea un nuevo libro
        Workbooks. Add
        'Guarda el nuevo libro con la ruta y el nombre como xlsx
        ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".xlsx", _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        'cierra el libro nuevo
        ActiveWorkbook.Close
        'crea el hipervínculo
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, "A"), _
            Address:=ruta & nombre & ".xlsx", _
            TextToDisplay:=nombre
    Next
    MsgBox "Generación terminada"
End Sub

sal u dos

Me estaría tirando este error. ¿Tendré que modificar algo? Tengo el office 2007 instalado

¿Y qué dice el mensaje de error?

'en un momento lo había comentado lo que estaba en amarillo para ver que sucedía y me lleno el escritorio de archivos xDxD.

Veo que modificaste la macro.

Podrías ejecutar la macro original

Pero el mensaje de error que estás poniendo, en el fondo veo la macro modificada.

Empecemos de nuevo.

Copia la macro original y ejecuta.

Activa la grabadora de macros.

Crea un nuevo archivo, guarda el nuevo archivo como archivo de excel

En una celda crea un hipervínculo al archivo nuevo que creaste

Desactiva la grabadora de macros

Envíame el código que te genero la grabadora

Sub DrAmor()
'
' DrAmor Macro
'

'
Application.Left = 768.25
Application.Top = 211
Workbooks.Add
ChDir "C:\Users\braiton\Desktop\Nueva carpeta (2)"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\braiton\Desktop\Nueva carpeta (2)\Libro2.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="Libro2.xlsx", _
TextToDisplay:="Libro2.xlsx"
End Sub

Lo veo bien.

Se detiene en la primera ejecución o si te genera varios archivos y varios hipervículos.

Es probable que en alguna celda tengas un blanco o un vacío o un caracter que no permita guardar el archivo.

Verifica cuál es el nombre que no está creando y revisa si tiene algo raro en la celda.

Ejecuta la macro original.

Señor, me saco el sombrero ante usted!.
Solo le pido una cosita más, que en vez de que los archivos se guarden en la misma carpeta que esta el excel madre se guarde en una subcarpeta

y entren en esta carpeta "C:\Users\braiton\Desktop\Nueva carpeta (2)\Agentes" y estaria 100% completo

Así quedaría:

Sub CrearArchivos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = "C:\Users\braiton\Desktop\Nueva carpeta (2)\Agentes\"
    '
    'Inicia en la fila 2 y termina en la última fila con datos de la columna A
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        'pone en la variable nombre el contenido de la celda fila i, columna A
        nombre = Cells(i, "A")
        'Crea un nuevo libro
        Workbooks. Add
        'Guarda el nuevo libro con la ruta y el nombre como xlsx
        ActiveWorkbook.SaveAs Filename:=ruta & nombre & ".xlsx", _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        'cierra el libro nuevo
        ActiveWorkbook.Close
        'crea el hipervínculo
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, "A"), _
            Address:=ruta & nombre & ".xlsx", _
            TextToDisplay:=nombre
    Next
    MsgBox "Generación terminada"
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas