¿Como puedo para pegar información de filas con valores en una base de datos?

Necesito de su valiosa ayuda para terminar una macro que tengo días haciendo; he logrado completar varias cosas; pero ahora estoy bloqueada con el envío a la base de datos: "Capturo datos en una hoja llamada Recolección de datos; que va desde el rango A1:D6; en cada fila coloco datos de personas, hay veces en que se llenan todas las filas y otra veces en que solo se llenan 2 o 3 filas; cuando hago el copy para mi base de datos debo seleccionar todo el rango, por si se llenan todas las filas, pero cuando sucede que solo están llenas 2 filas, el resto de las filas del rango también me las ocupa en la base de datos como filas vacías. Quisiera una macro que me copiara todo el rango pero que pegara en la base solo las filas con datos.

2 Respuestas

Respuesta

Si mal no te entendí, una línea así te sería útil:

Worksheets("Recoleccion de datos"). Range("A1"). CurrentRegion.Copy Destination:=Worksheets("Base de datos"). Range("A1")

Ah, eso suponiendo que en la "otra" hoja comienzas a pegar desde la celda "A1". Ya tú reemplaza por la celda que desees y tampoco olvides verificar los nombres de las hojas.

Comentas

Abraham Valencia

Respuesta

Te paso un ejemplo para que lo adaptes, o si gustas mándame tu archivo para trabajarlo mi correo es [email protected]

Sub quieres()
'by Cecilio Perez maqueda
Dim wb As Workbook: Set wb = ThisWorkbook
Dim Ho As Worksheet: Set Ho = wb.Sheets("contabilidad")
Dim Hd As Worksheet: Set Hd = wb.Sheets("caja")
Dim Hd2 As Worksheet: Set Hd2 = wb.Sheets("cartera")
Dim ucel
For i = 2 To Ho.Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
ucel = Hd.Range("A" & Rows.Count).End(xlUp).Row + 1
ucel2 = Hd2.Range("A" & Rows.Count).End(xlUp).Row + 1
      If Ho.Cells(i, "B").Value = "contado" Then
          Ho.Range("A" & i & ":c" & i).Copy Hd.Cells(ucel, "A")
      Else
          Ho.Range("A" & i & ":c" & i).Copy Hd2.Cells(ucel2, "A")
           Application.CutCopyMode = False
    End If
  Next
  Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas