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

Microsoft 365 Boite de dialogue

tbft

XLDnaute Accro
Bonjour

je suis à la recherche de la boite de dialogue qui permet de changer la couleur des onglets des folio.
J'ai trouvé comment afficher par exemple la couleur de fond d'une cellule.
VB:
Application.Dialogs(xlDialogPatterns).Show

Avez-vous une idée?
Je ne joint pas de fichier car il serait vide....

D'avance merci pour votre aide.
 
Solution
bonjour
il y a bien une dialogue qui est recupérable sans passer par les dialogues patterns des cells

ci dessous une demo
VB:
'*******************************************************
'        fonction palette couleur dialogue perso
'version 1.2
'date version 11/06/2016
'auteur patricktoulon sur developpez.com
'affichage couleur personnalisable  ou couleur standard
'*********************************************
Function my_color(Optional X As Variant = "Getcouleur", Optional perso As String = 0)
    Dim lcolor As Long, x1&, x2&, x3&
    If perso > 0 Then x1 = 255: x2 = 10: x3 = 5
    If Application.Dialogs(xlDialogEditColor).Show(1, x1, x2, x3) = True Then
         my_color = ActiveWorkbook.Colors(1)
     End If...

vgendron

XLDnaute Barbatruc
sur le forum, il y a aussi cette discussion..
de ce que j'en comprend.. ouvrir la boite de dialogue.. facile.. mais récuperer la couleur..
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il y a aussi des possibilités offertes par ce classeur, par palettes ou 3 UFm de changement de caractéristiques (commandes MenuCouleurs et AfficherEAF)
AfficherEAF ne se prête malheureusement qu'à la modification de Selection.Interior.Color
MenuCouleurs a un plus large éventail de possibilités. C'est sûr que j'aimerais bien pouvoir remplacer tout dialogue standard mis en œuvre par Excel ou VBA par un dispositif de mon crû.
Je n'aime rien de tout ça :

Par contre ça, oui :

Sans compter la possible capture d'un pixel.
 

patricktoulon

XLDnaute Barbatruc
bonjour
il y a bien une dialogue qui est recupérable sans passer par les dialogues patterns des cells

ci dessous une demo
VB:
'*******************************************************
'        fonction palette couleur dialogue perso
'version 1.2
'date version 11/06/2016
'auteur patricktoulon sur developpez.com
'affichage couleur personnalisable  ou couleur standard
'*********************************************
Function my_color(Optional X As Variant = "Getcouleur", Optional perso As String = 0)
    Dim lcolor As Long, x1&, x2&, x3&
    If perso > 0 Then x1 = 255: x2 = 10: x3 = 5
    If Application.Dialogs(xlDialogEditColor).Show(1, x1, x2, x3) = True Then
         my_color = ActiveWorkbook.Colors(1)
     End If
ThisWorkbook.ResetColors
End Function


' exemple
Sub test_out_off_context1()    'personalisée
    ActiveWorkbook.Sheets(1).Tab.Color = my_color(perso:=1)
End Sub

Sub test_out_off_context2()    'standard
     ActiveWorkbook.Sheets(1).Tab.Color = my_color
End Sub
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
@Dranreb : merci pour ton approche
@patricktoulon : ce n'est pas ce que je recherchai mais cela fait le boulot.
Donc je vous dis un grand merci.
re
a bon c'est pas ce que tu cherchais?
ben moi je lis
je suis à la recherche de la boite de dialogue qui permet de changer la couleur des onglets des folio.
et puis ceci
J'ai vue cette page mais je recherche (si elle existe) une boite de dialogue programmé par microsoft...
et bien c'est exactement ce que je t'ai donné
c'est a dire
1° le dialog xlDialogEditColor indépendant de tout autre object à l'inverse certaines qui ont été proposées ici et en plus c'est natif de office donc "microsoft"

2° utilisation du return du dialog pour colorer les tab des onglets


maintenant il est vrai que cette fonction je l'ai codé pour moi et adapté maladroitement pour toi : tout du moins je n'ai pas fait le boulot a fond
en effet on utilise lâ couleur index 1 en la modifiant avec la palette couleur (personnalisée ou pas) et je fait un reset colors
ce qui implique que la palette des 56 couleurs sont remis a l’initial
somme toute c'est pas un problème SAUF !!! si tu utilise déjà une palette de couleur personnalisée
je corrige donc cette bevue en ne reinitialisant que la couleur(index 1) qui a été modifiée
et par la même occasion je nettoie le code de ce que je n'avais pas nettoyé

et pour le coup je lui donne un nom qui est sans équivoque
la fonction
VB:
Function WorksheetTabColorDialog(Optional perso As Boolean = False)
    Dim lcolor As Long, x1&, x2&, x3&, Q&
    Q = ActiveWorkbook.Colors(1)
    If perso Then x1 = 255: x2 = 10: x3 = 5
    If Application.Dialogs(xlDialogEditColor).Show(1, x1, x2, x3) = True Then
        WorksheetTabColorDialog = ActiveWorkbook.Colors(1)
    End If
    ActiveWorkbook.Colors(1) = Q
End Function

voilà là le boulot est fait correctement
 
Dernière édition:

tbft

XLDnaute Accro
Re

En fait, je cherchais à afficher la boite de dialogue de base pour le changement de couleur des onglets histoire de ne pas perturber les autres utilisateur.
Mais ta solution me convient. je l'ai testé ce matin.
Je pense que je vais l'utiliser mais pas uniquement pour ce qu'elle avait été prévue à la base..

Normalement sauf erreur du site, j'ai signalé votre message comme la solution....
 

patricktoulon

XLDnaute Barbatruc
re
la boite utilisée en natif dans le menu c'est exactement la même quand on click sur "autres couleurs"
d’ailleurs pour t'en convaincre il suffit de déclencher le bouton du menu
VB:
Sub testq()
 CommandBars("ply").Controls(7).Execute
End Sub
et la bien evidement tu gère le return false si click sur annuler dans le dialog tout du moins c'est l'application qui le gere automatiquement

bien venu dans le coté obscure
 

Discussions similaires

Réponses
5
Affichages
272
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…