Inversión de columna VBA
Resuelto
texastina
Mensajes publicados
55
Estado
Miembro
-
texastina Mensajes publicados 55 Estado Miembro -
texastina Mensajes publicados 55 Estado Miembro -
Hola,
Quisiera saber si es posible invertir el contenido de varias columnas gracias al VBA.
Ej: Columna D ==> Columna B
Columna B ==> Columna C
Columna C ==> Columna D
Espero haber sido lo suficientemente clara :)
Gracias por tus respuestas :)
Quisiera saber si es posible invertir el contenido de varias columnas gracias al VBA.
Ej: Columna D ==> Columna B
Columna B ==> Columna C
Columna C ==> Columna D
Espero haber sido lo suficientemente clara :)
Gracias por tus respuestas :)
4 respuestas
-
Hola
Yo prefiero mover la columna
ejemplo:Sub DeplaceCol() Columns(4).Cut Columns(2).Insert Shift:=xlToRight Range("A1").Select End Sub
A+
Maurice -
Hola,
Sí, es posible. Incluso puedes limitarte al primer desplazamiento: columna D frente a columna B.
Las otras columnas estarán automáticamente en el lugar correcto.
Si además de tu pregunta quieres saber cómo hacerlo, utiliza el grabador de macros y tendrás el código.
Saludos cordiales -
Hola,
Sí, eso es posible gracias a la secuencia de comandos copiar y pegar.
En tu caso:dim ejemplo as Range // Declaración de tu campo de acción ejemplo = Range("A1;E600") // Selección de un rango amplio, a adaptar según la longitud de tus columnas. ejemplo.Column(4).select // Selecciona la columna D Selection.copy // Copia la columna seleccionada ejemplo.Column(5).select // Selecciona la columna E ActiveSheet.Paste // Pega lo que se ha copiado en la columna seleccionada
Espero haber sido lo suficientemente claro, a hacerlo según tu deseo :)
Manténme informado si hay algo que no entiendes. -
Hola
intenta:
Opción Explícita
'------------------
Sub bcd_cdb()
Dim Derlig As Integer, T_in, T_out, cptr As Integer
Application.ScreenUpdating = False
Derlig = Cells.Find(what:="*", searchdirection:=xlPrevious).Row
T_in = Range("B1:D" & Derlig)
ReDim T_out(1 To Derlig, 1 To 3)
For cptr = 1 To UBound(T_in)
T_out(cptr, 1) = T_in(cptr, 3) '
T_out(cptr, 2) = T_in(cptr, 1) '
T_out(cptr, 3) = T_in(cptr, 2) '
Next
Range("B1").Resize(UBound(T_in), 3) = T_out
End Sub
--
Michel