Rellenar celdas vacías en una fila con el valor de la celda superior + A, B, C, etc.

Tengo en la columna a números de ordenes de compra.

Algunas ordenes de compra ocupan más de un producto o sea más de un renglón.

Necesito una Macro para colocar en la primer celda vacía el número de orden anterior con una A

Actual

Columna A

001

002

Vacía

Vacía

Lo que deseo

Columna A

001

002

002A

002B

Me pueden ayudar.

1 respuesta

Respuesta
2

Si la col A tiene celdas vacías asumiré que se puede tomar el fin de rango desde la col B.

Coloca la siguiente macro en un módulo del Editor. Seguramente ya sabes cómo ejecutarlas, sino podés leer sobre el tema en la sección Macros de mi sitio.

Sub completaOrd()
'x Elsamatilde
Dim nro As Integer
Dim letras()
letras = Array("A", "B", "C", "D")  'completar con las letras que creas que necesitarás
'fin de rango = ultima fila col B
X = Range("B" & Rows.Count).End(xlUp).Row
'se inicia en fila 2  .... ajustar
y = 2
'recorre col A
While y <= X
If Range("A" & y) = "" Then
    If nro = 0 Then nro = Range("A" & y - 1)
    letra = letras(Z): Z = Z + 1
    Range("A" & y) = Format(nro, "000") & letra
Else
    'limpia variables
    Z = 0: nro = 0
End If
y = y + 1
Wend
End Sub

No olvides completar la matriz de letras hasta donde creas que las necesitarás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas