[VBA] Numérotation automatique de certaines lignes

Bonjour à tous,

Étant novice en VBA, j'ai encore beaucoup de mal à coder et je viens trouver sur ce forum une âme charitable qui puisse m'aider

Je souhaiterai créer une macro qui numérote automatiquement des lignes. Jusque là, rien de bien vraiment compliqué allez vous me dire... En réalité, il s'agit là de ne numéroter uniquement que certaines lignes (uniquement les cases en fond jaune dans la pièce jointe). La macro que j'essaie de coder devrait pouvoir faire ceci :

1) Numéroter la colonne A depuis la 6ème ligne en commençant par "1",

2) Ma boucle : Continuer ma numérotation à la ligne suivante

tant que : la colonne A de la ligne est vide ET la colonne B de la ligne est non vide, OU la colonne A est de type Integer (ancienne numérotation)

Ne pas numéroter une ligne vide avec les colonnes A et B vides ET qui est suivie par une ligne dont la colonne A est non vide OU B est non vide

Arrêter la boucle quand deux lignes vides se suivent.

Bon je suppose qu'il existe une multitude de manières de numéroter les cases jaunes et que c'est peut-être plus simple qu'il n'y paraît...

En espérant avoir été clair dans ma demande et en vous remerciant d'avance pour vos réponses !

Cordialement,

OA.

302exemple.xlsx (45.32 Ko)
Sub toto()
    Dim i As Long, k As Long
    With Sheets("Avant")
        k = 1
        For i = 6 To .Range("B" & .Rows.Count).End(xlUp).Row
            If .Range("A" & i).Interior.Color = RGB(255, 255, 0) Then
                .Range("A" & i) = k
                k = k + 1
            End If
        Next i
    End With
End Sub

@EngueEngue merci pour ta réponse rapide.

Je me suis permis de réutiliser ton code pour numéroter les lignes autre qu'en testant la couleur de la cellule :

    Sub toto2()
        Dim i As Long, k As Long
        With Sheets("Avant")
            k = 1
            For i = 6 To .Range("B" & .Rows.Count).End(xlUp).Row
                    If IsNumeric(.Range("A" & i)) And .Range("B" & i) <> "" Then
                    .Range("A" & i) = k
                    k = k + 1
                End If
            Next i
        End With
    End Sub 

Du coup ça numérote les cellules qui sont au format numérique et non vides.

Merci encore,

OA.

Rechercher des sujets similaires à "vba numerotation automatique certaines lignes"