Crear un archivo con cada fila de una hoja excel (con título)

Lo que necesito es crear un archivo (excel o txt) con los datos de cada una de las filas (cada una con varias columnas) que tengo en una hoja de cálculo, de forma que en el archivo resultado (que se llame como la primera columna de cada fila) aparezcan los datos con sus respectivos títulos de columna. Por ejemplo:

Hoja de cálculo:

Resultado que pretendo:

FICHERO "Pepe.xls" (o "Pepe.txt"):

FICHERO "Juan.xls" (o "Juan.txt"): 

1 respuesta

Respuesta
1

Entra al Editor de macros, inserta un módulo y allí copia la siguiente rutina:

Sub LibroxHoja()
'x Elsamatilde

'se trabaja con la Hoja1 y se utiliza una hoja auxiliar
Dim x As Byte
Dim sh, wb
Dim filx As Long
Dim nbre As String, ruta As String, exten As String

'se crea la hoja auxiliar
For Each sh In Sheets
If sh.Name = "AUX" Then x = 1: Exit For
Next sh

'si x = 1 significa que la hoja ya existe, sino se la crea
If x = 1 Then
Sheets("AUX").Cells.Clear
Else
Sheets.Add
ActiveSheet.Name = "AUX"
'regreso a mi hoja con la tabla
Sheets("Hoja1").Select
End If
'se recorre la col A de Hoja1
Range("A2").Select
'guarda ruta y extensión: AJUSTAR A GUSTO
ruta = ThisWorkbook.Path
exten = ".xlsx"
'se recorre hasta que encuentre una fila vacía
While ActiveCell <> ""
'se copian las 2 col a la hoja Aux y luego se guarda como libro
'guardo el nombre para el libro
nbre = ActiveCell.Value
'guardo la fila copiada para regresar
filx = ActiveCell.Row
Range("B" & filx & ":C" & filx).Copy Destination:=Sheets("AUX").Range("A2")
'copio también la fila de titulos
Range("B1:C1").Copy Destination:=Sheets("AUX").Range("A1")
'creo un libro de la hoja Aux y lo guardo en la misma carpeta
Sheets("AUX").Select
ActiveSheet.Copy
'creamos un nuevo objeto Libro
Set wb = ActiveWorkbook
With wb
.SaveAs ruta & "\" & nbre & exten
.Close True
End With
'limpia la hoja Aux para continuar con otro registro
Sheets("AUX").Cells.Clear
Sheets("Hoja1").Select
ActiveSheet.Range("A" & filx + 1).Select
Wend
MsgBox "FIN DEL PROCESO"
End Sub

Lo que hará es dejarte todos los libros creados en la misma carpeta (podrás ajustar esta línea) y también podrás ajustar la extensión a gusto.

Necesita crear una hoja auxiliar a la que llamará AUX, si ya existe borrará su contenido para utilizarla.

Probala y si todo queda resuelto según lo solicitado no olvides valorarla.

¡Gracias! estoy muy agradecido, me habéis resuelto el problema; he tenido que introducir alguna pequeña variación, seguramente por la cortedad de mi pregunta, pero la solución es excelente y preferible a otras alternativas que estaba probando.

De nuevo, muchas gracias por vuestro tiempo y atención.

¡Gracias, Elsa!   :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas