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
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 de Juan Carlos González Chavarría
1