![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2007
Messages: 20
|
Salut,
je sollicite votre aide aux (oooooohhh) grands maitres VBAsiens je voudrais appliquer une mise en forme avec plus de 3 conditions. par exemple dans le fichier joint http://www.cijoint.fr/cjlink.php?fil...cijwvYW1nI.xls lorsque j'ai dans la 1ère colonne "+pts" et en face une valeur différente de 0 alors je met un fond rose sur la valeur lorsque j'ai "+rem" et une valeur différente de 0 je met un fond bleu sur la valeur etc ... avec autant de conditions que j'ai de libellé je suis rouillé en VBA, j'ai déjà essayé des choses mais sans succès, help svp ? |
|
|
|
|
|
#2 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: août 2007
Localisation: Lyon
Âge: 27
Messages: 74
|
bonjour,
essayes avec ce genre de code : Code :
for each cell in range(ta plage) select case cell.value case >1 'exemple cell.interior.colorindex=3 'rouge ' ' ' et ainsi de suite end select next |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: février 2004
Localisation: Rimouski
Messages: 3 067
|
Personnellement, je n'ouvrirai pas un fichier joint... et je pense ne pas être la seule à user de cette précaution.
Mets nous le bout de code et les détails importants permettant de mieux comprendre la situation comme, par exemple, le fait que ton code s'applique à un tableau croisé dynamique (ce qu'on n'aurait pu deviner sans ouvrir le fichier).
__________________
|
|
|
|
|
|
#7 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2007
Messages: 20
|
je n'ai pas de bout de code car je ne sais pas par quel bout le prendre (ce code)
peu importe le TCD ou pas si ca marche sur simple feuille déjà ça m'aiderai beaucoup ceci dit beaucoup de monde réclame un fichier joint pour etre mieux compris ! je souhaiterais en fait une mise en forme condi avec plus de 3 conditions et sur plus d'une cellule (impossible dans les menus standars d'excel) si mon libellé et A et en face j'ai une valeur différente de 0 alors je met un fond coloré sur cette valeur et j'applique au reste du tableau |
|
|
|
|
|
#8 (permalink) |
|
Membre éprouvé
![]() |
et bien tu fais un truc dans le genre
Code :
'Balayage de toutes tes lignes (suppose que toutes tes colonnes 1 soient 'remplies) i=1 while Trim(cells(i,1).value) <>"" if cells(i,1).value = "+pt" and cells(i,2)="rmq" and cells (i,3).value= "toto" and cells (i,4).value="titi" then Cells(i,5).select Selection.interiorColor=3 end if 'Tu répètse ce if avec toute les combinaisons qui t'arrangent... c'est un peu 'lourd comme colution mais je ne vois pas tellement d'autres solutions i=i+1 wend Voici l'algo... Sur une feuille "Paramétrage", tu devrais créer 4 colonnes avec les différentes valeurs dans chacune des colonnes Au final, tu auras chacune des tes combinaisons sur une ligne avec le code couleur correspondant à chacune des combinaison Pour tafeuille principale, tu recherches à chaque fois dans la feuille parametrage, la ligne correspondant à tse critères afin de récupérer le code couleur pour pouvoir l'affecter |
|
|
|
|
|
#9 (permalink) | |
|
Membre Expert
![]() Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 024
|
Citation:
__________________
Cordialement G@dz Question technique par MP = Vous avez des neurones. Sollicitez-les. réponse inadaptée. Si la solution est absente, le problème n'est plus.
|
|
|
|
|
|
|
#10 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2008
Localisation: Québec, Canada
Messages: 24
|
Ce code dans la page de code de ton onglet fonctionne. Tes clés dans la colonne A et leur valeur dans la colonne B.
Code :
Private Sub Worksheet_Change(ByVal Target As Range) If ActiveCell.Column <> 2 Then Exit Sub If IsNumeric(ActiveCell.Value) = False Then Exit Sub If ActiveCell.Value > 0 Then If ActiveCell.Offset(0, -1).Value = "+Pts" Then Selection.Interior.ColorIndex = 5 If ActiveCell.Offset(0, -1).Value = "+Rem" Then Selection.Interior.ColorIndex = 6 ... ... ... End If End Sub Dernière modification par fring ; 02/09/2008 à 21h37 Motif: Veuillez utiliser les balises [code] (sélection du code + clic sur #) |
|
|
|
|
|
#11 (permalink) |
|
Membre éprouvé
![]() |
Sauf que la demande initiale semble dire par exemple:
si la cellule A1 = "+pt" et que la cellule "B2"="+rmq" alors je colorie en rouge la cellul C5 Ton cas ne prend en compte qu'une seule possibilité.... Ton cas est surtout faisable avec la mise en forme conditionnelle proposée par Excel Le souci du poste est de faire une mise en forme conditionnelle sur plus de 3 critères (maximum autorisé par Execel) |
|
|
|
|
|
#12 (permalink) |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: juin 2007
Messages: 20
|
no c po ça
si sur la ligne débute par "+PTS" alors sur le reste de la ligne lorsque j'ai une valeur je colori sinon je fais rien si sur la éème ligne j'ai un autre libellé "+REM" par exemple alors je fais pareil avec une autre couleur. bon j'arrive à colorier tous mes libellé avec ça Code :
For Each i In Range("A1:S22") If i <> "" Then Select Case i.Value Case "+PTS" i.Interior.ColorIndex = 3 Case Else i.Interior.ColorIndex = 0 End Select End If Next
|
|
|
|
|
|
#13 (permalink) |
|
Membre éprouvé
![]() |
si je comprends bien, ta ligne débute sur la colonne A
Donc ton code parait pas mal mais tu devrais le modifier un peu comme ceci Code :
For Each i In Range("A1:S22") If i <> "" Then Select Case Range("A" & i.Row) Case "toto": i.Interior.ColorIndex = 3 Case "titi": i.Interior.ColorIndex = 5 Case "tata": i.Interior.ColorIndex = 8 End Select End If Next |
|
|
|
![]() |
![]() |
||
mise en forme a plus de 3 condi
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|