Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Compter tant que

  • Initiateur de la discussion Initiateur de la discussion titibobo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

titibobo

Guest
Bonsoir

Avec 2 colonnes :
La première A dans laquelle je souhaite compter vers la bas mais tant que la valeur dans la deuxième colonne (B) est identique le compteur garde la même valeur :



Je pense utiliser une boucle while/wend ou For/next avec i = 1 To [A1].End(xlDown).Row (que je viens d'apprendre ici 😉 )

Mais comment coder le fait que tant que la valeur de la cellule d'en dessus est la même ne pas compter ?

Merci de votre aide.
 
Re : Compter tant que

Bonsoir titibobo, bonsoir le forum,

En utilisant un dictionnaire :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dico As Object 'déclare la variable dico (DICtiOnnaire)
Dim c As Integer 'déclare la variable c (Compteur)

Set dico = CreateObject("Scripting.Dictionary") 'définit la dictionnaire dico
Set pl = Sheets("Feuil1").Columns(1).SpecialCells(xlCellTypeConstants) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    dico(cel.Value) = "" 'alimente le dictionnaire dico
Next cel 'prochaine cellule de la boucle
c = dico.Count 'définit le compteur c (nombre de valeurs sans doublons)
MsgBox c 'affiche le compteur c
End Sub
 
Re : Compter tant que

Bonjour, titibobo, Robert 🙂, le Forum,

Sans dictionnaire, que je ne maîtrise pas 🙁 :

Code:
Sub Compter_tant_que()
Range("b:b").Sort Range("b1"), xlAscending, Header:=xlNo
Range("A1") = "1"
Range("a2:a" & Range("b65536").End(xlUp).Row).FormulaR1C1 = "=IF(RC[1]=R[-1]C[1],R[-1]C,R[-1]C+1)"
Range("a2:a" & Range("b65536").End(xlUp).Row).Value = Range("a2:a" & Range("b65536").End(xlUp).Row).Value
End Sub

A bientôt 🙂

P. S. : Bonjour, Bruno 🙂
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
563
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…