No se de macro en excel y quiero una que copie en hoja 2 parte de fila, si en columna B de hoja 1 "si"

Ante todo no se de macros.

Intento hacer una que me realice en la hoja 2 un resumen de datos siempre que cumpla una condición.

Que en hoja 1, columna ($b2) aparece "si", pues que en hoja 2 copie las celdas "A2", "C2", "E2"...

Necesitaría que alguien me lo explicase paso a paso.

1 respuesta

Respuesta
1

Sigue las Instrucciones para un botón y ejecutar la macro

1. Abre tu libro de Excel

2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11

3. En el menú elige Insertar / Módulo

4. En el panel del lado derecho copia la macro

5. Ahora para crear un botón, puedes hacer lo siguiente:

6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas

7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.

8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”

9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: copiar

10. Aceptar.

11. Para ejecutarla dale click a la imagen.

Sub copiar()
'Por.DAM
    'establecer las hojas a utilizar
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    '
    'revisar con un ciclo la hoja1 desde la fila 2 hasta el final de los datos
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        '
        'Si en la hoja 2 en la columna B dice "si"
        If h1.Cells(i, "B") = "si" Then
            '
            'encuentra la última fila disponible de la hoja 2
            u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
            'copia las celdas A, C y E
            h1.Range("A" & i & ",C" & i & ",E" & i).Copy h2.Range("A" & u)
        End If
    Next
End Sub

En la macro, las líneas que empiezan con este carácter   '  son unos comentarios, significa que puse la explicación de lo que la macro está haciendo.

Ante todo MUCHAS GRACIAS!!! Pero me temo que algo no hago bien.

esta seria mi macro:

Sub copiar()
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    For i = 3 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "B") = "si" Then
            u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
            h1.Range("A" & i & ",C" & i & ",D" & i & ",E" & i & ",F" & i & ",G" & i ",H" & i & ",K" & i & ",X" & i & ",Y" & i & ",Z" & i & ",AH" & i & ",AI" & i & ",AJ" & i & ",BK" & i & ",BL" & i & ",BM" & i & ",BN" & i).Copy h2.Range("A" & u)
        End If
    Next
End Sub

Pero la parte de : h1.Range("A" & i &....)   me aparece en rojo. Entiendo que esta mal.

No he seguido más allá.

Te faltaba un símbolo &, prueba con esta

Sub copiar()
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    For i = 3 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "B") = "si" Then
            u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
            h1.Range("A" & i & ",C" & i & ",D" & i & ",E" & i & _
                     ",F" & i & ",G" & i & ",H" & i & ",K" & i & _
                     ",X" & i & ",Y" & i & ",Z" & i & ",AH" & i & _
                     ",AI" & i & ",AJ" & i & ",BK" & i & ",BL" & i & _
                     ",BM" & i & ",BN" & i).Copy h2.Range("A" & u)
        End If
    Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas