outofbusiness
Messages postés36Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention 4 juin 2009
-
16 avril 2007 à 10:12
outofbusiness
Messages postés36Date d'inscriptiondimanche 2 février 2003StatutMembreDerniè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 ??
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 avril 2007 à 10:46
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]
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 16 avril 2007 à 10:21
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.
cs_akzo
Messages postés133Date d'inscriptiondimanche 23 juin 2002StatutMembreDernière intervention 3 janvier 20153 16 avril 2007 à 10:59
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
outofbusiness
Messages postés36Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention 4 juin 2009 16 avril 2007 à 12:02
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 :-)