IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

Importer la palette de couleurs d'un classeur Excel [XL-2016]


Sujet :

Conception

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut Importer la palette de couleurs d'un classeur Excel
    Bonjour,

    J'ai des classeurs conçus avec à partir d'un classeur Excel dont la palette de couleurs est différente.

    Je ne sais si c'est parce que la palette de ce classeur d'origine a été modifiée ou parce qu'il a été conçu avec une ancienne version d'Excel mais lorsque je copie une feuille de ce classeur vers un nouveau classeur, les couleurs sont totalement différentes du fait que la palette est différente.

    Existe-t-il un moyen simple d'importer ou copier la palette d'un classeur vers un autre classeur ?

    Merci pour votre aide

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut

    Un objet Workbook possède la propriété Colors qui représente sa palette de couleurs en lecture/Ecriture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClasseurCible.Colors = ClasseurSource.Colors
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Merci et comment puis-je utiliser ce code ?

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    1. Tu peux le faire via les options d'Excel, sans besoin de VBA. Les classeurs Source et Cible doivent être ouverts. Tu actives la cible, puis tu vas dans les options et tu récupères le jeu de couleurs de Source.

    Nom : 2021-04-22_133202.png
Affichages : 1572
Taille : 124,1 Ko


    2. Par VBA, si les deux classeurs sont ouverts, tu peux le faire via la fenêtre d'exécution. La récupération des name est juste là pour vérifier quel classeur est la source:

    Nom : 2021-04-22_133519.png
Affichages : 1488
Taille : 3,4 Ko


    3. Par procédure VBA, si tu veux par exemple traiter plusieurs classeurs "à la chaine" sur base d'un tableau structuré contenant les noms complets des classeurs concernés (appelé t_Fichiers dans mon exemple et muni d'une colonne nommée Classeur) (Non testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TransferColors()
      Dim r As Range
      Dim Target As Workbook
     
      For Each r In Range("t_Fichiers[Classeur]")
        Set Target = Workbooks.Open(r.Value)
        Target.Colors = ThisWorkbook.Colors
        Target.Close True
      Next r
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Merci beaucoup

    J'ai du zapper quelque chose la 1ère méthode via les options ne change pas la palette du classeur cible

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Chez moi, ça fonctionne bien. On importe les couleurs du classeur que l'on choisit dans la liste dans le classeur actif (celui à partir duquel on a ouvert les options)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Bizarre que cela ne fonctionne pas chez moi. Après avoir sélectionné l'autre classeur je clique sur "ok" (pas de bouton "appliquer") et rien ne change

    Merci tout de même

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    J'ai une 365, mais je ne vois pas ce que cela changerait.

    Voilà la palette du classeur 11. En haut à gauche, j'ai remplacé le noir par du fushia.

    Nom : 2021-04-22_145950.png
Affichages : 1517
Taille : 137,1 Ko


    Voici la palette du classeur12 avant récupération de celle du classeur 11. Le noir est au dessus à gauche:

    Nom : 2021-04-22_150032.png
Affichages : 1512
Taille : 135,8 Ko

    après avoir sélectionné le 11 dans la liste des classeurs ouverts, le 12 a bien récupéré la palette du 11 et lorsque je fais ok, je valide cette modification

    Nom : 2021-04-22_150055.png
Affichages : 1513
Taille : 127,9 Ko


    Bizarre que cela ne fonctionne pas de ton côté

    si un lecteur peut vérifier et préciser sa version, ce serait sympa
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Oui c'est bizarre

    C'est bien ce que j'ai fait. Les palettes sont très différentes. Je me demande pourquoi (classeur créé dans un vieille version?)

    La palette du classeur source
    Nom : source Capture d’écran 2021-04-22 151619.jpg
Affichages : 1495
Taille : 33,5 Ko

    La palette du classeur cible
    Nom : cible - Capture d’écran 2021-04-22 151655.jpg
Affichages : 1507
Taille : 24,9 Ko

    C'est gênant surtout quand je copie une feuille d'un classeur avec le 1er type de palette vers un nouveau classeur. Du coup toutes les couleurs sont remplacées. J'ai appris à vivre avec mais en gardant la même palette ce serait mieux. Tant pis si mystérieusement cela na marche pas chez moi. J'ai Office 2016

    Ou, comme j'imagine que le classeur mémorise la place de la couleur dans la palette, il faudrait une commande qui permette de garder la nouvelle palette en "convertissant" ces index associés pour que le classeur conserve ses couleurs tout en adoptant la nouvelle palette, mais c'est une autre histoire ...

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Voilà un code qui transfère les couleurs d'une palette à l'autre une par une...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
      Dim Source As Workbook
      Dim Target As Workbook
      Dim i As Long
     
      Set Source = Workbooks.Open("...")
      Set Target = Workbooks.Open("...")
     
      For i = 1 To 56
        Target.Colors(i) = Source.Colors(i)
      Next i
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Je pense avoir compris (en partie) le problème

    Ce que recopie la commande est une autre palette identique pour les classeurs source et cible :
    Nom : source.jpg
Affichages : 1476
Taille : 14,7 Ko

    mais comme quand je sélectionne une couleur je passe par les palettes du menu Format de cellule/remplissage, qui sont différentes et conforme à mon post précédent, cela ne change rien aux couleurs utilisées dans la feuille.

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Peut-être veux-tu parler des THEMES? Onglet Mise en page\Thèmes... Si tu choisis une couleur de thème, tu choisis en fait un index de couleur dans le thème actif, de sorte que si tu changes de thème, tu gardes l'index de la couleur dans le nouveau thème.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Je parle de la palette à laquelle on accède par un clic droit Format de cellule / remplissage

    je n'ai jamais touché aux thèmes, mais viens de le faire

    Je viens de vérifier : je suis avec le thème office pour tous les classeurs. Par contre alors que le thème office est bien sélectionné pour le classeur source, si je le sélectionne à nouveau j'obtiens les mêmes couleurs que pour le classeur cible. Comme si le classeur source était sur une version modifiée du thème pour ce classeur uniquement (et pour les classeurs créés par copie du fichier xlsx)

    Ce sont donc bien les thèmes qui affectent la palette par j'accède par un clic droit Format de cellule / remplissage, mais la palette du classeur a dû être modifiée à l'origine pour le classeur en cause, sans que le thème lui-même soit affecté (et bien qu'il soit toujours sélectionné)

    Si j'enregistre le thème personnalisé (pas par moi mais par la personne au bureau dont j'ai utilisé un classeur Excel qui m'a servi à créer tous les classeurs du même type) alors je peux appliquer ce thème au classeur cible pour lequel je cherchais à importer une palette, alors qu'il s'agissait du thème ;-)

    Je commence peut-être à comprendre

    Du coup je me demande ce qu'impacte la copie de palette pour laquelle tu m'as donné la manip.

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Je ne suis pas un grand Picasso d'Excel ni de la suite Office, mais je serais tenté de dire que ça date d'avant Excel 2007 lorsque les thèmes n'existaient pas et que ça a été conservé depuis. ayant eu le problème similaire au tien il y a quelques années, j'ai connecté sur la palette du classeur pour ton problème avant de penser au thème...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Mais puisqu'il y a cette couche "thème", à quoi sert la palette du classeur à laquelle on accède par le menu options ?

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    A mon avis, pour des questions de compatibilité. Si tu ouvres un XLS dans lequel tu pilotes les couleurs de la palette dans une version récente, il faut que le code continue à fonctionner.

    Mais je m'avance sur un terrain que je maîtrise moins, donc je pense que c'est pour cette raison, mais il y a peut-être une utilisation pertinente de cette palette sur les nouvelles versions
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Ok encore merci en tous cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 25/07/2019, 21h48
  2. [VBA-E] boite de dialogue palette de couleur
    Par virginie2 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 02/04/2017, 15h20
  3. Réponses: 2
    Dernier message: 14/06/2005, 14h36
  4. [MFC] Utilisation d'une palette de couleur
    Par Kevgeii dans le forum MFC
    Réponses: 2
    Dernier message: 01/06/2005, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo