Parcourir fichier Excel

cs_niko14 Messages postés 209 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 10 octobre 2014 - 6 nov. 2008 à 00:03
cs_niko14 Messages postés 209 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 10 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!!)

Merci bcp de votre aide

Niko14

6 réponses

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
6 nov. 2008 à 03:25
Bonjour niko14

Pour te décaler, utilise plutôt la propriété Offset. Ta boucle devrait plus ou moins ressembler à ça :



    Dim r As Range
    Set r = Target
    Do
        Set r = r.Offset(1, 0)
    Loop Until ...


Cordialement
0
cs_niko14 Messages postés 209 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 10 octobre 2014
6 nov. 2008 à 09:49
Quelle rapidité!!
Eh ben Orohena, je vais essayer ca de suite et je te tiens au courant!

Niko14
0
cs_niko14 Messages postés 209 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 10 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?

Niko14
0
cs_niko14 Messages postés 209 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 10 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
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" /??>

,
Napoléon, 1808

,

----

Impossible n’est pas vbfrançais

,
Orohena, 2008
0
cs_niko14 Messages postés 209 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 10 octobre 2014
7 nov. 2008 à 09:55
merci pour ta réponse je vais tester ca!

Niko14
0
Rejoignez-nous