Excel : Conditions si ou mise en forme
Résolu/Fermé
colt74500
Messages postés
3
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
11 janvier 2010
-
7 janv. 2010 à 11:44
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 12 janv. 2010 à 07:16
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 12 janv. 2010 à 07:16
A voir également:
- Excel : Conditions si ou mise en forme
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
15 réponses
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
7 janv. 2010 à 18:06
7 janv. 2010 à 18:06
Bonjour,
S'il s'agit d'identifier les ref en double, pkoi ne pas simplement ajouter un colonne et y mettre un formule du genre : =SI(NB.SI($A:$A;A1)>1;"ref en double";"") ? Passer par un code couleur n'est pas simple et ne permettra ni de filter, ni de trier la liste (apres si tu y tiens vraiment, tu ajoute un colonnes que tu masques puis une petite mise en forme automatique avec un formule =B1="ref en double")
S'il s'agit d'identifier les ref en double, pkoi ne pas simplement ajouter un colonne et y mettre un formule du genre : =SI(NB.SI($A:$A;A1)>1;"ref en double";"") ? Passer par un code couleur n'est pas simple et ne permettra ni de filter, ni de trier la liste (apres si tu y tiens vraiment, tu ajoute un colonnes que tu masques puis une petite mise en forme automatique avec un formule =B1="ref en double")
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
7 janv. 2010 à 16:23
7 janv. 2010 à 16:23
ceci ne s applique que a ta colonne A?
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
7 janv. 2010 à 12:29
7 janv. 2010 à 12:29
bonjout
tu peux utiliser la mise en forme conditionnelle avec la mise en surbrillance
tu peux utiliser la mise en forme conditionnelle avec la mise en surbrillance
Bonjour moiced59
Je sais le faire entre 2 cellules voir plusieurs en lui disant que si la valeur est = a une cellule mettre en gras , couleur etc mais si il faut que je le fasse a toute les cellules par rapport aux autres je vais y passer 2010.
il me faudrait qque chose que j'applique a tout le document, colonne,
merci a+
Je sais le faire entre 2 cellules voir plusieurs en lui disant que si la valeur est = a une cellule mettre en gras , couleur etc mais si il faut que je le fasse a toute les cellules par rapport aux autres je vais y passer 2010.
il me faudrait qque chose que j'applique a tout le document, colonne,
merci a+
je ferai colonne par colonne donc pour l'instant oui
en faite j'ai une multitude de mots dans ces colonnes et je voudrais avoir qque chose qui m'indique quand j'ai un doublon
en faite j'ai une multitude de mots dans ces colonnes et je voudrais avoir qque chose qui m'indique quand j'ai un doublon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
7 janv. 2010 à 17:59
7 janv. 2010 à 17:59
oula ce se complique je pensais que c t seulement avec d lettre tu as bcp de ref differente?
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
7 janv. 2010 à 18:48
7 janv. 2010 à 18:48
voila g trouver:
tiens tu peux executer ce code derriere un bouton il trie t donné et met t doublon de la meme coulleur si 2 doublons se suivent un est en rouge et l autre en bleu
Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A68000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A68000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = 1
numcouleur = vbRed
Do Until i = 1000
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then
If numcouleur = vbRed Then
numcouleur = vbBlue
Else
numcouleur = vbRed
End If
End If
End If
i = i + 1
Loop
End Sub
tiens tu peux executer ce code derriere un bouton il trie t donné et met t doublon de la meme coulleur si 2 doublons se suivent un est en rouge et l autre en bleu
Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A68000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A68000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = 1
numcouleur = vbRed
Do Until i = 1000
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then
If numcouleur = vbRed Then
numcouleur = vbBlue
Else
numcouleur = vbRed
End If
End If
End If
i = i + 1
Loop
End Sub
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
7 janv. 2010 à 19:11
7 janv. 2010 à 19:11
re
bien sur si tu as plusieur colonne avec des donnée remplace le :
Columns("A:A").Select du debut parpar exemple t donné vous jusqua la colonne h par
:Columns("A:H").Select
de meme pour:
.SetRange Range("A1:A68000") par:
.SetRange Range("A1:H68000")
bien sur si tu as plusieur colonne avec des donnée remplace le :
Columns("A:A").Select du debut parpar exemple t donné vous jusqua la colonne h par
:Columns("A:H").Select
de meme pour:
.SetRange Range("A1:A68000") par:
.SetRange Range("A1:H68000")
Merci a vous deux
mais il va falloir que je digere et comprendre vos reponses , je ne suis pas un pro.
je vous tiendrai au courant si je m'en sort
a+ et merci
mais il va falloir que je digere et comprendre vos reponses , je ne suis pas un pro.
je vous tiendrai au courant si je m'en sort
a+ et merci
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 janv. 2010 à 09:59
8 janv. 2010 à 09:59
bonjour
quel est ton message?
quel est ton message?
colt74500
Messages postés
3
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
11 janvier 2010
8 janv. 2010 à 18:09
8 janv. 2010 à 18:09
Salut
Erreur d'execution 438
Proprieté ou méthode non gerée par cet objet
Dans la macro apres l'erreur le 1er Activeworkbook etait en jaune
Je ne sais pas si c'est tres clair sinon je me suis debrouillé avec la formule des doublon
a+
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 08/01/2010 par colt
'
' Touche de raccourci du clavier: Ctrl+d
'Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A68000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A68000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = 1
numcouleur = vbRed
Do Until i = 1000
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then
If numcouleur = vbRed Then
numcouleur = vbBlue
Else
numcouleur = vbRed
End If
End If
End If
i = i + 1
Loop
End Sub
Erreur d'execution 438
Proprieté ou méthode non gerée par cet objet
Dans la macro apres l'erreur le 1er Activeworkbook etait en jaune
Je ne sais pas si c'est tres clair sinon je me suis debrouillé avec la formule des doublon
a+
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 08/01/2010 par colt
'
' Touche de raccourci du clavier: Ctrl+d
'Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A68000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:A68000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = 1
numcouleur = vbRed
Do Until i = 1000
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then
If numcouleur = vbRed Then
numcouleur = vbBlue
Else
numcouleur = vbRed
End If
End If
End If
i = i + 1
Loop
End Sub
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 janv. 2010 à 18:25
8 janv. 2010 à 18:25
re
tu peux essayé en retirant les activeworkbook
tu peux essayé en retirant les activeworkbook
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
8 janv. 2010 à 18:56
8 janv. 2010 à 18:56
Salut,
oulà, pas mal de soucis de compatibilité sur le tri :
SortFields => inexistant en 2003, jvérifierai + tard pour excel 2007
pareil : Range("A1:A68000") ne peut fonctionner qu'en excel 2007 (excel 2003 ne fournit que 65536 lignes)...
ensuite Do Until i = 1000 : il serait plus judicieux de determiner la derniere cellule non vide de la plage et boucler de la 1ere ligne à à celle-ci
etc...
Apres pourquoi vouloir absolument coder qd une manipulation simple et facilement répétable pour un non-initié au vba (formule/MFC) peut résoudre le pb ? La solution la plus simple est bien souvent la meilleure (j'aurais bien mis toujours mais ça va lancer un débat lol) !
oulà, pas mal de soucis de compatibilité sur le tri :
SortFields => inexistant en 2003, jvérifierai + tard pour excel 2007
pareil : Range("A1:A68000") ne peut fonctionner qu'en excel 2007 (excel 2003 ne fournit que 65536 lignes)...
ensuite Do Until i = 1000 : il serait plus judicieux de determiner la derniere cellule non vide de la plage et boucler de la 1ere ligne à à celle-ci
etc...
Apres pourquoi vouloir absolument coder qd une manipulation simple et facilement répétable pour un non-initié au vba (formule/MFC) peut résoudre le pb ? La solution la plus simple est bien souvent la meilleure (j'aurais bien mis toujours mais ça va lancer un débat lol) !
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
8 janv. 2010 à 19:38
8 janv. 2010 à 19:38
re
je suis d'accord avec toi pr la solution mais trouve moi une formule qui trie les enregistrement et qui met un doublon sur 2 d'1 couleur <> j crois pas trop !!
les chiffre ds mon code son bien sur fictif il faut les adapter a son pb!
voila avec la 1ere ligne vide
vide= Worksheets("feuil1").Cells(1, "A").End(xlDown).Row + 1
Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:vide") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:vide")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = 1
numcouleur = vbRed
Do Until i = vide
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then
If numcouleur = vbRed Then
numcouleur = vbBlue
Else
numcouleur = vbRed
End If
End If
End If
i = i + 1
Loop
End Sub
je suis d'accord avec toi pr la solution mais trouve moi une formule qui trie les enregistrement et qui met un doublon sur 2 d'1 couleur <> j crois pas trop !!
les chiffre ds mon code son bien sur fictif il faut les adapter a son pb!
voila avec la 1ere ligne vide
vide= Worksheets("feuil1").Cells(1, "A").End(xlDown).Row + 1
Columns("A:A").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:vide") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A1:vide")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
i = 1
numcouleur = vbRed
Do Until i = vide
If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then
If numcouleur = vbRed Then
numcouleur = vbBlue
Else
numcouleur = vbRed
End If
End If
End If
i = i + 1
Loop
End Sub
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
8 janv. 2010 à 20:50
8 janv. 2010 à 20:50
Re,
premiere chose tu devrais tester ton code avant de le poster :
Range("A1:vide") => "A1:A" & vide
ensuite tu dis : "qui met un doublon sur 2 d'1 couleur <> j crois pas trop !! "...en fait tu mets les 2 de la meme couleur, c'est ici : Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
du coup, ça ferait :
bon, ça change pas le fait que ce code ne fcontionnera que sur excel 2007 (SortFields) !
enfin moi jdis ça, c'est pour aider et puis on va pas debattre sur un post résolu...
bonne soirée
premiere chose tu devrais tester ton code avant de le poster :
Range("A1:vide") => "A1:A" & vide
ensuite tu dis : "qui met un doublon sur 2 d'1 couleur <> j crois pas trop !! "...en fait tu mets les 2 de la meme couleur, c'est ici : Range(Cells(i, 1), Cells(i + 1, 1)).Font.Color = numcouleur
du coup, ça ferait :
vide = Worksheets("feuil1").Cells(1, "A").End(xlDown).Row + 1 Columns("A:A").Select ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A" & vide) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range("A1:A" & vide) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With i = 1 numcouleur = vbRed Do Until i = vide If Cells(i, 1).Value = Cells(i + 1, 1).Value Then Cells(i + 1, 1).Font.Color = numcouleur If Cells(i, 1).Value <> Cells(i + 2, 1).Value Then If numcouleur = vbRed Then numcouleur = vbBlue Else numcouleur = vbRed End If End If End If i = i + 1 Loop=> mettra tous les codes en double en couleur sauf le 1er (avec changemnt de couleur 1 fois sur 2)
bon, ça change pas le fait que ce code ne fcontionnera que sur excel 2007 (SortFields) !
enfin moi jdis ça, c'est pour aider et puis on va pas debattre sur un post résolu...
bonne soirée
colt74500
Messages postés
3
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
11 janvier 2010
11 janv. 2010 à 21:25
11 janv. 2010 à 21:25
Bonsoir
je viens d'investir dans office2007 et je viens d'essayer la mixture ci dessus.
ca a l'air de marcher, cela tri et met les doublons en couleur.
je pense que je vais pouvoir m'en servir
Derniere petite question, tout ces commandes, vous avez travaillez longuement dessus ou il y a des applications toutes faites, ca 'interesse mais c'est un peu du chinois pour moi.
Merci encore
je viens d'investir dans office2007 et je viens d'essayer la mixture ci dessus.
ca a l'air de marcher, cela tri et met les doublons en couleur.
je pense que je vais pouvoir m'en servir
Derniere petite question, tout ces commandes, vous avez travaillez longuement dessus ou il y a des applications toutes faites, ca 'interesse mais c'est un peu du chinois pour moi.
Merci encore
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
9 janv. 2010 à 08:21
9 janv. 2010 à 08:21
re
bah mon code je l'zi tester et il met bie un doublon sur 2 de couleur <>
bah mon code je l'zi tester et il met bie un doublon sur 2 de couleur <>
moiced59
Messages postés
1145
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
18 août 2014
60
12 janv. 2010 à 07:16
12 janv. 2010 à 07:16
bonjour
Bah non il faut travailler dessus mais grace a l'enregistreur de macro pas besoin de faire tout par coeur
Bah non il faut travailler dessus mais grace a l'enregistreur de macro pas besoin de faire tout par coeur
7 janv. 2010 à 22:50
a =SI(NB.SI($A:$A;A1)>1;"ref en double";"")
b
c
c
d
e
f
f
resalut Tom
j'ai mis ta formule en B1 pour sortir les c et f , ca marche pas ou j'ai rien compris
C'est comme ca que tu pensais ?
a+
7 janv. 2010 à 22:56
oui oui, c'est bien ça, reste juste à tirer la formule vers le bas (via la poignée de recopie)
tu devrais obtenir ça pour les formules:
et ça devrait donner ça en affichage:
7 janv. 2010 à 23:02
je vais le faire dans mon fichier
je te remerci c'est vraiment sympa, 1er fois que je vais dans un forum , super utile
a+
7 janv. 2010 à 23:04
@+