Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Changer de "Toile de Fond"

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Rebonsoir,

J'aime bien que le fond de ma feuille soit en couleur (d'une part on ne voit plus les lignes, mais surtout cela fatigue moins la vue).

Il y aurait-il un moyen (avec une macro par exemple) pour modifier uniquement ce fond sans altérer pour autant les couleurs des cellules où se trouvent les données ?
 
Re : Changer de "Toile de Fond"

Bonsoir ou plutôt bonjour,

Personnellement j’aime bien alterner les couleurs des lignes d’un tableau, surtout quand celui-ci devient interminable ; cela permet essentiellement de mieux se repérer et de moins se planter lors d’une lecture, disons, en diagonale. Ne pas profiter des couleurs qu’offre Excel est bien dommage, d’autant plus que ça ne mange pas de pain…
Donc je me suis mis à l’œuvre, avec mes modestes connaissances et l’inde incontournable du forum, pour résoudre ce problème. Normalement, problème réglé au moyen d’une macro qui nous épargne des formats conditionnels que je n’apprécie pas outre mesure (c’est comme ça !) et qui sont infiniment moins souples que ce peut nous offrir une macro qui tient la route.
Pourquoi changer les couleurs ? Et pourquoi pas si on peut le faire en un tournemain !
J’ai choisi des couleurs particulièrement horribles pour que le pèlerin qui passerait par là ne souhaite qu’une seule chose : changer toutes ces couleurs !

Pour les tableaux, j’ai délibérément choisi des exemples qui reflètent les principaux cas de figures auxquels nous pouvons être confrontés. Dans l’immense majorité des cas, les tableaux ont un en-tête, et, c’est là que le bât blesse. Dans la 1ère feuille (BD), les tableaux n’ont pas d’en-tête, chose qui peut arriver. Quand je décide de changer la couleur de fond de cette feuille, c’est un peu bancal ; à savoir que la 1ère ligne de la feuille est elle aussi colorée, alors qu’elle ne le devrait pas l’être. Deux cellules conservent ad vitam aeternam leur couleur d’origine. Ce sont, ce que j’appellerais, des cellules « balises ». Pour modifier les couleurs des lignes j’ai besoin d’une balise, en fait 2 : une « SousZone » (= en-tête du tableau) et une cellule, disons, de départ qui est, en général, le 1er item de l’en-tête (tout est je pense bien expliqué dans le paramétrage de la macro). J’ai donc dû définir la « SousZone » en choisissant la 1ère ligne immédiatement au-dessus du tableau comme telle ; la cellule de départ (forcément incluse dans la « SousZone ») doit obligatoirement avoir un intitulé (suivant la logique de mon raisonnement pour résoudre ce problème), mais il ne faut pas qu’il soit pour autant visible (pour que ce soit bô). Je le rend donc « invisible » en lui donnant comme format « ;;; ». Et je pense que le problème tient à ce format, fort sympathique au demeurant.

David84, sur un autre fil que j’avais ouvert afin de résoudre un « problème » qui me tracassait concernant le présent fil, se demandait, en somme, pourquoi je voyais les choses d’une manière si compliquée. Premièrement voir compliqué cela stimule l’esprit et ouvre de nouveaux fils sur le forum qui peuvent intéresser certains. Ensuite les « gadgets » qu’offre soi-disant Excel dans chacune de ses nouvelles moutures ne me satisfont pas toujours pleinement. L’objectif d’une procédure est précisément de devenir autonome, et c’est seulement au travers des macros et autres fonctions que l’on y parvient. Pourquoi vouloir connaître le nombre de lignes (vides ou pas) d’un tableau non nommé ? Tout simplement pour éviter, par exemple, une colonne supplémentaire qui permettrait de faire un décompte des lignes, mais surtout pour avoir une variable en moins dans le paramétrage d’une macro. Et hop, une de moins ! Menos mal que job75 me soit venu en aide !

Personnellement je préfère conserver la feuille « Relookage » où l’on peut changer la couleur de fond de chaque feuille mais, maintenant, l’alternance des couleurs des lignes des colonnes. Les raccourcis clavier sont sympathiques pour des opérations très fréquentes (copier, coller…), mais, quoi qu’il en soit, on ne passe pas sa journée à modifier les couleurs de la feuille. D’autant plus que cela permet d’éventuellement bloquer cette feuille afin que seuls quelques initiés puissent avoir la primeur d’en modifier l’aspect…
Si nous en étions restés uniquement au changement de couleur de fond des feuilles, la solution de job75 consistant à cliquer sur un bouton « GO ! », afin qu’apparaisse la boîte de palette de couleurs, aurait parfaitement fait l’affaire. Avec les couleurs des lignes des tableaux, je pense que la meilleure solution serait de faire apparaître la boîte de palette de couleurs en cliquant sur la CELLULE concernée et, une fois la couleur élue, on validerait en cliquant sur « GO ! ». Pourquoi, demanderont certains, faire apparaître cette palette de couleurs alors que l’on peut y accéder directement à partir du menu ? Et bien parce que, une fois un programme achevé, je préfère travailler sur une feuille en mode « Plein Écran », car je n’ai alors plus rien à faire des barres d’outils et autres menus qui m’encombrent et bouffent ¼ de l’écran. Et en mode « Plein Écran » il faut alors bien trouver un moyen d’accéder à cette palette de couleurs si le besoin s’en fait sentir.

Buenas noches a todos. Yo me voy a noni noni.
 

Pièces jointes

Re : Changer de "Toile de Fond"

Bonjour Magic Doctor, le fil, le forum,

Eh bien dis donc Doctor !!!

Deux remarques :

1) Tu comptes utiliser ma fonction HTABLO. Pour que les XLDnautes s'y retrouvent, ce lien :

https://www.excel-downloads.com/threads/connaitre-le-nombre-de-lignes-dun-tableau.170594/

2) Avec le coloriage des lignes des tableaux, je crains que ton fichier ne devienne une usine à gaz 😛

Non pas que les macros soient très lourdes, mais parce que l'utilisateur aura du mal à s'y retrouver.

Je vais cependant étudier ton fichier.

A+
 
Re : Changer de "Toile de Fond"

Re,

Déjà pour répondre à ceci :


il suffit de définir la plage "Zone1" par =BD!$B$2:$J$30

Alors que tu l'as définie par =BD!$B$1:$J$30

Je m'étonne que tu n'aies pas vu ça.

A+
 
Dernière édition:
Re : Changer de "Toile de Fond"

Re,

Bon, la macro ColoreLignes dans Modulo1 est simple :

Code:
Sub ColoreLignes(n As Byte)
Dim h&, plage As Range, i&, plage1 As Range, coula, coulb
h = HTABLO(n)
If h = 0 Then Exit Sub
Set plage = Evaluate("SousZone" & n).Offset(1).Resize(h)
Set plage1 = plage.Rows(1)
For i = 3 To plage.Rows.Count
  If i Mod 2 Then Set plage1 = Union(plage1, plage.Rows(i))
Next
coula = Evaluate("CouleurLignes" & n & "a").Interior.Color
coulb = Evaluate("CouleurLignes" & n & "b").Interior.Color
plage.Interior.Color = coula
plage1.Interior.Color = coulb
plage.Parent.Activate
End Sub
Les cellules en colonne G de la feuille Relookage se colorent par cette macro évènementielle :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If IsError(Target.Name) Then Exit Sub
Application.Dialogs(xlDialogPatterns).Show
End Sub
Il suffit de cliquer sur une cellule en colonne G pour afficher la palette de couleur.

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Changer de "Toile de Fond"

Re,

Quelques améliorations :

1) Les procédures de coloriage des cellules en feuille Relookage ont été unifiées avec ceci :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If IsError(Target.Cells(1, 1).Name) Then Exit Sub
Application.Dialogs(xlDialogPatterns).Show
[A1].Select
End Sub
2) Les macros ColoreLignes et MiseEnFormeFond ont été un peu simplifiées.

Application.ScreenUpdating = False est définitivement inutile...

Version (2).

A+
 

Pièces jointes

Re : Changer de "Toile de Fond"

Bonsoir,

Quelques améliorations concernant le changement de la couleur de fond des feuilles du classeur.
Seulement il persiste un problème (mineur) quand on clique sur le bouton qui déclenche la macro qui modifie la couleur de fond de la feuille.
Tout est bien expliqué sur la feuille "Relookage".

Si job75 passe par là, j'en profite pour lui poser 2 questions.
Dans ton post #35 tu écris :
For i = 3 To plage.Rows.Count
If i Mod 2 Then Set plage1 = Union(plage1, plage.Rows(i))
Next

1/ Pourquoi écris=tu : "plage.Rows.Count" alors que "h" a manifestement la même valeur ?
Ne pourrait-on pas tout simplement écrire : For i = 3 To h ?

2/ Pourquoi fais-tu commencer "i" par 3 ?
 

Pièces jointes

Dernière édition:
Re : Changer de "Toile de Fond"

Bonjour Magic Doctor,

Je réponds à tes 2 questions avant d'aller voir ton fichier.

1. Oui, et note qu'au post #36 j'ai simplifié par For i = 3 To h Step 2

2. inutile de commencer i à 1 puisque j'ai préalablement défini plage1 par la ligne 1.

Edit : vu ton fichier, je pense que tu n'as pas étudié mon fichier du post #36.

La palette de couleur ne s'ouvre pas quand on clique sur les boutons.

A+
 
Dernière édition:
Re : Changer de "Toile de Fond"

Re,

Ton fichier en retour.

Vois les modification faites dans les diverses macros.

J'ai mis des commentaires signés job75 pour que tu t'y retrouves.

Pour ComboBox1_Change j'ai dû y aller au Karcher, en plus chez moi elle plantait Excel 😎

A+
 

Pièces jointes

Re : Changer de "Toile de Fond"

Re,

Je ne sais pas à quoi va servir la plage G7:G13 de Relookage.

Bien sûr G8 et G9 étant nommées, quand on les sélectionne la palette de couleurs s'ouvre.

Si tu veux qu'elle s'ouvre uniquement pour C5, il suffit d'écrire :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells(1, 1).Address <> [CouleurFond].Address Then Exit Sub
Application.Dialogs(xlDialogPatterns).Show
[A1].Select
End Sub
A+
 
Re : Changer de "Toile de Fond"

Re,

Je te propose cette version (2) avec le tableau des onglets modifié.

Les macros ComboBox1_Change et CommandButtonCF_Click ont été revues avec la variable n (Variant).

A+
 

Pièces jointes

Dernière édition:
Re : Changer de "Toile de Fond"

Bonjour Magic Doctor,

Une version (3) plus simple, avec utilisation très classique de la ComboBox.

Edit : j'ai mis une police de taille 22 sur la ComboBox.

Pour mieux centrer le texte verticalement.

A+
 

Pièces jointes

Dernière édition:
Re : Changer de "Toile de Fond"

Bonjour job75,

Je n'avais pas lu tes derniers messages, voilà pourquoi je n'avais pas répondu.
En effet, placer le ComboBox à gauche de la cellule est plus pertinent et allège la présentation (sans parler de la macro !).
J'adopterai donc ta solution.

Tes solutions m'auront fait connaître "Application.VLookup" qui semble bien pratique et évite de surcharger la feuille de cellules inutilement encombrantes.

Bonne soirée.
 
Re : Changer de "Toile de Fond"

Bonsoir,

Opiniâtre, je reviens sur le sujet.
Manifestement le changement de couleur de fond des feuilles semble bien marcher.
Reste à en finir avec les couleurs des lignes des tableaux.
Ça marche presque, si ce n'est qu'il y a une espèce d'interférence entre les procédures de 2 ComboBox.
Quand on choisit un item dans le 1er ComboBox, le résultat est quasi instantané, puis ça se met à calculer je ne sais quoi.
Quand on choisit un item dans le 2ème ComboBox, le résultat est lui aussi quasi instantané, puis, bizarrement, le 1er item de la liste s'impose...
J'ai essayé de bidouiller un court-circuitage des ComboBox sans succès.

Si, d'aventure, l'un, parmi vous, pouvait m'aider à solutionner ce problème.

Merci d'avance !
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…