Copiar columnas diferentes

Tengo una hoja de excel con 60 columnas, quiero que por medio de varios checkbox (en un formulario) uno por cada columna, que si elijo o esta habilitado el checkbox 3,8,12,16 y 24 me copie esas columnas seleccionadas y me la pase a una nueva hoja especifica, pero que me las copie todas juntas, una detrás de la otra, envío mi código que he utilizado pero no logro hacer que se acomoden, al fina me las sobreescribe, ya que no se como decirle que lo pegue en la siguiente columna, porque es dinámica, dependerá de la columna que se elija, no es copiar un rango de columnas, es copiar columnas alternas.
Private Sub CommandButton5_Click()
Dim Criteria1, Criteria2, criteria3, criteria4, criteria5, criteria6, criterioa7 As String
Dim Colum As Long
Dim a As Integer
a = 0
If CheckBox1 = True Then
   Hoja5.Activate
   Criteria1 = Range("B7").Select
   'Range(Selection, Selection.End(xlDown).End(xlDown)).Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Copy
   'Colum = a + 1
End If
If CheckBox2 = True Then
   Hoja5.Activate
   Criteria2 = Range("F7").Select
   'Range(Selection, Selection.End(xlDown).End(xlDown)).Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Copy
   'a = 0
End If
If CheckBox3 = True Then
   Hoja5.Activate
   criteria3 = Range("G7").Select
   'Range(Selection, Selection.End(xlDown).End(xlDown)).Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Copy
'End If
   Hoja6.Activate
   Range("B7").Select
   ActiveSheet.Paste
End Sub
Saludos Cordales
[email protected]

1 Respuesta

Respuesta
1
Como estas amigo, disculpa la tardanza en responder.
Prueba este código a ver como te va. Lo probé y me funciona bien solo tienes que hacer el arreglo de checkbox que necesites y ponerle al final del nombre la columna que quieres que maneje
Ejemplo checkbox1 va a manejar la columna B, checkbox3 la C, así sucesivamente.
Saludos
Espero te sea de ayuda.
Bacter
Private Sub CommandButton5_Click()
Dim Colum As Long
Dim Elemento As Control
Dim indice As Integer
Colum = 0
For Each Elemento In Me.Controls
 If TypeName(Elemento) = "CheckBox" Then
 If Elemento.Value = True Then
    indice = Right(Elemento.Name, 1)
    Sheets("Hoja1").Select
    Cells(7, 1 + indice).Select
   Range(Selection, Selection.End(xlDown).End(xlDown)).Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Copy
   Colum = Colum + 1
   Sheets("Hoja6").Select
   Cells(7, 1 + Colum).Select
   ActiveSheet.Paste
   End If
End If
Next
End Sub

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.

Más respuestas relacionadas