Macro excel añadir campo autonumérico con condición

He creado en una macro un campo al que he llamado ORDEN (columna B) donde me numera las filas de 1,2,3,4...

Has ahí todo bien, pero en la columna A, tengo dos tipos de datos: "PRODUCTO" Y "SERVICIO", intento que me enumere 1,2,3,4 si es producto y si es servicio igual 1,2,3,4 (que me lo diferencie). Lo intenté creando un filtro pero no funciona, lo intenté con la condición IF y tampoco. Os dejo lo que llevo por si me podéis dar alguna idea o decirme si no me sale porque no se puede hacer de esta manera, gracias!

nFilas = Cells (Rows.Count, 2).End(xlUp).Row

nfila = 1

For i = 2 to nFilas

Cells(i, "B") = nfila

nfila = nfila + 1

Next

No pongo el ejemplo del filtro a la columna A o el IF con la columna A porque no me ha dado resultado.

1 respuesta

Respuesta
2

Prueba la siguiente opción:

Sub Numerar()
  Dim i As Long, j As Long, k As Long
  For i = 2 To Range("A" & Rows.Count).End(3).Row
    If Range("A" & i) = "PRODUCTO" Then
      j = j + 1
      Range("B" & i).Value = j
    ElseIf Range("A" & i) = "SERVICIO" Then
      k = k + 1
      Range("B" & i).Value = j
    End If
  Next
End Sub

Esta opción es sin ciclo For:

Sub Numerar()
  With Range("B2:B" & Range("A" & Rows.Count).End(3).Row)
    .Formula = "=COUNTIF($A$2:A2,A2)"
    .Value = .Value
  End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas