MFC AVEC VBA : Colorer 2 cellules contigües en fonction de la valeur d'une trois
Résolu/Fermé
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
-
11 nov. 2018 à 17:26
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 - 12 nov. 2018 à 18:47
amiralS Messages postés 46 Date d'inscription samedi 26 octobre 2013 Statut Membre Dernière intervention 21 février 2020 - 12 nov. 2018 à 18:47
A voir également:
- MFC AVEC VBA : Colorer 2 cellules contigües en fonction de la valeur d'une trois
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba dépassement de capacité ✓ - Forum Excel
4 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 11 nov. 2018 à 18:43
Modifié le 11 nov. 2018 à 18:43
Bonjour
Sans voir le classeur, on ne peut guère t'aider
en attendant, il semble que la couleur serait fonction de l'unité (pour 504--->)
Si oui le principe serait
a complèter pour les 2 cellules à gauche et ce que l'on veut peut-^tre en voyant le classeur avec des explications précises du fonctionnement voulu
Sans voir le classeur, on ne peut guère t'aider
en attendant, il semble que la couleur serait fonction de l'unité (pour 504--->)
Si oui le principe serait
Niv = Cells(2, "E") Mod 100
Select Case Niv
Case 1
ActiveCell.Font.Color = -16776961 'rouge
Case 2
ActiveCell.Font.Color = -6279056 'violet
'etc jusquu'à 6
End Select
a complèter pour les 2 cellules à gauche et ce que l'on veut peut-^tre en voyant le classeur avec des explications précises du fonctionnement voulu
Mettre le classeur sans données confidentielles en pièce jointe sur
https://mon-partage.fr/
Puis faire un clic « copier le raccourci » et lecoller dans votre message
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
2
11 nov. 2018 à 20:23
11 nov. 2018 à 20:23
Ce code fonctionne mais c'est fastidieux et il doit être possible de faire plus court.
Sub couleurClasse()
Dim finligne As Byte
Dim NumeroLigne As Byte
finligne = ActiveSheet.UsedRange.Rows.Count + 1 'Variable nombre de lignes
NumeroLigne = 2 'Variable ligne en cours
While NumeroLigne < finligne
If Range("c" & NumeroLigne).Value = "302" Then
Range("B" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("a" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("c" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("c" & NumeroLigne).Value = "304" Then
Range("B" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("a" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("c" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("c" & NumeroLigne).Value = "301" Then
Range("B" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("a" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("c" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
If Range("F" & NumeroLigne).Value = "302" Then
Range("D" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("E" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("F" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("f" & NumeroLigne).Value = "304" Then
Range("d" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("e" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("f" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("f" & NumeroLigne).Value = "301" Then
Range("d" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("e" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("f" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
If Range("i" & NumeroLigne).Value = "402" Then
Range("g" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("h" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("i" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("i" & NumeroLigne).Value = "404" Then
Range("g" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("h" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("i" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("i" & NumeroLigne).Value = "401" Then
Range("g" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("h" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("i" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
If Range("l" & NumeroLigne).Value = "402" Then
Range("j" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("k" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("l" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("l" & NumeroLigne).Value = "404" Then
Range("j" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("k" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("l" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("l" & NumeroLigne).Value = "401" Then
Range("j" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("k" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("l" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
ETC...
NumeroLigne = NumeroLigne + 1
Wend
End Sub
Sub couleurClasse()
Dim finligne As Byte
Dim NumeroLigne As Byte
finligne = ActiveSheet.UsedRange.Rows.Count + 1 'Variable nombre de lignes
NumeroLigne = 2 'Variable ligne en cours
While NumeroLigne < finligne
If Range("c" & NumeroLigne).Value = "302" Then
Range("B" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("a" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("c" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("c" & NumeroLigne).Value = "304" Then
Range("B" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("a" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("c" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("c" & NumeroLigne).Value = "301" Then
Range("B" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("a" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("c" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
If Range("F" & NumeroLigne).Value = "302" Then
Range("D" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("E" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("F" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("f" & NumeroLigne).Value = "304" Then
Range("d" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("e" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("f" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("f" & NumeroLigne).Value = "301" Then
Range("d" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("e" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("f" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
If Range("i" & NumeroLigne).Value = "402" Then
Range("g" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("h" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("i" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("i" & NumeroLigne).Value = "404" Then
Range("g" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("h" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("i" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("i" & NumeroLigne).Value = "401" Then
Range("g" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("h" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("i" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
If Range("l" & NumeroLigne).Value = "402" Then
Range("j" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("k" & NumeroLigne).Font.Color = RGB(0, 0, 255)
Range("l" & NumeroLigne).Font.Color = RGB(0, 0, 255)
End If
If Range("l" & NumeroLigne).Value = "404" Then
Range("j" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("k" & NumeroLigne).Font.Color = RGB(255, 0, 0)
Range("l" & NumeroLigne).Font.Color = RGB(255, 0, 0)
End If
If Range("l" & NumeroLigne).Value = "401" Then
Range("j" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("k" & NumeroLigne).Font.Color = RGB(255, 0, 255)
Range("l" & NumeroLigne).Font.Color = RGB(255, 0, 255)
End If
ETC...
NumeroLigne = NumeroLigne + 1
Wend
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 12 nov. 2018 à 09:39
Modifié le 12 nov. 2018 à 09:39
Bonjour Amirals
https://mon-partage.fr/f/pLdfGI9m/
mais je regrette de t'avoir aider pour avoir taxé mon aide de "fastidieux", un grand Merci pour ta réaction assez typique de ton milieu professionnel
https://mon-partage.fr/f/pLdfGI9m/
mais je regrette de t'avoir aider pour avoir taxé mon aide de "fastidieux", un grand Merci pour ta réaction assez typique de ton milieu professionnel
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
12 nov. 2018 à 09:50
12 nov. 2018 à 09:50
Bonjour,
J'ajouterai que ce n'est fastidieux que si on ne sait pas optimiser un code, et qu'en plus on n'applique pas ce qui est préconisé ;-)
eric
J'ajouterai que ce n'est fastidieux que si on ne sait pas optimiser un code, et qu'en plus on n'applique pas ce qui est préconisé ;-)
eric
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
2
12 nov. 2018 à 18:47
12 nov. 2018 à 18:47
Bonsoir,
Je suis désolé qu'une incompréhension se soit glissée dans la discussion. Je voulais d'abord lever le doute sur une phrase "Ce code fonctionne mais c'est fastidieux et il doit être possible de faire plus court." qui voulait qualifier ma manière de procéder et donc d'apprendre à simplifier mon code et qui a été comprise autrement et j'en suis responsable.
Ensuite je viens de récupérer le classeur avec ton code, clair et court pour réaliser la mise en couleur des divers classes. Il fonctionne très bien.
Je te remercie pour cette contribution.
amiralS
Je suis désolé qu'une incompréhension se soit glissée dans la discussion. Je voulais d'abord lever le doute sur une phrase "Ce code fonctionne mais c'est fastidieux et il doit être possible de faire plus court." qui voulait qualifier ma manière de procéder et donc d'apprendre à simplifier mon code et qui a été comprise autrement et j'en suis responsable.
Ensuite je viens de récupérer le classeur avec ton code, clair et court pour réaliser la mise en couleur des divers classes. Il fonctionne très bien.
Je te remercie pour cette contribution.
amiralS
amiralS
Messages postés
46
Date d'inscription
samedi 26 octobre 2013
Statut
Membre
Dernière intervention
21 février 2020
2
12 nov. 2018 à 15:35
12 nov. 2018 à 15:35
Bonjour,
Il y a une incompréhension qui amène à vos commentaires et je reconnais mon erreur.la première phrase de ma réponse "Ce code fonctionne mais c'est fastidieux et il doit être possible de faire plus court" j'aurais dû la mettre en fin de message pour montrer qu'elle s'appliquait à ma méthode et non à vos réponseS
Pour ma part je veux juste dire que pour faire avancer les choses j'ai d'abord accédé à la demande de michel_m en joignant un fichier exemple puis comme je n'attends pas que l'on fasse le travail à ma place, je cherche en même temps pour apprendre. j'ai mis dans une réponse ce que j'avais élaboré comme solution à mon problème et c'est MA méthode que je trouve fastidieuse. Volontairement j'ai rempli le cadre intitulé "Votre réponse" (donc la mienne pour moi et ainsi informer les contributeurs de ce que je fais de mon côté) et non les cadres "commenter la réponse de michel_m" , et "commenter la réponse eriiic".
Je vous remercie d'avoir pris le temps de me répondre
amiralS
Il y a une incompréhension qui amène à vos commentaires et je reconnais mon erreur.la première phrase de ma réponse "Ce code fonctionne mais c'est fastidieux et il doit être possible de faire plus court" j'aurais dû la mettre en fin de message pour montrer qu'elle s'appliquait à ma méthode et non à vos réponseS
Pour ma part je veux juste dire que pour faire avancer les choses j'ai d'abord accédé à la demande de michel_m en joignant un fichier exemple puis comme je n'attends pas que l'on fasse le travail à ma place, je cherche en même temps pour apprendre. j'ai mis dans une réponse ce que j'avais élaboré comme solution à mon problème et c'est MA méthode que je trouve fastidieuse. Volontairement j'ai rempli le cadre intitulé "Votre réponse" (donc la mienne pour moi et ainsi informer les contributeurs de ce que je fais de mon côté) et non les cadres "commenter la réponse de michel_m" , et "commenter la réponse eriiic".
Je vous remercie d'avoir pris le temps de me répondre
amiralS
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
12 nov. 2018 à 16:15
12 nov. 2018 à 16:15
wow, bonne défense.
Ton avocat est cru et tu n'es pas cuit :-)
eric
Ton avocat est cru et tu n'es pas cuit :-)
eric
11 nov. 2018 à 19:33
https://mon-partage.fr/f/rwQTMA0Q/