Elegir en que hoja pegar información

Feliz comienzo de año.

Detallo abajo como la información que cumpla con una condición en la columna E de la hoja 1 se pega en la hoja 2 en la columna A a través de un botón.

Me gustaría poder elegir en que hoja pegar la información mediante el combobox que tengo en la hoja 1.

Sub Pasar_ID()
'busca "Verdadero" copia y pega
'Por.Dam
Sheets("hoja1").Select
'obtiene la última fila con datos de la columna L
ufila = Range("E" & Rows.Count).End(xlUp).Row
'obtiene el número de columna que representa la letra L
col = Range("E6").Column
k = 5
For i = 2 To ufila ' recorre toda la columna hasta la última celda con datos
    If Cells(i, col) = "Verdadero" Then
        'copia a la hoja2 columna A el contenido de la hoja1 columna B
    Sheets("hoja2").Range("A" & k) = Sheets("hoja1").Range("A" & i)
    k = k + 1
    End If
Next 'va al siguiente registro
Sheets("hoja2").Select
End Sub
Private Sub ComboBox1_DropButtonClick()
'Por.Dante Amor
    actual = ComboBox1.Value
    ComboBox1.Clear
    For Each h In Sheets
        If h.Name <> ActiveSheet.Name Then
            ComboBox1.AddItem h.Name
        End If
    Next
    ComboBox1.Value = actual
End Sub

1 respuesta

Respuesta
1

H o l a: Te anexo la macro actualizada

Sub Pasar_ID()
'busca "Verdadero" copia y pega
'Por.Dante Amor
    Sheets("hoja1").Select
    ufila = Range("E" & Rows.Count).End(xlUp).Row   'última fila con datos de la columna E
    col = Columns("E").Column                       'número de columna que representa la letra E
    existe = False
    If ActiveSheet.ComboBox1 = "" Then
        MsgBox "Falta seleccionar la hoja destino"
        Exit Sub
    End If
    hoja = ActiveSheet.ComboBox1
    For Each h In Sheets
        If h.Name = hoja Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "No existe la hoja destino"
        Exit Sub
    End If
    '
    k = 5
    For i = 2 To ufila ' recorre toda la columna hasta la última celda con datos
        If Cells(i, col) = "Verdadero" Then
            'copia a la hoja destino columna A el contenido de la hoja1 columna A
            Sheets(hoja).Range("A" & k) = Sheets("hoja1").Range("A" & i)
            k = k + 1
        End If
    Next 'va al siguiente registro
    Sheets("hoja2").Select
    MsgBox "Información copiada"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas