[RESOLU]Afficher boite de dialogues : Autres couleurs

  • Initiateur de la discussion Initiateur de la discussion Compte Supprimé 979
  • Date de début Date de début

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 !

C

Compte Supprimé 979

Guest
Bonsoir à toutes et à tous 😉

Est-ce que quelqu'un connait la syntaxe à utiliser en VBA pour afficher
la boite de dialogue de l'outil : Couleur de remplissage -> Autres couleurs

Je souhaite récupérer la valeur de la couleur sélectionner pour l'appliquer à une cellule

Voir boite de dialogue ci-jointe

D'avance merci
 

Pièces jointes

  • ScreenShot153.jpg
    ScreenShot153.jpg
    23.1 KB · Affichages: 170
Dernière modification par un modérateur:
Re : Afficher boite de dialogues : Autres couleurs

Bonsoir Fo_rum 😉

Merci à toi pour cette réponse, mais non cela ne me convient pas 😱

De plus je souhaite pouvoir récupérer la valeur de la couleur sélectionnée

Edit : je viens de trouver sur l'excellent site de notre amie Misange
Ce lien n'existe plus

la syntaxe est :
Code:
a = Application.Dialogs(xlDialogEditColor).Show(1, 0, 0, 0)

Sauf que cela ne me retourne pas la valeur de la couleur ... 🙁

A+
 
Dernière modification par un modérateur:
Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Bonsoir Bruno, Fo_rum,

@ Bruno,

La boîte de dialogue que tu mets en exemple s'affiche comme te l'a suggéré Fo_rum, à une nuance près :

Code:
c = Application.Dialogs(xlDialogEditColor).Show(1, 0, 0, 0)
Toutefois, tu auras beaucoup de mal à récupérer la valeur de la couleur choisie. Si tu y tiens vraiment, une recherche sur la toile te guidera sur des sites comme "Developpez.com" ou "Excelabo.net" pour ne citer que les plus connus.

Pour ma part, je me contenterais d'une boîte plus rudimentaire mais bien plus simple d'utilisation (comme tu pourras le constater sur le fichier ci-joint). Par contre, il faut au préalable charger le contrôle "Microsoft Common Dialog Control" et l'insérer soit sur la feuille de calcul, soit sur un UF.

Espérant t'avoir aidé.

Cordialement.
 

Pièces jointes

Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Bonsoir Bruno, Fo_rum,
j'ai trouvé sur le site Ce lien n'existe plus ce code :
Code:
Private Sub CmdPolice()
 Dim Y As Dialog
  Range("F1").Select
  Set Y = Application.Dialogs(xlDialogEditColor)
  Y.Show 51
 Selection.Font.ColorIndex = 51
 End Sub
A+
Edit : bonsoir papou-net
 
Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Salut Papou-net

tu auras beaucoup de mal à récupérer la valeur de la couleur choisie. Si tu y tiens vraiment, une recherche sur la toile te guidera sur des sites comme "Developpez.com" ou "Excelabo.net" pour ne citer que les plus connus.
Effectivement je n'avais pas encore eu le temps de tester, mais "a" ne me retourne que -1
C'est bien la peine de mettre une variable devant ...

Pour ma part, je me contenterais d'une boîte plus rudimentaire mais bien plus simple d'utilisation (comme tu pourras le constater sur le fichier ci-joint). Par contre, il faut au préalable charger le contrôle "Microsoft Common Dialog Control" et l'insérer soit sur la feuille de calcul, soit sur un UsF
Désolé, mais j'ai un problème avec ton fichier
Message d'erreur : les informations de licences de ce composant sont introuvables ... Etc

Donc ça ne fonctionne absolument pas 🙁

a+
 
Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Salut David84

j'ai trouvé sur le site Ce lien n'existe plus ce code :
Code:
Private Sub CmdPolice()
 Dim Y As Dialog
  Range("F1").Select
  Set Y = Application.Dialogs(xlDialogEditColor)
  Y.Show 51
 Selection.Font.ColorIndex = 51
 End Sub
Heuuu, ben non pas plus apparemment, d'ailleurs je ne comprends pas le code

Pourquoi affecter la couleur 51 alors que l'on demande d'en sélectionner une !?

A+
 
Re : Afficher boite de dialogues : Autres couleurs

Bonjour à tous

Tu peux tester cette macro:

Code:
Sub Couleur_XlDialogEditColor()
Application.Dialogs(xlDialogEditColor).Show True
End Sub

En effet, c'est pas très facile à récupérer la couleur 😱.

Sinon, j'ai trouvé cela ici:
Display Color Palette To Choose From

Code:
Sub test3()
For i = 1 To 10
Range("a1").Interior.ColorIndex = i: Rem For demo purpose
Application.Dialogs(xlDialogEditColor).Show arg1:=i
Next
End Sub

J'ai aussi trouvé cela ici:
How to refer to Custom Colors' Palette - Microsoft Answers
Code:
Sub test4()
oldcolor = ActiveWorkbook.Colors(1)
If Application.Dialogs(xlDialogEditColor).Show(1) = True Then
For Each x In Selection
x.Font.Color = ActiveWorkbook.Colors(1)
Next
ActiveWorkbook.Colors(1) = oldcolor
End If
End Sub

Ou voir ce fichier (Attention, c'est technique 😕):
 

Pièces jointes

Dernière édition:
Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Désolé, mais j'ai un problème avec ton fichier
Message d'erreur : les informations de licences de ce composant sont introuvables ... Etc

RE Bruno,

As-tu, comme je te l'ai écrit, chargé le contrôle supplémentaire "Microsoft Common Dialog Control" dans les contrôles supplémentaires VBA ?

Parce que chez moi, ça fonctionne parfaitement comme tu peux le voir sur la copie écran ci-dessous.

Sinon, la solution du fichier proposé par Michel (que je salue au passage) répond exactement à ta demande initiale mais s'avère plus lourde.

Amicalement.
 

Pièces jointes

  • BoiteDialogCouleurs.jpg
    BoiteDialogCouleurs.jpg
    71.8 KB · Affichages: 152
Dernière édition:
Re : Afficher boite de dialogues : Autres couleurs

Re
Salut David84

Envoyé par david84
j'ai trouvé sur le site Excelabo ce code :
Code :
Private Sub CmdPolice()
Dim Y As Dialog
Range("F1").Select
Set Y = Application.Dialogs(xlDialogEditColor)
Y.Show 51
Selection.Font.ColorIndex = 51
End Sub
Heuuu, ben non pas plus apparemment, d'ailleurs je ne comprends pas le code

Pourquoi affecter la couleur 51 alors que l'on demande d'en sélectionner une !?
Ce n'est qu'un exemple récupéré tel quel Bruno. Il faut voir ensuite si l'on peut l'adapter à ce que tu veux faire.
Si tu appelles cette macro via une autre, je pense que tu peux placer la couleur à récupérer en argument.
Mais après, il faut voir ta demande dans le détail.
A+
 
Re : Afficher boite de dialogues : Autres couleurs

Bonsoir le Fil 😉

Michel, merci infiniment Olivier13_merci.gif
Ton Test4 ou ton fichier répondent exactement à ce que je souhaitais notre350z_yahoo.gif

Papou-net :
As-tu, comme je te l'ai écrit, chargé le contrôle supplémentaire "Microsoft Common Dialog Control" dans les contrôles supplémentaires VBA ?

Oui, tout à fait, cela ne fonctionne ni sur XP Office 2003/2010, ni sur Seven Office 2003/2010
Toujours le même message 😉 en tout cas merci quand mème

Merci également à David84 😉

Au plaisir
 

Pièces jointes

  • notre350z_yahoo.gif
    notre350z_yahoo.gif
    7.4 KB · Affichages: 198
  • notre350z_yahoo.gif
    notre350z_yahoo.gif
    7.4 KB · Affichages: 195
Re : Afficher boite de dialogues : Autres couleurs

Bonsoir,

étant donné que tu avais inscrit "Résolu", je n'ai plus cherché😉.
Je plaisante bien-sûr car je suis fort aise de voir de plus en plus souvent ce mot et comme je le disais à certains détracteurs, il ne force pas à arrêter la discussion (la preuve) et je pense que tu aurais pu le laisser. Mais après tout chacun dispose de son bon vouloir à sa guise !
 
Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Salut Fo_rum 😉

En fait le problème est que je pensais avoir trouvé la solution, en fait ce n'était pas le cas.
Du coup j'ai retiré le [RESOLU]

Et maintenant que la solution est réellement trouvée, je le remet 😉

Au plaisir
 
Re : [RESOLU]Afficher boite de dialogues : Autres couleurs

Bonjour à tous,
Salut Bruno,

En fait le problème est que je pensais avoir trouvé la solution, en fait ce n'était pas le cas.
Du coup j'ai retiré le [RESOLU]

Et maintenant que la solution est réellement trouvée, je le remet 😉

Ta réponse me rassure car je pensais que l'avancée en âge accélérait la progression de ma sénilité.
Du coup, j'avais eu un doute concernant l'opportunité du MP que je t"avais adressé.

Amicalement.
 
re
Bonjour juste en passant
la discussion est ancienne mais toujours pas résolu visiblement
si tu a la possibilité par vba de rediriger l’exécution du bouton remplissage
ou alors en ajoutant un bouton couleur dans le menu contextuel dans le menu contextuel "Cell"
je peux te donner la solution
1675776890510.png


exemple dans le menu "Cell"
VB:
'palette coleur perso  dans le menu contextuel "Cell"
'auteur patricktoulon
'***************************************************************
'Dans le module de la feuille

'Option Explicit
    'Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      'addBtcouleurMenuCell
    'End Sub


'!!!!!  ou le right click dans le module thisworkbook avec une classe event intra module thisworkbook!!!!!

'Option Explicit
'Public WithEvents feuille As Worksheet

   'Private Sub Workbook_Open()
     'Set feuille = ThisWorkbook.Sheets(1)
   'End Sub

   'Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     'Set feuille = Sh
   'End Sub

   'Private Sub feuille_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     'addBtcouleurMenuCell
   'End Sub

'***************************************************************

'dans un module standard

Sub addBtcouleurMenuCell()
    Dim bt As Object
    With CommandBars("Cell")
       .Reset
       Set bt = .Controls.Add(msoControlButton, , , 1, True)
        With bt
            .Caption = "Couleur +"
            .FaceId = 962
            .OnAction = "autreCouleur"
        End With
     End With

End Sub
Sub autrecouleur()
    Dim OldCoul&
    OldCoul = ThisWorkbook.Colors(1)
    If Application.Dialogs(xlDialogEditColor).Show(1, 0, 0, 0) = True Then
        ActiveCell.Interior.Color = ActiveWorkbook.Colors(1)
        
        'si ta palette est d'origine(n'a pas déjà été modifiée )
        ThisWorkbook.ResetColors
        
        'si la palette  a déjà été modifiée (que les 56 couleurs ne sont pas celles d'origine)
        'ThisWorkbook.Colors(1) = OldCoul
    End If
Application.CommandBars("Cell").Reset ' le bouton s'auto detruit
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
414
Réponses
1
Affichages
372
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
588
Themax
T
Réponses
4
Affichages
318
Retour