Colorer les cellules d'un tableau suivant le contenu
Fermé
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
-
12 déc. 2016 à 16:45
Gazpaschaud Messages postés 14 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 19 décembre 2016 - 17 déc. 2016 à 09:21
Gazpaschaud Messages postés 14 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 19 décembre 2016 - 17 déc. 2016 à 09:21
A voir également:
- Colorer les cellules d'un tableau suivant le contenu
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Le fichier contient un tableau présentant un extrait des livres les plus prêtés à paris en 2016. filtrez le tableau pour ne faire apparaître que les bandes dessinées ado. puis filtrez le tableau pour ne faire apparaître que celles dont l'auteur est zep. quel est le titre de la bande dessinée ado de zep qui a été la plus prêtée d'après ce tableau ? ✓ - Forum Windows 10
8 réponses
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
14 déc. 2016 à 17:59
14 déc. 2016 à 17:59
Bonsoir,
Pourquoi en VBA ?
La Mise en Forme Conditionnelle permet de faire ce que tu souhaites. Il y a juste un petit effort pour avoir exactement la bonne couleur.
A+
Pourquoi en VBA ?
La Mise en Forme Conditionnelle permet de faire ce que tu souhaites. Il y a juste un petit effort pour avoir exactement la bonne couleur.
A+
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
Modifié par gbinforme le 14/12/2016 à 23:50
Modifié par gbinforme le 14/12/2016 à 23:50
Bonjour,
les MFC initialement installées se "dédoublent" à l'infini,
Pas sûr que tu ais utilisé les MFC pour l'éviter.
Tu fais une coloration par colonne et donc si tu mets ta MFC sur la colonne elle ne se dédouble pas puisque si tu insères une ligne la plage reste la même alors que si tu choisis de la ligne 1 à 300, tu scindes la plage en introduisant une nouvelle ligne.
Tu demandes une coloration par macro : cela ne sera pas neutre non plus car tout code qui s'exécute consomme du temps.
Voici la macro à mettre dans la feuille concernée :
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
les MFC initialement installées se "dédoublent" à l'infini,
Pas sûr que tu ais utilisé les MFC pour l'éviter.
Tu fais une coloration par colonne et donc si tu mets ta MFC sur la colonne elle ne se dédouble pas puisque si tu insères une ligne la plage reste la même alors que si tu choisis de la ligne 1 à 300, tu scindes la plage en introduisant une nouvelle ligne.
Tu demandes une coloration par macro : cela ne sera pas neutre non plus car tout code qui s'exécute consomme du temps.
Voici la macro à mettre dans la feuille concernée :
Private Sub Worksheet_Change(ByVal sel As Range) If sel.CountLarge > 1 Then Exit Sub If Not Intersect(sel, [A:A]) Is Nothing Then Select Case sel.Value Case 1: sel.Interior.ColorIndex = 28 Case 2: sel.Interior.ColorIndex = 22 Case Else: sel.Interior.ColorIndex = xlNone End Select End If If Not Intersect(sel, [B:B]) Is Nothing Then Select Case sel.Value Case "F1", "F7", "F13", "F19", "F25": sel.Interior.ColorIndex = 6 Case "F2", "F8", "F14", "F20", "F26": sel.Interior.ColorIndex = 8 Case "F3", "F9", "F15", "F21", "F27": sel.Interior.ColorIndex = 44 Case "F4", "F10", "F16", "F22", "F28": sel.Interior.ColorIndex = 43 Case "F5", "F11", "F17", "F23", "F29": sel.Interior.ColorIndex = 32 sel.Font.ThemeColor = xlThemeColorDark1 Case "F9", "F12", "F18", "F24", "F30": sel.Interior.ColorIndex = 18 sel.Font.ThemeColor = xlThemeColorDark1 Case Else: sel.Interior.ColorIndex = xlNone End Select End If If Not Intersect(sel, [C:C]) Is Nothing Then If sel.Value = "OK" Then sel.Interior.ColorIndex = 4 sel.Font.ThemeColor = xlThemeColorDark1 Else sel.Interior.ColorIndex = xlNone End If End If If Not Intersect(sel, [J:J]) Is Nothing Then Select Case sel.Value Case "D": sel.Interior.ColorIndex = 46 Case "R": sel.Interior.ColorIndex = 6 Case Else: sel.Interior.ColorIndex = xlNone End Select End If If Not Intersect(sel, [L:L]) Is Nothing _ Or Not Intersect(sel, [R:R]) Is Nothing _ Or Not Intersect(sel, [U:U]) Is Nothing Then Select Case sel.Value Case 46, 47: sel.Interior.ColorIndex = 4 ' couleur *4* Case 42, 69: sel.Interior.ColorIndex = 39 ' couleur *39* Case 32, 80, 81, 82: sel.Interior.ColorIndex = 45 ' couleur *45* Case 7, 30, 26: sel.Interior.ColorIndex = 35 ' couleur *35* End Select End If End Sub
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
15 déc. 2016 à 07:40
15 déc. 2016 à 07:40
Merci de la rapidité pour me répondre mais je ne le vois que ce matin.
J'assure à 100% que toutes mes MFC étaient bien faites par colonne et non pas pour un groupe de lignes.
Dans ma version actuelle de la BD j'ai d'ailleurs conservé une MFC sur la colonne J et elle s'est et se dédouble toujours.
Peut-être que je me trompe dans la procédure d'installation de la MFC ?
Je viens à l'instant de refaire un essai :
1- Sélection colonne C, installation d'une MFC référence de la colonne par excel =$C:$C
2- Je reviens sur la BD je fais insertion 1 ligne : sur la MFC j'ai maintenant deux références de MFC :
la première j'ai : =$C$14791 (réf de la ligne d'insertion)
et deuxième j'ai : =$C$1:$C$14790;$C$14792:$C$1048576
(donc les deux autres portion avant et après l'insertion).
A noter que Excel attribue en premier $C et qui devient $C$
Comment éviter cette multiplication de la MFC à chaque fois que l'on insère une ligne ?
Car je suis bien d'accord que les MFC seraient bien plus souples
J'attends donc pour voir pour la VBA
Merci encore de votre patience
J'assure à 100% que toutes mes MFC étaient bien faites par colonne et non pas pour un groupe de lignes.
Dans ma version actuelle de la BD j'ai d'ailleurs conservé une MFC sur la colonne J et elle s'est et se dédouble toujours.
Peut-être que je me trompe dans la procédure d'installation de la MFC ?
Je viens à l'instant de refaire un essai :
1- Sélection colonne C, installation d'une MFC référence de la colonne par excel =$C:$C
2- Je reviens sur la BD je fais insertion 1 ligne : sur la MFC j'ai maintenant deux références de MFC :
la première j'ai : =$C$14791 (réf de la ligne d'insertion)
et deuxième j'ai : =$C$1:$C$14790;$C$14792:$C$1048576
(donc les deux autres portion avant et après l'insertion).
A noter que Excel attribue en premier $C et qui devient $C$
Comment éviter cette multiplication de la MFC à chaque fois que l'on insère une ligne ?
Car je suis bien d'accord que les MFC seraient bien plus souples
J'attends donc pour voir pour la VBA
Merci encore de votre patience
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
15 déc. 2016 à 08:35
15 déc. 2016 à 08:35
Bonjour,
Tu fonctionnes avec quelle version d'excel ?
J'attends donc pour voir pour la VBA tu as vu la macro ?
Tu fonctionnes avec quelle version d'excel ?
J'attends donc pour voir pour la VBA tu as vu la macro ?
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
15 déc. 2016 à 11:12
15 déc. 2016 à 11:12
Bonjour Gazpaschaud,
(et bonjour gbinforme)
Je n'arrive pas à reproduire le dédoublement non plus.
Pour la colonne B :
- je suppose que tu voulais indiquer F6 et non F9 en dernière ligne ;
- en appliquant un format personnalisé, tu peux saisir un nombre et avoir le F en préposé ;
- partant du deuxième tiret tu peux simplifier le cas en fonction du nombre saisi modulo 6
A+
(et bonjour gbinforme)
Je n'arrive pas à reproduire le dédoublement non plus.
Pour la colonne B :
- je suppose que tu voulais indiquer F6 et non F9 en dernière ligne ;
- en appliquant un format personnalisé, tu peux saisir un nombre et avoir le F en préposé ;
- partant du deuxième tiret tu peux simplifier le cas en fonction du nombre saisi modulo 6
A+
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
>
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
15 déc. 2016 à 13:12
15 déc. 2016 à 13:12
Effectivement merci de me signaler l'erreur du F6, étourderie de ma part...
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
15 déc. 2016 à 11:11
15 déc. 2016 à 11:11
J'ai la version Microsoft Office Famille et Etudiant 2013
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
15 déc. 2016 à 18:29
15 déc. 2016 à 18:29
Bonsoir,
J'ai essayé aussi avec 2013 mais lorsque "S'applique à" est valorisé
As-tu essayé la macro que je t'ai mise ?
J'ai essayé aussi avec 2013 mais lorsque "S'applique à" est valorisé
=$A:$Apar exemple, l'insertion de lignes ne le fait pas changer comme c'était le cas avant.
As-tu essayé la macro que je t'ai mise ?
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
15 déc. 2016 à 22:00
15 déc. 2016 à 22:00
Non comme je l'ai déjà dit je n'ai pas voulu encore faire d'essais avec la VBA
J'attendais éventuelle explication sur les MFC.
Justement je ne comprends pas :
"s'applique à" est valorisé ?
Si l'insertion de lignes ne perturbe pas la MFC c'est la solution mais là je ne saisis pas ce qu'il faut faire ?
J'attendais éventuelle explication sur les MFC.
Justement je ne comprends pas :
"s'applique à" est valorisé ?
Si l'insertion de lignes ne perturbe pas la MFC c'est la solution mais là je ne saisis pas ce qu'il faut faire ?
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
16 déc. 2016 à 01:57
16 déc. 2016 à 01:57
à part transmettre tes fichiers avant-après (càd MFC OK puis doublonnage - via https://www.cjoint.com/ ), je ne vois pas comment on peut t'aider. Chez nous, l'insertion d'une ligne ne pose pas de problème et gbinforme a répondu à ta question initiale.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
16 déc. 2016 à 09:10
16 déc. 2016 à 09:10
Bonjour,
Un petit bout d'exemple sur lequel tu peux essayer de reproduire les dédoublements que tu nous signales
https://www.cjoint.com/c/FLqigAYQMAl
Si cela se produit chez toi, renvoies nous le résultat.
Ta version Office se met-elle à jour automatiquement ?
Un petit bout d'exemple sur lequel tu peux essayer de reproduire les dédoublements que tu nous signales
https://www.cjoint.com/c/FLqigAYQMAl
Si cela se produit chez toi, renvoies nous le résultat.
Ta version Office se met-elle à jour automatiquement ?
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
16 déc. 2016 à 16:35
16 déc. 2016 à 16:35
Bonjour et désolé mais quelques priorités familiales m'ont fait tardé à vous répondre :
Ci-dessous les deux classeurs :
1er classeur :
J'ai supprimé toutes les VBA Existantes (je pensais que cela pouvait venir de là).
J'ai donc mis en place les MFC pour les colonnes A-B-D et J
pour la colonne B je n'ai mis que 7 MFC au lieu des 30 prévues. Les références pour toute les MFC sont du type =$A:$A
https://www.cjoint.com/c/FLqprZ4pSX1
2ème Classeur :
Copie du premier et j'ai fait deux exemples d'insertion :
1- à la ligne 50 j'ai inséré seulement une ligne pas de modification dans les MFC
2- à la ligne 51 j'ai fait un copier-insertion de la ligne 108 les MFC sont modifiées...?
Pour chaque type de MFC on a une MFC distincte pour la ligne 51 exemple : =$A$51
Puis une pour la ligne 1 à 50 et ensuite 1 pour la ligne 52 à 1048576 (=$A$1:$A$50;$A$52:$A$1048576)
https://www.cjoint.com/c/FLqpAUf6Fr1
Voilà donc mon problème qui est flagrant et je ne vois pas d'où cela peut venir
Cordialement à vous pour la solution !
Ci-dessous les deux classeurs :
1er classeur :
J'ai supprimé toutes les VBA Existantes (je pensais que cela pouvait venir de là).
J'ai donc mis en place les MFC pour les colonnes A-B-D et J
pour la colonne B je n'ai mis que 7 MFC au lieu des 30 prévues. Les références pour toute les MFC sont du type =$A:$A
https://www.cjoint.com/c/FLqprZ4pSX1
2ème Classeur :
Copie du premier et j'ai fait deux exemples d'insertion :
1- à la ligne 50 j'ai inséré seulement une ligne pas de modification dans les MFC
2- à la ligne 51 j'ai fait un copier-insertion de la ligne 108 les MFC sont modifiées...?
Pour chaque type de MFC on a une MFC distincte pour la ligne 51 exemple : =$A$51
Puis une pour la ligne 1 à 50 et ensuite 1 pour la ligne 52 à 1048576 (=$A$1:$A$50;$A$52:$A$1048576)
https://www.cjoint.com/c/FLqpAUf6Fr1
Voilà donc mon problème qui est flagrant et je ne vois pas d'où cela peut venir
Cordialement à vous pour la solution !
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
16 déc. 2016 à 19:28
16 déc. 2016 à 19:28
Bonsoir Gazpaschaud (j'aime bien ton pseudo),
La réponse est dans ta dernière précision... J'avais testé (1) mais pas (2).
Tu peux éviter le doublonnement en faisant un collage spécial "Fusionner la mise en forme conditionnelle".
Au passage en colonne B tu peux restreindre à 6 formules de MFC.
Ce fichier est tout de même très coloré et certaines saisies et certains affichages sont... surprenants.
La réponse est dans ta dernière précision... J'avais testé (1) mais pas (2).
Tu peux éviter le doublonnement en faisant un collage spécial "Fusionner la mise en forme conditionnelle".
Au passage en colonne B tu peux restreindre à 6 formules de MFC.
Ce fichier est tout de même très coloré et certaines saisies et certains affichages sont... surprenants.
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
17 déc. 2016 à 08:09
17 déc. 2016 à 08:09
Bonjour, je suis effectivement assez friand des jeux de mots et autres calembourgs.
1- Solution pour MFC :
Donc si je comprends bien la solution est pour toutes insertions de ligne(s) de passer par un collage spécial ?
Pour l'exemple que j'ai mis en fichier joint, j'avais enlevé toutes les vba pensant à un éventuel conflit, il en est rien tant mieux ! Mais toutes mes insertions de lignes et paramétrages de ces lignes se font par VBA, et là je ne sais pas du tout comment traduire en code ce collage spécial voici un code "standard que j'utilise pour exemple :
1-Copie et insertion 1 ligne
<code>Sub Copie_Ligne_Basse_Famille()
Dim n%
n = selection.Row
With ActiveSheet
[\\B_Copie_Ligne_Basse_Famille].Copy
.Range("A" & n).Resize(, 21).Insert xlShiftDown
End With
End Sub
2- Colonne B Nombre de MFC
Oui je suis d'accord pour limiter à 6 MFC, mais je n'arrive pas à écrire correctement plusieurs choix possibles dans "Mettre en forme le texte contenant..." : comment doit-on l'écrire ? :
F1. F6. F13
F1 ; F6 ; F13
"F1" ; "F6" ; "F13" j'ai fait plusieurs essais infructueux
2- Côté surprenant (LOL)
Cette base de données n'est qu'une "interface" avec la saisie sur un site de généalogie en ligne sur lequel je mets à jour seulement les données "définitives et sures", mon interface me permets d'une part de pouvoir faire un rapprochement entre les deux et surtout de gérer les individus dits "potentiels". Je l'ai crée il y a à peu près 10 ans... elle a donc bien évoluée. Certes je reconnais qu'elle est bien colorée (rire), mais c'est ainsi que je me suis habitué et j'arrive à me repérer plus facilement. Par contre je suis très intéressé d'avoir une vue extérieure, c'est comme cela que l'on s'améliore, quand vous dites "Saisies et affichages surprenant"
Merci encore pour l'aide
1- Solution pour MFC :
Donc si je comprends bien la solution est pour toutes insertions de ligne(s) de passer par un collage spécial ?
Pour l'exemple que j'ai mis en fichier joint, j'avais enlevé toutes les vba pensant à un éventuel conflit, il en est rien tant mieux ! Mais toutes mes insertions de lignes et paramétrages de ces lignes se font par VBA, et là je ne sais pas du tout comment traduire en code ce collage spécial voici un code "standard que j'utilise pour exemple :
1-Copie et insertion 1 ligne
<code>Sub Copie_Ligne_Basse_Famille()
Dim n%
n = selection.Row
With ActiveSheet
[\\B_Copie_Ligne_Basse_Famille].Copy
.Range("A" & n).Resize(, 21).Insert xlShiftDown
End With
End Sub
2- Colonne B Nombre de MFC
Oui je suis d'accord pour limiter à 6 MFC, mais je n'arrive pas à écrire correctement plusieurs choix possibles dans "Mettre en forme le texte contenant..." : comment doit-on l'écrire ? :
F1. F6. F13
F1 ; F6 ; F13
"F1" ; "F6" ; "F13" j'ai fait plusieurs essais infructueux
2- Côté surprenant (LOL)
Cette base de données n'est qu'une "interface" avec la saisie sur un site de généalogie en ligne sur lequel je mets à jour seulement les données "définitives et sures", mon interface me permets d'une part de pouvoir faire un rapprochement entre les deux et surtout de gérer les individus dits "potentiels". Je l'ai crée il y a à peu près 10 ans... elle a donc bien évoluée. Certes je reconnais qu'elle est bien colorée (rire), mais c'est ainsi que je me suis habitué et j'arrive à me repérer plus facilement. Par contre je suis très intéressé d'avoir une vue extérieure, c'est comme cela que l'on s'améliore, quand vous dites "Saisies et affichages surprenant"
Merci encore pour l'aide
Gazpaschaud
Messages postés
14
Date d'inscription
lundi 12 décembre 2016
Statut
Membre
Dernière intervention
19 décembre 2016
17 déc. 2016 à 09:21
17 déc. 2016 à 09:21
Pour ce qui est ce la colonne B c'est bon j'ai trouvé le code pour valider les différentes propositions F1-F2-F3 etc...
Persévérance, persévérance...
Persévérance, persévérance...
14 déc. 2016 à 22:11
1- Quand on a un nombre important de MFC, et que l'on souhaite les gérer on s'aperçoit dans le menu gérer "MFC", que les MFC initialement installées se "dédoublent" à l'infini, à chaque fois que l'on insère une ligne dans la base de donnée particulièrement. Ma base de données s'allongent de jour en jour et cela devient à la longue ingérable on est obligé de tout effacer par colonne, et pour chaque colonne refaire les MFC....
2- Ce "dédoublement" des MFC a entraîné en ce qui me concerne un ralentissement énorme lorsque par exemple je voulais insérer une ligne pas moins de deux minutes pour que cela se fasse (j'ai chronométré) idem quand je saisissais dans les cellules concernées par les MFC même durée d'attente.
J'ai supprimé toutes mes MFC et tout est rentré dans l'ordre
Voilà donc les raisons de ma demande
J'ai fait un petit essai "bricolage en recopiant une VBA trouvée sur le site, cela fonctionne mais je suis incapable (totalement débutant) d'en écrire une aussi complexe.
Merci de l'aide par avance si cela est réalisable