Macro sous excel
koffy13
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
koffy13 Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
koffy13 Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je n'ai aucune connaissances en VBA, c'est pour cela que je demande de l'aide. Je me suis renseigné sur des sites web mais je rame.
Le but si vous arrivé à m'aider c'est que je comprenne les réponses que vous me donnerez, de manière à ce que je progresse, mais pour un début j'ai besoin de vous.
Voilà mon problème:
Sur une feuille d'un classeur excel j'ai des données dans les colonnes A,B et C. Je voudrais colorier en rouge les cellules similaires d'un trio ABC . Par exemple si le trio A1 B1 C1 est identique au trio A2 B2 C2 sont identiques (cela veut dire A1=A2 et B1=B2 et C1=C2) alors je voudrais colorier en rouge les cases A1, B1, C1, A2, B2, C2.
Sachant que la colonne A et C comprennent des lettres et B des chiffres.
le seul truc que je suis arrivé à faire c'est ça:
If Range("A1").Value = Range("A2").Value Then
Range("A2").Interior.ColorIndex = 3
End If
en plus j'ai un message d'erreur, et je ne met pas de fonctions ET, j'ai juste essayer de faire un truc basique.
Merci
je n'ai aucune connaissances en VBA, c'est pour cela que je demande de l'aide. Je me suis renseigné sur des sites web mais je rame.
Le but si vous arrivé à m'aider c'est que je comprenne les réponses que vous me donnerez, de manière à ce que je progresse, mais pour un début j'ai besoin de vous.
Voilà mon problème:
Sur une feuille d'un classeur excel j'ai des données dans les colonnes A,B et C. Je voudrais colorier en rouge les cellules similaires d'un trio ABC . Par exemple si le trio A1 B1 C1 est identique au trio A2 B2 C2 sont identiques (cela veut dire A1=A2 et B1=B2 et C1=C2) alors je voudrais colorier en rouge les cases A1, B1, C1, A2, B2, C2.
Sachant que la colonne A et C comprennent des lettres et B des chiffres.
le seul truc que je suis arrivé à faire c'est ça:
If Range("A1").Value = Range("A2").Value Then
Range("A2").Interior.ColorIndex = 3
End If
en plus j'ai un message d'erreur, et je ne met pas de fonctions ET, j'ai juste essayer de faire un truc basique.
Merci
A voir également:
- Macro sous excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
Bonjour
Ton code n'a pas d'erreur, il fonctionne parfaitement, je viens d'essayer
Si tu veux cumuler les 3 conditions il faut faire ainsi :
Sub colorer
If Range("A1").Value = Range("A2").Value and Range("A2").Value = Range("B2").Value and Range("C1").Value = Range("C2").Value Then
Range("A2").Interior.ColorIndex = 3
Range("B2").Interior.ColorIndex = 3
Range("C2").Interior.ColorIndex = 3
End If
End sub
Mais tu pourrais aussi bien le faire par simple mise en forme conditionnelle sans passer par une macro
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Ton code n'a pas d'erreur, il fonctionne parfaitement, je viens d'essayer
Si tu veux cumuler les 3 conditions il faut faire ainsi :
Sub colorer
If Range("A1").Value = Range("A2").Value and Range("A2").Value = Range("B2").Value and Range("C1").Value = Range("C2").Value Then
Range("A2").Interior.ColorIndex = 3
Range("B2").Interior.ColorIndex = 3
Range("C2").Interior.ColorIndex = 3
End If
End sub
Mais tu pourrais aussi bien le faire par simple mise en forme conditionnelle sans passer par une macro
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
merci pour la réponse.
cependant pour 2 lignes ça va mais je voudrais comparer plusieurs lignes et je ne veut pas écrire toutes les conditions c'est trop long. Genre comment faire si j'ai 500 lignes ?
J'ai oublié mais j'ai aussi D1 D2 à rajouter, je devrais y arriver mais il faudra que j'écrire les 8 cases à colorier après la condition Then ? ou il existe un raccourci ?
pour la mise en forme conditionnelle je vais regarder mais je connaissais pas
merci
cependant pour 2 lignes ça va mais je voudrais comparer plusieurs lignes et je ne veut pas écrire toutes les conditions c'est trop long. Genre comment faire si j'ai 500 lignes ?
J'ai oublié mais j'ai aussi D1 D2 à rajouter, je devrais y arriver mais il faudra que j'écrire les 8 cases à colorier après la condition Then ? ou il existe un raccourci ?
pour la mise en forme conditionnelle je vais regarder mais je connaissais pas
merci
Si tu veux comparer les cellules identiques sur 500 lignes il faut faire une boucle mais au départ il faut savoir ce que tu compares :
Est ce que c'est chaque ligne et celle du dessous ? ou chaque ligne avec toutes les autres ?
s'i l y a par exemple 1, 2 , 3 et 4 en ligne 1 et en ligne 5 puis 3,4,5 et 6 en ligne 3 et en ligne 10 est ce que toutes doivent être colorées en rouge ?
Dans l'attente des précisions
Est ce que c'est chaque ligne et celle du dessous ? ou chaque ligne avec toutes les autres ?
s'i l y a par exemple 1, 2 , 3 et 4 en ligne 1 et en ligne 5 puis 3,4,5 et 6 en ligne 3 et en ligne 10 est ce que toutes doivent être colorées en rouge ?
Dans l'attente des précisions
OK
donc une boucle du genre
For n=1 to 499
For t= n+1 to 500
If Range("A"& n).Value = Range("A"&t).Value and Range("B"& n).Value = Range("B"& t).Value and
Range("C"& n).Value = Range("C"&t).Value and Range("D"& n).Value = Range("D"& t).Value then
Range("A"& t).Interior.ColorIndex = 3
Range("B" & t).Interior.ColorIndex = 3
Range("C" & t).Interior.ColorIndex = 3
Range("D" & t).Interior.ColorIndex = 3
End If
Next t
Next n
donc une boucle du genre
For n=1 to 499
For t= n+1 to 500
If Range("A"& n).Value = Range("A"&t).Value and Range("B"& n).Value = Range("B"& t).Value and
Range("C"& n).Value = Range("C"&t).Value and Range("D"& n).Value = Range("D"& t).Value then
Range("A"& t).Interior.ColorIndex = 3
Range("B" & t).Interior.ColorIndex = 3
Range("C" & t).Interior.ColorIndex = 3
Range("D" & t).Interior.ColorIndex = 3
End If
Next t
Next n
ok merci je vais regarder ça et essayer de comprendre ^^.
ça fonctionne par contre ça fais planter excel "ne répond pas"
et "erreur 1004 la méthode 'Run' de l'objet '_Application' a échoué"
j'ai cela en code:
"Sub doublon()
'
' doublon Macro
'
For n = 1 To 499
For t = n + 1 To 500
If Range("A" & n).Value = Range("A" & t).Value And Range("B" & n).Value = Range("B" & t).Value And Range("C" & n).Value = Range("C" & t).Value And Range("D" & n).Value = Range("D" & t).Value Then
Range("A" & t).Interior.ColorIndex = 3
Range("B" & t).Interior.ColorIndex = 3
Range("C" & t).Interior.ColorIndex = 3
Range("D" & t).Interior.ColorIndex = 3
End If
Next t
Next n
'
Application.Run "'meth aaa.xlsx'!doublon"
Application.Goto Reference:="doublon"
End Sub
"
ça fonctionne par contre ça fais planter excel "ne répond pas"
et "erreur 1004 la méthode 'Run' de l'objet '_Application' a échoué"
j'ai cela en code:
"Sub doublon()
'
' doublon Macro
'
For n = 1 To 499
For t = n + 1 To 500
If Range("A" & n).Value = Range("A" & t).Value And Range("B" & n).Value = Range("B" & t).Value And Range("C" & n).Value = Range("C" & t).Value And Range("D" & n).Value = Range("D" & t).Value Then
Range("A" & t).Interior.ColorIndex = 3
Range("B" & t).Interior.ColorIndex = 3
Range("C" & t).Interior.ColorIndex = 3
Range("D" & t).Interior.ColorIndex = 3
End If
Next t
Next n
'
Application.Run "'meth aaa.xlsx'!doublon"
Application.Goto Reference:="doublon"
End Sub
"
pour la mise en forme conditionnelle, ça me semble impossible.
j'ai répondu dans l'autre réponse
"la comparaison c'est chaque ligne avec toutes les autres.
pour ton exemple ligne 1: 1 2 3 4
ligne 5 : 3 4 5 6
ligne 10:3 4 5 6
Les cellules A5 B5 C5 D5 et A10 B10 C10 D10 doivent etre coloriées en rouge.
Oui donc une boucle de manière a si par la suite je supprime une ligne en doublon ça remouline"
si ce n'est pas claire je reformulerais
"la comparaison c'est chaque ligne avec toutes les autres.
pour ton exemple ligne 1: 1 2 3 4
ligne 5 : 3 4 5 6
ligne 10:3 4 5 6
Les cellules A5 B5 C5 D5 et A10 B10 C10 D10 doivent etre coloriées en rouge.
Oui donc une boucle de manière a si par la suite je supprime une ligne en doublon ça remouline"
si ce n'est pas claire je reformulerais