Problema al recorrer filas ciclo while

Tengo inconveniente en este código ya que al recorrer las filas no me da los datos que ingreso en la columna A

Al ejecutar, solo me da la fecha y lote de la celda A2 y las demás las esta repitiendo más no les extrae fecha y lote..

mi codigo es el siguiente

Sub fecha_lote()

Dim fecha As String
Dim lote As String
Dim fechado As String
Dim anio, mes, dia As String
Dim unifecha As Date

fila = 2

fecha = Mid(Range("A2"), 5, 6)

lote = Mid(Range("A2"), 13, 5)

dia = Mid(fecha, 5, 2)
mes = Mid(fecha, 3, 2)
anio = Mid(fecha, 1, 2)
unifecha = dia & "/" & mes & "/" & anio

Do While Cells(fila, 1) <> ""
Cells(fila, 2).Value = unifecha
Cells(fila, 3).Value = lote

fila = fila + 1

Loop

End Sub

1 Respuesta

Respuesta
2

Prueba así:

Sub fecha_lote()
  Dim fecha As String, lote As String
  Dim anio As String, mes As String, dia As String
  Dim unifecha As Date
  Dim fila As Long
  fila = 2
  Do While Cells(fila, 1) <> ""
    fecha = Mid(Range("A" & fila), 5, 6)
    lote = Mid(Range("A" & fila), 13, 5)
    dia = Mid(fecha, 5, 2)
    mes = Mid(fecha, 3, 2)
    anio = Mid(fecha, 1, 2)
    unifecha = dia & "/" & mes & "/" & anio
    Cells(fila, 2).Value = unifecha
    Cells(fila, 3).Value = lote
    fila = fila + 1
  Loop
End Sub

Ya que sabes cómo obtener los datos, no es necesario utilizar demasiadas variables, prueba así:

Sub fecha_lote_3()
  Dim c As Range
  '
  For Each c In Range("A2", Range("A" & Rows.Count).End(3))
    Range("B" & c.Row).Value = DateSerial(Mid(c.Value, 5, 2), Mid(c.Value, 7, 2), Mid(c.Value, 9, 2))
    Range("C" & c.Row).Value = Mid(c.Value, 13, 5)
  Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas