[VBA excel] comment atteindre la valeur différente suivante ? [Résolu]

Messages postés
36
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 juin 2009
- - Dernière réponse : outofbusiness
Messages postés
36
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 juin 2009
- 16 avril 2007 à 12:02
bonjour,

j'ai une colonne qui se présente de cette façon : 1;1;1;1;2;2;2;2;2;2;3;3 etc... je voudrais parcourir cette colonne de haut en bas, mais après avoir "vu" une valeur, (par exemple 1) sauter à la prochaine valeur différente, soit passer à la ligne 5, ou on a le premier 2; puis pareil pour 3, etc...
j'ai pas d'idée comment faire....
pourriez vous m'aider svp ??
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
44
3
Merci
Salut,

Essaie ce petit bout de code qui colore les cellules en rouge
il colore le premier 1 le premier 2 etc.... (pour la colonne A)
A toi de l'adapter pour en faire ce que tu souhaites
Dim NumLigne As Long
Dim ValeurCourante As Integer
Dim Ancienne As Integer
NumLigne = 1
Call Range("A" & NumLigne).Activate
'Boucle jusqu'à ce qu'une cellule soit vide
While Not IsEmpty(ActiveCell)
   'récupère la valeur de la cellule
   ValeurCourante = ActiveCell.Value
   'Si les valeur sont différentes
   If Ancienne <> ValeurCourante Then
       'on colre l'intérieur en rouge
       ActiveCell.Interior.Color = vbRed
       'on mémorise la valeur
       Ancienne = ValeurCourante
   End If
   'on passe à la cellule suivante
   NumLigne = NumLigne + 1
   Call Range("A" & NumLigne).Activate
Wend, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 136 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jrivet
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
1
0
Merci
Bonjour, je ne sais pas s'il existe une instruction te permettant de faire cela directement, mais il te suffirait de parcourir ta colonne tant que la valeur n'est pas différente et que tu n'aies pas atteint la fin de la colonne.

Donc la seul chose que tu dois savoir pour cela est comment identifier la derniere ligne car je pense que tu dois savoir passer a la ligne suivante.
Commenter la réponse de cs_Nicko11
Messages postés
133
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
3 janvier 2015
3
0
Merci
essaye avec ceci aussi peut etre une autre idée

Sub teste()
Dim chaine, e
'donne la premiere position dans la chaine
y = 1
'dans chaine tu mets tes valeurs possible ici de 1 a 9
chaine = "123456789"
'creation boucle pour tester de 1 a 50 cellules
For x = 1 To 50 Step 1
'e donne la valeur que tu recherche
e = Mid(chaine, y, 1)
'teste la valeur de la cellule et la colorie en jauneIf Cells(x, 1) CInt(e) Then y y + 1: Cells(x, 1).Select: Selection.Interior.ColorIndex = 6
Next x 
End Sub
Commenter la réponse de cs_akzo
Messages postés
36
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
4 juin 2009
0
Merci
yes !!!
merci jrivet, ca s'intègre parfaitement dans le code que j'avais déjà :D
en attendant, j'avais déjà écrit un truc qui marchait mais moyen car il s'intégrait pas du tout au code :

while cells(i,3)<>cells(i-1,8)
i=i+1
Wend

je sais c'est pas terrible, mais je suis pas une star en programmation, je m'améliore toutefois petit à petit, notamment grace à vos contributions sur ce forum :-)
Commenter la réponse de outofbusiness