Macro para copiar datos de una columna, debe cumplir una condición en una celda y pegar en otra columna, en la misma hoja.

Tengo una base de datos en la que tengo dos columnas una "retenciones_importe" Y "retenciones_impuesto",

La macro debe de copiar los datos de la columna "retenciones_importe" siempre que encuentre IVA (texto) en la columna "retenciones_impuesto", en una nueva columna llamada "retención de iva", y así con ISR copiar los datos de la columna "retenciones_importe" siempre que encuentre ISR(texto) en la columna "retenciones_impuesto" y copiarlos en una nueva columna llamada "retención de ISR".

d

2 respuestas

Respuesta
3

Te anexo la macro

Antes de ejecutar la macro, cambia las letras B, C, F y G por las letras de las columnas donde tienes cada información. También cambia "Hoja7" por el nombre de tu hoja.

Sub Copiar_Retenciones()
'Por.Dante Amor
    col_importe = "B"   'columna de retenciones_importe
    col_impuesto = "C"  'columna de retenciones_impuesto
    col_isr = "F"       'columna de retención de isr
    col_iva = "G"       'columna de retención de iva
    Set h = Sheets("Hoja7") 'nombre de la hoja donde tienes los datos
    '
    j = 2
    k = 2
    For i = 2 To h.Range(col_impuesto & Rows.Count).End(xlUp).Row
        Select Case h.Cells(i, col_impuesto)
            Case "ISR"
                h.Cells(j, col_isr) = h.Cells(i, col_importe)
                j = j + 1
            Case "IVA"
                h.Cells(k, col_iva) = h.Cells(i, col_importe)
                k = k + 1
        End Select
    Next
    MsgBox "Copia terminada"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

¡Gracias! 

Funciona a la perfección, te agradezco mucho. 

Una duda estimado Dante Amor, la macro funciona a la perfección, dado que hice prueba con pocos datos, cuando la puse en mi base de datos con muchos registros  las filas se recorren hacia arriba, habrá forma de que respeten su misma fila ? Anexo Imagen 

Ah, eso es más sencillo, pero no sabía si iban en la misma fila o juntas.

Ahora ya veo las columnas. Te cambio la macro

Sub Copiar_Retenciones()
'Por.Dante Amor
    col_importe = "AX"      'columna de retenciones_importe
    col_impuesto = "AY"     'columna de retenciones_impuesto
    col_isr = "AZ"          'columna de retención de isr
    col_iva = "BA"          'columna de retención de iva
    Set h = Sheets("Hoja7") 'nombre de la hoja donde tienes los datos
    '
    For i = 2 To h.Range(col_impuesto & Rows.Count).End(xlUp).Row
        Select Case h.Cells(i, col_impuesto)
            Case "ISR": h.Cells(i, col_isr) = h.Cells(i, col_importe)
            Case "IVA": h.Cells(i, col_iva) = h.Cells(i, col_importe)
        End Select
    Next
    MsgBox "Copia terminada"
End Sub

sal u dos

Respuesta
1

Tal vez te aporte algo este ejemplo

https://youtu.be/Rac3rYG9Jqs

https://youtu.be/yFNlSsYZZF0

https://youtu.be/pVtO73WS4OQ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas