Copiar columnas diferentes a otra hoja

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 las columnas juntas, una detrás de la otra, envío mi código que he utilizado.
No logro hacer que se acomoden, al final 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.
Mi código si me copia las columnas que selecciono, solo me falta el como decirle que me pegue primero una, en la siguiente columna la otra, y en la siguiente la otra, hasta que se acaben.
No tiene que ser como tengo mi código, la idea es que al final se pueda hacer.
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
(xxxxxx)

1 respuesta

Respuesta
1
Pero que me las copie todas las columnas juntas...
Excel no permite el comando copy en selecciones múltiples que no sean un rango.
Lo debes hacer una a la vez.
Así: esta vez separado en 2 sub uno copia y otro pega
Option Explicit
Private Sub CommandButton1_Click()
Dim Criteria1, Criteria2, criteria3, criteria4, criteria5, criteria6, criterioa7 As String
Dim Colum As Long
Dim a As Integer
a = 0
Application.ScreenUpdating = False
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 = Application.WorksheetFunction.CountA(Sheets(6).Rows("7:7")) + 1
   pegar (Colum)
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
   Colum = Application.WorksheetFunction.CountA(Sheets(6).Rows("7:7")) + 1
   pegar (Colum)
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
   Colum = Application.WorksheetFunction.CountA(Sheets(6).Rows("7:7")) + 1
   pegar (Colum)
End If
  Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Sub pegar(columna As Integer)
   Hoja6.Activate
   Cells(7, columna).Select
   ActiveSheet.Paste
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