Elsa mil gracias por tu ayuda, ya le encontré solución a esto. No aprendo nada de visual basic. Pero me estoy haciendo experto en grabar macros. ¿jajaja qué feo es eso no?
Intenté enviarte ayer la respuesta pero no me habilitó el sitio. Ya sé que lo solucionaste, pero aquí va una rutina 'explicada' (Te recomiendo mi Manual para que además de experto en grabar seas experto en programar, ¿qué te parece? ) Adjunto respuesta escrita aer: Hola: Primero quiero aclararte que nosotros no tenemos acceso a los mail, por lo que si finalizas una consulta no tenemos cómo volverte a responder. Bueno, aquí va: si los datos son tal como la muestra solo tenemos 2 largos de cifras y usé esa información para armar un solo Array. Espero te resulte. Saludos Elsa Sub arrayes() 'Macro grabada el 28/04/05 por Elsamatilde Range("A65500").End(xlUp).Select 'La tabla debe comenzar en la fila 2 While ActiveCell.Row > 1 If Len(ActiveCell) > 0 Then If Len(ActiveCell) > 24 Then Selection.TextToColumns Destination:=ActiveCell.Offset(0, 1), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(3, 1), Array(8, 2), Array(10, 2), Array(12, 2), _ Array(16, 1), Array(21, 1)), TrailingMinusNumbers:=True Else Selection.TextToColumns Destination:=ActiveCell.Offset(0, 1), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(3, 1), Array(8, 2), Array(10, 2), Array(12, 2), _ Array(13, 1), Array(18, 1)), TrailingMinusNumbers:=True End If End If ActiveCell.Offset(-1, 0).Select Wend End Sub (No olvides que la tabla debe comenzar en la fila 2)
Estupendo. Solo una pregunta más, ¿es posible usarla desde la primera fila?.
Gracias por tu gran ayuda, eres la mejor.
Si, es posible. Te envío la misma con algunos cambios: Sub arrayes() 'Macro grabada el 28/04/05 por Elsamatilde Dim conta As Byte Range("A65500").End(xlUp).Select 'La tabla debe comenzar en la fila 2 While conta = 0 If Len(ActiveCell) > 0 Then If Len(ActiveCell) > 24 Then Selection.TextToColumns Destination:=ActiveCell.Offset(0, 1), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(3, 1), Array(8, 2), Array(10, 2), Array(12, 2), _ Array(16, 1), Array(21, 1)), TrailingMinusNumbers:=True Else Selection.TextToColumns Destination:=ActiveCell.Offset(0, 1), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(3, 1), Array(8, 2), Array(10, 2), Array(12, 2), _ Array(13, 1), Array(18, 1)), TrailingMinusNumbers:=True End If End If If ActiveCell.Row > 1 Then ActiveCell.Offset(-1, 0).Select Else conta = 1 End If Wend End Sub
- Anónimoahora mismo
Añade tu respuesta
Haz clic para
o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.