VB condition couleur recherche v
Résolu/Fermé
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
-
23 juil. 2009 à 16:54
bthenault Messages postés 55 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 8 juin 2011 - 24 juil. 2009 à 10:35
bthenault Messages postés 55 Date d'inscription mercredi 22 juillet 2009 Statut Membre Dernière intervention 8 juin 2011 - 24 juil. 2009 à 10:35
A voir également:
- VB condition couleur recherche v
- Excel cellule couleur si condition texte - Guide
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Somme si couleur - Guide
12 réponses
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
23 juil. 2009 à 16:54
23 juil. 2009 à 16:54
:)
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
24 juil. 2009 à 08:49
24 juil. 2009 à 08:49
Je pense que la fonction de recherche Verticale renvoi sûrement plus à la valeur de la cellule, alors que mois il s'agit du nom de la cellule qu'il me faut pour indiquer la couleur
Tableau 1 feuille 1
Colonne A Colonne B
023 MACRO à trouver pour mettre en vert
044
019
020
Tableau 2 feuille 2 (cellui ou je vais chercher la couleur - Tableau trié en ordre croissant)
Colonne A Colonne B
019
020
023 en fond VERT
029 en fond vert
Il faudrait que dans le colonne B du tableau 1 soit colorées les cellules correspondantes. Je ne vois rien d'autre qu'une recherche puisque seuls certains chiffres de la colonne A sont en commun, certains sont nouveaux et n'existe pas dans la feuille 2, d'autres n'y sont plus (existant dans la feuille2mais plus dans la 1).
Merci de votre aide
Tableau 1 feuille 1
Colonne A Colonne B
023 MACRO à trouver pour mettre en vert
044
019
020
Tableau 2 feuille 2 (cellui ou je vais chercher la couleur - Tableau trié en ordre croissant)
Colonne A Colonne B
019
020
023 en fond VERT
029 en fond vert
Il faudrait que dans le colonne B du tableau 1 soit colorées les cellules correspondantes. Je ne vois rien d'autre qu'une recherche puisque seuls certains chiffres de la colonne A sont en commun, certains sont nouveaux et n'existe pas dans la feuille 2, d'autres n'y sont plus (existant dans la feuille2mais plus dans la 1).
Merci de votre aide
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
24 juil. 2009 à 08:59
24 juil. 2009 à 08:59
inspire toi de ce code pour comparer ta feuille 1 & 2
http://www.commentcamarche.net/forum/affich 13501092 vba excel 2k comparaison?#8
Au final, si je resume, tu as des valeur en feuille 1 qui peuvent correspondre avec celle de feuille 2, si ca correspond, il faut mettre le fond de la cellule en feuille 1 de la meme couleur que sa correspondance qui est en feuille 2 , c'est ca ?
http://www.commentcamarche.net/forum/affich 13501092 vba excel 2k comparaison?#8
Au final, si je resume, tu as des valeur en feuille 1 qui peuvent correspondre avec celle de feuille 2, si ca correspond, il faut mettre le fond de la cellule en feuille 1 de la meme couleur que sa correspondance qui est en feuille 2 , c'est ca ?
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
24 juil. 2009 à 09:04
24 juil. 2009 à 09:04
OUI, mais les cellules colorés sont en colonne B, et pas dans la colonne A où il y a les valeurs correpsondantes, mais c ça !!!!!!!
Je vais regarder le lien que tu m'as donné
Je vais regarder le lien que tu m'as donné
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
24 juil. 2009 à 09:11
24 juil. 2009 à 09:11
là j'avoue après avoir lu le lien 3 fois, que j'ai du mal à traduire...
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
24 juil. 2009 à 09:26
24 juil. 2009 à 09:26
ok ok..
Dans mon ex ci dessous : Feuil1 A1=> A6 = 1 à 6 ; Feuil2 A1=2 coloré vert, A2=4 coloré bleu, A3=5 coloré jaune
B = 1
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Do While Cherche <> ""
With Worksheets("Feuil1").Range("a1:a500")
Set trouvé1 = .Find(Cherche, LookIn:=xlValues)
If Not trouvé1 Is Nothing Then
Worksheets("Feuil1").Cells(trouvé1.Row, 1).Interior.ColorIndex = Cherche.Interior.ColorIndex
End If
End With
B = B + 1
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Loop
=> Feuil1 A2 coloré vert ; A4 coloré bleu ; 15 coloré jaune
Dis moi quel partie du code tu comprend pas....
Dans mon ex ci dessous : Feuil1 A1=> A6 = 1 à 6 ; Feuil2 A1=2 coloré vert, A2=4 coloré bleu, A3=5 coloré jaune
B = 1
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Do While Cherche <> ""
With Worksheets("Feuil1").Range("a1:a500")
Set trouvé1 = .Find(Cherche, LookIn:=xlValues)
If Not trouvé1 Is Nothing Then
Worksheets("Feuil1").Cells(trouvé1.Row, 1).Interior.ColorIndex = Cherche.Interior.ColorIndex
End If
End With
B = B + 1
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Loop
=> Feuil1 A2 coloré vert ; A4 coloré bleu ; 15 coloré jaune
Dis moi quel partie du code tu comprend pas....
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
24 juil. 2009 à 09:41
24 juil. 2009 à 09:41
C'est super ce truc, j'avoue m'être assez bien débrouillée jusque là en ce qui concerne les formules ou calculs ou manip de fichiers, mais pour ce qui est mise en page, je suis nulle! j'ai pas encore pigé la logique. En ce qui concerne ton code (merveilleux que je viens de tester).
J'ai modifié Workssts(1).Celles(trouvé1.row,2).Interior.......
J'ai mis 2 pour que ça me colore la colonne 2, car la cellule à colorer est dans la deuxième colonne. Donc ça c'est bon.
J'suis épatée c'est génial !!!!!!
Par contre La couleur à retrouver est dans la colonne 2 de la feuille. C'est à dire, dans la feuille 2 j'ai A1 = 2 & B1 est coloré en vert A2=4 et B2 est coloré en bleu, A3 = 5 et B5 est coloré en jaune.
Je n'arrive pasà voir où je peux faire la modif. (merci d'avance)
J'ai modifié Workssts(1).Celles(trouvé1.row,2).Interior.......
J'ai mis 2 pour que ça me colore la colonne 2, car la cellule à colorer est dans la deuxième colonne. Donc ça c'est bon.
J'suis épatée c'est génial !!!!!!
Par contre La couleur à retrouver est dans la colonne 2 de la feuille. C'est à dire, dans la feuille 2 j'ai A1 = 2 & B1 est coloré en vert A2=4 et B2 est coloré en bleu, A3 = 5 et B5 est coloré en jaune.
Je n'arrive pasà voir où je peux faire la modif. (merci d'avance)
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
24 juil. 2009 à 09:46
24 juil. 2009 à 09:46
B = 1
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Set CellCouleur=Worksheets("Feuil2").Cells(B, 2)
Do While Cherche <> ""
With Worksheets("Feuil1").Range("a1:a500")
Set trouvé1 = .Find(Cherche, LookIn:=xlValues)
If Not trouvé1 Is Nothing Then
Worksheets("Feuil1").Cells(trouvé1.Row, 1).Interior.ColorIndex = CellCouleur.Interior.ColorIndex
End If
End With
B = B + 1
Set CellCouleur=Worksheets("Feuil2").Cells(B, 2)
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Loop
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Set CellCouleur=Worksheets("Feuil2").Cells(B, 2)
Do While Cherche <> ""
With Worksheets("Feuil1").Range("a1:a500")
Set trouvé1 = .Find(Cherche, LookIn:=xlValues)
If Not trouvé1 Is Nothing Then
Worksheets("Feuil1").Cells(trouvé1.Row, 1).Interior.ColorIndex = CellCouleur.Interior.ColorIndex
End If
End With
B = B + 1
Set CellCouleur=Worksheets("Feuil2").Cells(B, 2)
Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Loop
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
24 juil. 2009 à 09:52
24 juil. 2009 à 09:52
tu dis : j'ai pas encore pigé la logique....
Sais tus que si tu te positionne dans vb au debut de la procedure...( click sur la ligne b=1 par ex) et que tu appui sur la touche F8.. tu lance la procedure en mode pas a pas.. appui encore sur F8 pour passer à l instruction suivante...ect... si tu pointe la sourie sur une de tes variables, il te donnera en menu contextuel sa valeur..
Sinon, ben demande, je t expliquerais en détail la ou les lignes que tu pige pas ;).. (cf mon dicton :p )
Sais tus que si tu te positionne dans vb au debut de la procedure...( click sur la ligne b=1 par ex) et que tu appui sur la touche F8.. tu lance la procedure en mode pas a pas.. appui encore sur F8 pour passer à l instruction suivante...ect... si tu pointe la sourie sur une de tes variables, il te donnera en menu contextuel sa valeur..
Sinon, ben demande, je t expliquerais en détail la ou les lignes que tu pige pas ;).. (cf mon dicton :p )
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
24 juil. 2009 à 09:57
24 juil. 2009 à 09:57
Oui, du coup j'avais trouvé mais j'avais oublié de mettre à la fin. MERCI BEAUCOUP. j'ai un autre exercice du même genre à faire, je vais m'en inspirer.
J'essaie de comprendre .
Set (je ne connaissais pas) = te permet de donner un nom et ainsi pas à avoir à recopier
.Find (chercher, LookIn:=xlValues) = permet de rechercher les valeurs de la cellule nommée par "chercher"
Que veut dire le Row de trouve1.row ?
Est-ce que B=B+1 veut dire qu'après on passe à la ligne suivante?
Pourkoi à la fin remettre les info des Set ?
Loop veut dire koi? la fin de la boucle?
Merciiiii
J'essaie de comprendre .
Set (je ne connaissais pas) = te permet de donner un nom et ainsi pas à avoir à recopier
.Find (chercher, LookIn:=xlValues) = permet de rechercher les valeurs de la cellule nommée par "chercher"
Que veut dire le Row de trouve1.row ?
Est-ce que B=B+1 veut dire qu'après on passe à la ligne suivante?
Pourkoi à la fin remettre les info des Set ?
Loop veut dire koi? la fin de la boucle?
Merciiiii
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
24 juil. 2009 à 10:12
24 juil. 2009 à 10:12
Set (je ne connaissais pas) = te permet de donner un nom et ainsi pas à avoir à recopier
non, set sert à attriubuer un objet à ta variable et non une valeur...
en l occurence :
Set Cherche = Worksheets("Feuil2").Cells(B, 1) attribut l objet 'cellule(b,1) de la feuille "Feuil2"
alors que si tu n avait pas mis le set Cherche vaut la valeur de Feuil2!cells(b,1)
Pour ne pas avoir à recopier le nom.. c'est with XXX c'est ainsi qu'apres j'ais .find.. qui sous entend XXX.Find Le '.' revoit sur l'objet sélectionné avec "with"
.Find (Cherche, LookIn:=xlValues) = permet de rechercher les valeurs de la cellule nommée par "chercher"
pas exactement, permet de rechercher la valeur ( grace à xlValues, ce qui veut dire que meme si c'est une formule dans la case, il prendra le résultat de cette formule) de Cherche (et non Chercher comme tu l a ecrit)
... Cherche vaut : Worksheets("Feuil2").Cells(B, 1) cf ligne 2 : Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Que veut dire le Row de trouve1.row ?
Row = ligne => trouvé1.rom te donne en quel ligne ce situ trouvé1 donc la valeur recherchée
Est-ce que B=B+1 veut dire qu'après on passe à la ligne suivante?
exactement mais c'est pas b qui passe à la ligne suivante, c'est le fait que j'utilise cette variable dans Cells(B, 1)
Pourkoi à la fin remettre les info des Set ?
Pour mettre à jour sur quelle ligne il doit faire la prochaine recherche
Loop veut dire koi? la fin de la boucle?
oui.. enfin, plus exactement 'revient au debut de la boucle'.. donc il repart sur Do While Cherche <> "" et donc test Cherche si <> "" d'où l utilité de mettre à jour le Set pour mettre dans Cherche l'objet de la prochaine recherche.
Voila, j espere que j'ai été assez claire, ben sinon.. continu à demander ;)
non, set sert à attriubuer un objet à ta variable et non une valeur...
en l occurence :
Set Cherche = Worksheets("Feuil2").Cells(B, 1) attribut l objet 'cellule(b,1) de la feuille "Feuil2"
alors que si tu n avait pas mis le set Cherche vaut la valeur de Feuil2!cells(b,1)
Pour ne pas avoir à recopier le nom.. c'est with XXX c'est ainsi qu'apres j'ais .find.. qui sous entend XXX.Find Le '.' revoit sur l'objet sélectionné avec "with"
.Find (Cherche, LookIn:=xlValues) = permet de rechercher les valeurs de la cellule nommée par "chercher"
pas exactement, permet de rechercher la valeur ( grace à xlValues, ce qui veut dire que meme si c'est une formule dans la case, il prendra le résultat de cette formule) de Cherche (et non Chercher comme tu l a ecrit)
... Cherche vaut : Worksheets("Feuil2").Cells(B, 1) cf ligne 2 : Set Cherche = Worksheets("Feuil2").Cells(B, 1)
Que veut dire le Row de trouve1.row ?
Row = ligne => trouvé1.rom te donne en quel ligne ce situ trouvé1 donc la valeur recherchée
Est-ce que B=B+1 veut dire qu'après on passe à la ligne suivante?
exactement mais c'est pas b qui passe à la ligne suivante, c'est le fait que j'utilise cette variable dans Cells(B, 1)
Pourkoi à la fin remettre les info des Set ?
Pour mettre à jour sur quelle ligne il doit faire la prochaine recherche
Loop veut dire koi? la fin de la boucle?
oui.. enfin, plus exactement 'revient au debut de la boucle'.. donc il repart sur Do While Cherche <> "" et donc test Cherche si <> "" d'où l utilité de mettre à jour le Set pour mettre dans Cherche l'objet de la prochaine recherche.
Voila, j espere que j'ai été assez claire, ben sinon.. continu à demander ;)
bthenault
Messages postés
55
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
8 juin 2011
1
24 juil. 2009 à 10:35
24 juil. 2009 à 10:35
c'est parfait, merci beuacoup !