Incrementation si cellule nonvide

Bonjour,

je bute sur une macro d'aspect assez simple.

Je souhaite incrémenter de 1 une cellule dès qu'une autre cellule se remplie d'une valeur.

Pour ça j'ai écrit ce bout de code :

Sub incrementation()

Dim compteur As Integer
compteur = 0

For i = 4 To 1000
    If Cells(3, i) <> "" Then
    Cells(1, i + 1) = compteur + 1
    End If

Next

End Sub

Tout ce que cette macro fait est d'ajouter un "1" dans la cellule I1. Ce n'est pas ce que je veux faire.

Pouvez-vous m'aider svp ?

Merci

Olivier

Bonjour,

Ne sachant pas dans quelle cellule tu veux ajouter le compteur pas facile à régler

Avec cette correction, l'incrémentation se fait en ligne 1 dés que des cellules en ligne 3 se remplit

 Sub incrementation()

    Dim compteur As Integer
    compteur = 0
        For i = 4 To 1000
            If Cells(3, i) <> "" Then
                compteur = compteur + 1
                Cells(1, i + 1) = compteur
            End If
        Next i
    End Sub

Bonjour,

A tester !

For i = 4 To 1000
    If Cells(3, i) <> "" Then
    compteur = compteur+1    
    Cells(1, i + 1) = compteur
End If

EDIT : Oups M12 ! Bonjour... je n'avais pas vu votre intervention !

Merci pour vos réponses.

Vos solutions remplissent toujours la cellule I1 mais affiche la valeur 5 cette fois...

Je comprend pas trop.

Le compteur débute à 0 à cellule A4. Il s'incrémente de 1 en A5 puis en A6 puis A7 dès que C4 puis C5 puis C6 ne sont plus vides et ainsi de suite...

Merci

Re,

D'où ma réflexion

Ton code fonctionnait par incrémentation en ligne

Sub incrementation()

    Dim compteur As Integer
    compteur = 0
        For i = 4 To 1000
            If Cells(i, 3) <> "" Then
                compteur = compteur + 1
                Cells(i + 1, 1) = compteur
            End If
        Next i
    End Sub

Cool, on avance! La bonne cellule se remplit cette fois.

Par contre comment automatiser la macro sans avoir à la relancer à chaque fois pour incrémenter la cellule d'après ?

A mettre dans la feuille concernée (pas dans un module)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim compteur As Integer
  compteur = 0
    For i = 4 To 1000
    If Cells(i, 3) <> "" Then
      compteur = compteur + 1
      Cells(i + 1, 1) = compteur
    End If
    Next i
End Sub

Super, je te remercie grandement!

Je n'étais pas si loin

A+

Olivier

Rechercher des sujets similaires à "incrementation nonvide"