Saltar al contenido

Macro transformar archivo espacio en blanco a base de datos


Recommended Posts

publicado

hola Amigos!! espero se encuentren muy bien, 

En el archivo adjunto, encontrarán dos hojas: MB5L y BD. Debo transformar la información que se encuentra en MB5L y estructura como una base de datos en la hoja BD. 
para realizar esto en la mB5L debe se coger los datos que se encuentran en las columnas "i" a "n" copiarlos y pegarlos en las columnas "c" a "h" en la hoja BD. Adicional, se debe repetir la sociedad y la cta mayor por cada registro que se pega en la hoja BD. la soc se encuentra para el primer caso en la celda C5 y cta mayor en B6.

Comparto una hoja de como debería de quedar el resultado ?

si me pueden ayudar, se lo agradecería mucho!!

MB25 - ejercicio.xlsb

publicado
 With Hoja1
        .Range("I7", "N" & .Range("I" & Rows.Count).End(xlUp).Row).Copy Destination:=Hoja2.Range("C2")
        .Range("B6", "B" & .Range("B" & Rows.Count).End(xlUp).Row).Copy Destination:=Hoja2.Range("A2")
        .Range("C5", "C" & .Range("C" & Rows.Count).End(xlUp).Row).Copy Destination:=Hoja2.Range("B2")
        
    End With
    With Hoja2
        dato = .Cells(2, 2)
        dato1 = .Cells(2, 1)
        For x = 2 To .Range("C" & Rows.Count).End(xlUp).Row - 1
            If .Cells(x + 1, 2) = "" Or IsNumeric(.Cells(x + 1, 2)) Then
               .Cells(x + 1, 2) = dato
               
            Else
                dato = .Cells(x + 1, 2)
            End If
            
            If .Cells(x + 1, 1) = "" Then
                .Cells(x + 1, 1) = dato1
            Else
                 dato1 = .Cells(x + 1, 1)
            End If
        Next x
        .Columns("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  
    End With

Prueba y comenta

image.gif

MB25 - ejercicio.xlsm

publicado
hace 1 hora, JSDJSD dijo:
 With Hoja1
        .Range("I7", "N" & .Range("I" & Rows.Count).End(xlUp).Row).Copy Destination:=Hoja2.Range("C2")
        .Range("B6", "B" & .Range("B" & Rows.Count).End(xlUp).Row).Copy Destination:=Hoja2.Range("A2")
        .Range("C5", "C" & .Range("C" & Rows.Count).End(xlUp).Row).Copy Destination:=Hoja2.Range("B2")
        
    End With
    With Hoja2
        dato = .Cells(2, 2)
        dato1 = .Cells(2, 1)
        For x = 2 To .Range("C" & Rows.Count).End(xlUp).Row - 1
            If .Cells(x + 1, 2) = "" Or IsNumeric(.Cells(x + 1, 2)) Then
               .Cells(x + 1, 2) = dato
               
            Else
                dato = .Cells(x + 1, 2)
            End If
            
            If .Cells(x + 1, 1) = "" Then
                .Cells(x + 1, 1) = dato1
            Else
                 dato1 = .Cells(x + 1, 1)
            End If
        Next x
        .Columns("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  
    End With

Prueba y comenta

image.gif

MB25 - ejercicio.xlsm 209.88 kB · 2 descargas

muchas gracias @JSDJSD!! excelente la solución :) 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.