cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014
-
6 nov. 2008 à 00:03
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014
-
7 nov. 2008 à 09:55
Bonsoir tout le monde!
voila mon soucis!
je suis pas un pro du VBA, et j'ai un petit script a faire!
En fait j'ai un fichier excel avec différentes lignes et differentes colonnes!
J'ai des colonnes oranges avec des titres, et dessous des cellules de différentes couleurs avec des dates dans certaines colonnes!
Quand je vais cliquer sur une cellule ( ligne) orange je dois parcourir les lignes en dessous pour comparer des dates dans une certaine colonne, et quand ma date est inférieure a la date du jour alors je dois cacher les lignes correspondantes.
Mais si je clique sur une cellule d'une autre couleur que orange ca doit rien faire.
Je vois bien comment me rendre compte que la cellule est orange : target.interior.colorindex = ...
Mais par contre je ne vois pas comment passer a la ligne du dessous pour commencer ma boucle!
Dans ma boucle ensuite je dois fair eun test pour voir ma couleur de cellule, si elle n'est pas orange alors je compare les dates.....mais si elle est orange alors je dois arreter ma boucle!!
Vous voyez le probleme, pouvez vous m'aider svp!
Surtout a passer a une cellule en dessous...
Car je n'arrive pas a affecter une valeur a ma target.row = target.row + 1 (ca ne marche pas!!)
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 6 nov. 2008 à 10:22
Encore une question, quand tu fais Set r = r.Offset(1,0) ça signifie que je suis obligatoirement sur la 1ere case ou ca marche pour n'importe quelle case ou je suis, pour en descendre d'une?
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 6 nov. 2008 à 10:29
C'est encore moi et j'ai vraiment besoin d'aide svp!
par rapport a mon probleme expliqué ci dessus voila mon code:
Dim r As Range
Dim i As Long
Dim j As Long
i = 0
j = 1
Set r = Target
'si ma couleur est pas orange alors
If (Target.Interior.Color = 26367) Then
'ici je descends d'une case pour passer a la premiere case non orange
Set r = r.Offset(1, 0)
Do
'j'incremente mes compteurs
i = i + 1
j = j + 1
'ici j'essaie de descendred d'une case a chaque fois
Set r = r.Offset(j, 0)
'je boucle tant que ma couleur est pas orange
Loop Until Target.Interior.Color = 26367
'a la fin j'essaie d'afficher le nombre de cases que j'ai trouvé sur mon passage et qui ne sont pas orange
MsgBox (j)
Else
MsgBox ("pas orange donc pas click")
End If
Niko14
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 6 nov. 2008 à 18:30
Bonjour niko14
Désolé pour le retard à te répondre, j'ai 12 h de décalage horaire, ce qui fait que quand tu débogues, je dors, et réciproquement.
Ton code est presque bon. Seulement, dans ta boucle, il faut remplacer Set r = r.Offset(j, 0) par Set r = r.Offset(1,0). Car je pense que tu veux descendre d' 1 ligne, et non de j lignes.
Cordialement
Citations célèbres :
Impossible n’est pas français<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>