Como puedo hacer para esta macro me ingrese datos en una tabla una fila después del encabezado y no dos como me ocurre.?

Quisiera que la macro me inicie ingresando los datos debajo del encabezado, pero cuando hago la operación inicia ingresando los datos dos filas después del encabezado. Cómo puedo corregir esto,?

Dim C As Range
Dim lr As Long
  With Hoja6
    For Each C In Hoja7.Range("B14:B28").SpecialCells(xlCellTypeConstants)
      lr = .Range("A" & Rows.Count).End(3).Row + 1
      .Range("A" & lr).Value = Hoja7.Range("F6").Value  'fecha
      .Range("B" & lr).Value = Hoja7.Range("F4").Value  'numero de factura
      .Range("C" & lr).Value = C.Offset(0, 1).Value     'descripcion del producto
      .Range("D" & lr).Value = C.Value                  'codigo
      .Range("E" & lr).Value = C.Offset(0, 2).Value     'cantidad
      .Range("F" & lr).Value = C.Offset(0, 3).Value     'Precio
      .Range("G" & lr).Value = C.Offset(0, 4).Value     'sub-total
      .Range("H" & lr).Value = Hoja7.Range("C9").Value  'nombre del cliente
      .Range("I" & lr).Value = Hoja7.Range("F9").Value  'cedula
      MsgBox "TU FACTURA HA SIDO GUARDADA", vbInformation, Titulo
    Next

1 respuesta

Respuesta
lr = .Range("A" & Rows.Count).End(3).Row + 1

Esa instrucción es para buscar la última fila con datos de la columna "A" en la hoja6.

Revisa en la hoja6 en la columna A, que no haya datos abajo del encabezado, o celdas con fórmulas o celdas con espacios en blanco. Tal vez a simple vista la celda aparece como vacía, pero puede tener espacios en blanco.

Borra esas celdas o elimina la fila y vuelve a probar tu macro.

Hola gracias por tu respuesta, pero quisiera comentarte algo:

Tengo una tabla "Ventas" donde ingreso la salida de los productos en la cual no existe formulas o datos debajo del encabezado de la columna (A) de la hoja6,  sin embargo borre e intente nuevamente la macro y sucede algo muy particular que cuando cambio mi tabla a rango normal y ensayo la macro, si me ingresa debajo del encabezado.  "o sea que me detecta la fila que sigue debajo del encabezado de mi tabla como si hubiera algún dato que no existe"  ¿Técnicamente que podría estar sucediendo?

Técnicamente sucede lo siguiente.

Si es un rango de datos. Excel se detiene de abajo hacia arriba en la primer celda que encuentra con datos.

Si es una tabla, excel se detiene en la última fila de la tabla, sin importar si está vacía o con datos.

Si quieres encontrar la última fila con datos, sin importar si es rango o tabla, prueba lo siguiente:

  Dim C As Range
  Dim lr As Long
  With Hoja6
    For Each C In Hoja7.Range("B14:B28").SpecialCells(xlCellTypeConstants)
      lr = .Range("A:A").Find("*", , xlValues, , xlByRows, xlPrevious).Row + 1
      .Range("A" & lr).Value = Hoja7.Range("F6").Value  'fecha
      .Range("B" & lr).Value = Hoja7.Range("F4").Value  'numero de factura
      .Range("C" & lr).Value = C.Offset(0, 1).Value     'descripcion del producto
      .Range("D" & lr).Value = C.Value                  'codigo
      .Range("E" & lr).Value = C.Offset(0, 2).Value     'cantidad
      .Range("F" & lr).Value = C.Offset(0, 3).Value     'Precio
      .Range("G" & lr).Value = C.Offset(0, 4).Value     'sub-total
      .Range("H" & lr).Value = Hoja7.Range("C9").Value  'nombre del cliente
      .Range("I" & lr).Value = Hoja7.Range("F9").Value  'cedula
      'MsgBox "TU FACTURA HA SIDO GUARDADA", vbInformation, Titulo
    Next
  End With

[No olvides valorar las respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas