Copiar partes de una celda en otra celda, en filas suc

Buenos días,
Le agradecería que me ayudara con el siguiente problema:
He recibido un montón de facturas con un único campo. En este campo hay varios campos insertados que se separan con uno o varios espacios cada uno (pongamos por ejemplo que son 4 campos en uno).
Pretendo copiar el campo inicial en una pestaña y hacer una macro mediante la que se copie el contenido de toda la celda, en las celdas a1, a2, a3 y a4, a continuación editando cada celda borraré la parte que no me interese de cada una.
Además, previamente y al final de la macro me interesaría que cada vez el cursor se sitúe en la última celda de la lista. Para ello he encontrado una respuesta en este foro, he copiado el resultado pero no funciona.
Aún sin esta copia no me funciona porqué en la macro se grava por ejemplo a4 y esté donde esté el cursor, siempre engancha el contenido de la nueva celda (origen) en la misma celda (destino). Esto me ocurre a pesar de que finalizo la macro dándole a Enter, con lo que el cursor se sitúa en la celda correspondiente a la siguiente fila de la primera columna, pero repito, no funciona porqué vuelve a gravar sobre a4.
Le transcribo copia de toda la macro, aunque verá que es muy repetitiva:
"Sub Factura_Vidal()
'
' Factura_Vidal Macro
' Macro grabada el 12/09/2008 por xxx
'
' Acceso directo: CTRL+b
'
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
Sheets("Còpia Fra. Vidal").Select
Range("A1").Select
Selection.Copy
Sheets("Fra. Vidal").Select
Range("A*:L*").Select
ActiveSheet.Paste
Range("A").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "F2008B 0008557 "
With ActiveCell.Characters(Start:=1, Length:=18).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("B").Select
ActiveCell.FormulaR1C1 = "40207019"
Range("C").Select
ActiveCell.FormulaR1C1 = "PA¥O COCINA TETERA (50X50) "
With ActiveCell.Characters(Start:=1, Length:=40).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("D").Select
ActiveCell.FormulaR1C1 = "8432583070194"
Range("E").Select
ActiveCell.FormulaR1C1 = "1"
Range("F").Select
ActiveCell.FormulaR1C1 = "12"
Range("G").Select
ActiveCell.FormulaR1C1 = "12"
Range("H").Select
ActiveCell.FormulaR1C1 = "0.64"
Range("I").Select
ActiveCell.FormulaR1C1 = "7.68"
Range("J").Select
ActiveCell.FormulaR1C1 = "16"
Range("K").Select
ActiveCell.FormulaR1C1 = "4"
Range("L").Select
ActiveCell.FormulaR1C1 = "1"
Range("M").Select
Sheets("Còpia Fra. Vidal").Select
Selection.EntireRow.Delete
Sheets("Fra. Vidal").Select
Range("A").Select
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
End Sub
"
Gracias por el interés,
Carles
{"lat":42.4477814346224,"lng":1.46942138671875}

1 respuesta

Respuesta
1
Estuve viendo tu macro y el problema es que siempre hace referencia a las mismas celdas.
Aún no entiendo por qué quieres copiar los datos hacia abajo en lugar de usar columnas.
Yo te recomendaría que utilizaras columnas y Excel tiene una forma muy sencilla de resolver eso sin necesidad de programar, los pasos son los siguientes:
1 - Voy a suponer que tienes los datos en la columna A en esta forma: FA00888 CARMEN ALAJUELA
2 - Suponiendo que tienes muchos datos hacia abajo, seleccionas los datos, luego vas al menú Datos-Texto en Columnas. Por defecto está seleccionado Delimitados. Presionas en Siguiente. Aquí marcas la forma en que están separados los datos (coma, espacio, etc.) y presionas Siguiente.
3 - En la pantalla que sale tiene una opción que dice Destino, ahí escoges la celda B2 por ejemplo. Presionas en Finalizar y los datos se acomodan en las columnas siguientes.
Si estos pasos no es lo que andas buscando, prefiero que me envíes tu archivo para ver bien lo que deseas.
Apreciado Juan Carlos,
No conocía esta utilidad de excel y es mucho más sencillo que hacer una macro que por lo visto no es necesaria. Ni te imaginas el trabajo que me has ahorrado puesto que pensaba que debía activar la macro para cada uno de los registros. Te estoy muy agradecido.
Un saludo,
Carles

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas