[VBA EXCEL] FaceId/icone [Résolu]

Signaler
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012
-
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
-
Bonjour,

J'espère être au bon endroit. (pardon sinon)

Je travaille en vb sous excel et je souhaiterais utiliser les icones que l'on peut trouver dans le format d'une cellule > motifs > ombrage de cellule > couleur.

Comment puis-je utiliser cette icone (ou son FaceId, pas trouvé sur le net) déjà présente dans excel pour m'en servir dans un menu contextuel ?

Sachant que ces icones existent et je ne souhaite pas les personnaliser ni même créer de fichiers images supplémentaires.

Je suis à court d'idées.

merci à tous,

40 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
sera alors un carré d'une des 10 couleurs disponibles

Et qu'est qui t'en empêche donc ?
Attribue-lui la couleur de ton choix ! utilise au besoin la fonction RGB ===>> RGB(r,g,b) où r, g et b sont les valeurs de ton choix, chacune entre 0 et 255 !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Bonjour,

visiblement nous ne nous comprenons pas ucfoutu... Pourrais-tu arrêter de répondre à coté de mes questions ? merci...

Un .FaceId n'accepte qu'un nombre entre [0-10000] qui sont des icones prédéfinies. Parmis elles, il existe 10 icones de couleur parmi les 40 apparaissant dans cette fameuse boite de dialogue. Mais les 30 restantes sont forcément définies quelque part...

merci à pivert pour ses recherches fructueuses...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
merci à pivert pour ses recherches fructueuses...

Si "fructueuses", alors a rapporté ses "fruits", donc ===>> tag "réponse acceptée" et terminé pour ce sujet.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Après analyse du code fourni par pivert, je me rends compte que la structure de mon menu contextuel est quasi identique... sniff...

Pensez-vous qu'il soit toutes fois possible de créer une icone (de lui attribuer ensuite un FaceId) en dupliquant une cellule paramétrée dans une de mes feuilles excel ?

merci.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
snif, hein ...
Tu devrais vraiment tout relire, adminatethiq
Une dernière fois : ce ne sont ni des faceId, ni des icônes, mais des contrôles (shapes ou labels, je n'en sais rien puisque par le concepteur de cette fenêtre) mis dans une fenêtre de type boîte de dialogue.
La couleur qu'ils affichent (chacun d'eux) est celle de la palette
Si aucune palette personnalisée n'a été définie pour un classeur, c'est la palette par défaut qui est appliquée.
Cette palette peut être personnalisée pour chaque classeur (différente). Et c'est bien la meilleure preuve de ce qu'il ne s'agit ni de faceId ni d'icône, mais tout simplements de petits contrôles dont la couleur est modifiable (si on veutr personnaliser la palette d'un classeur).

Ouvre ton aide VBA sur ActiveWorkbook.Colors et lis donc ===>> tu commenceras probablement à comprendre ce qu'il y a derrière.

Un dernier point : c'est à l'ouverture d'un classeur (après l'avoir enregistré), que les modifications apportées se "manifestent", bien évidemment

voilà voilou...

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour, Le Pivert,
Détrompe-toi :
Il est tout-à-fait possible de créer un faceid et de lui attribuer un N°
Mais c'est là un chemin bien tortueux en lieu et place de ce qui est fort simple à mettre en oeuvre (pourquoi passer par un faceid, d'ailleurs, pour ce qu'il veut faire ? That's the question ! )
Mais il s'entête et reste sur son idée, commençant presque à s'énerver, à me demander de ne plus répondre ... alors ===>>






____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
Si il est possible de créer un FaceID personnalisé. Je pense qu'il ne fonctionnera que sur sa machine???????????
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Ben non, le Pivert ===>>
Il lui suffit de le créer au Workbook_open
La question est toutefois : comment le créer ?
Et la réponse est ===>>> à l'aide ... d'un contrôle (image ou label)...
Elle est bien bonne, alors ...
Créer un faceid à l'aide d'un contrôle label, pour afficher quoi ? un faceid créé à partir d'un label au lieu d'afficher directement (et pour moins cher) un... label (celui ayant servi à la création du faceid) ...
Quand je parlais de chemin "tortueux" ...
Amusante, cette discussion.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Et une chose doit être très claire :
- ou il propose (et il n'échappera pas à la boîte de dialogue à créer) un choix de couleurs
- ou il impose une seule couleur (et n'a alors besoin ni de label, ni de faceid, ni de boîte de dialogue, ni de rien d'autre) .... juste le code d'application de cette couleur au contrôle ou à la cellule dotée de son menu contextuel



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Je ne désire qu'une chose, pouvoir par n'importe quel moyen afficher un carré de couleur dans la colonne de gauche d'un menu contextuel.

exemple:



à la place de la paire de ciseaux: un carré vert...

possible ou non ? si oui comment ?

merci d'avance.
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
J'ai cherché et j'ai trouvé!!!!!!!

Je reprends mon exemple du site indiqué plus haut.
Tout d'abord tu inseres une image en A1 Feuil1
Ensuite tu cherches dans l'exemple ce passage: et tu le rectifie comme indiqué:

  With MySubMenu
        .Caption = "Case Menu"
        .Tag = "My_Cell_Control_Tag"
 ThisWorkbook.Sheets("Feuil1").Shapes("Image 1").Copy
        With .Controls.Add(Type:=msoControlButton)
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "UpperMacro"
             .PasteFace
           ' .FaceId = 100
            .Caption = "Upper Case"
        End With



Le Pivert
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
J'ai appuyé sur envoyé, je n'avais pas fini. Ensuite tu supprimes ton image de la feuille et tu passes à une autre images etc.
Si tu ny arrives pas, poste ton code. Mais je pense que tu n'auras aucune difficulté.

@+Le Pivert
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
Petite précision si tu crées ton menu contextuel à l'ouverture du classeur, il ne faut pas supprimé l'image. A ce moment là tu la mets sur une autre feuille.
Voici le code pour copier une cellule dans la quelle tu auras mis ta couleur et redimensionnée en carré, comme l'avait spécifié UCFOUTU dans un précédent message:

 ThisWorkbook.Sheets("Feuil1").Range("A1").Copy
        With .Controls.Add(Type:=msoControlButton)
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "LowerMacro"
             .PasteFace
            '.FaceId = 91
            .Caption = "Lower Case"
        End With


même condition que pour l'image il faut le garder si macro à l'ouverture
@+Le Pivert
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Bonjour,

Le .copy .paste fonctionne bien pour couleur/motif/bordure d'une cellule, cependant si du texte se trouve dans la cellule, il n'apparait pas dans le menu contextuel...

Que me conseillez-vous ?

merci.
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
Le plus simple: tu crées une image avec le texte dessus avec un logiciel de retouche image. Ensuite tu n'as qu'à copié l'image comme dans le 1er exemple que je t'ai donné. Il ne faut pas que tu supprimes les images qui ont été collées. C'est une erreur de ma part de t'avoir dit cela.

@+Le Pivert
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
Après vérification, chez moi (Excel 2003)la cellule est entièrement copié: couleur et texte. Mais l'icone est tellement petite que l'on distingue très mal le texte. Fais un essai en ne mettant que 2 lettres, tu verras le résultat. Avec des couleurs contrastées (fond jaune, texte bleu foncé).
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012

Je vais opter pour les copies d'images...

Toujours concernant les FaceId, sauriez-vous quelle action correspond au FaceId 9335 (sorte de cellule coupée en deux par une diagonale montante et évidée dans sa partie supérieure) ?

merci.
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
Pour connaitre la signification de cette icône, tu fais Outils- Personnaliser- Commande et tu les passes toutes en revue. Pour ma part j'ai chercher sur Excel 2003, je ne l'ai pas trouvé. Elle existe certainement sur 2007 ou 2010.
Messages postés
16
Date d'inscription
lundi 13 février 2012
Statut
Membre
Dernière intervention
16 février 2012

J'ai inséré toutes mes images dans ma feuille, désormais je souhaiterais connaitre le nom qui leur a été attribué.

Il n'existe pas de propriété des images... Le nom d'origine de chaque image ne fonctionne pas...

ActiveSheet.Shapes("toto.bmp").Copy provoque une erreur
ActiveSheet.Shapes("Image n").Copy idem

Pourriez-vous m'aider ?

merci.
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
125
Dans l'exemple que je t'ai donné, tu as l'explication:
ThisWorkbook.Sheets("Feuil1").Shapes("Image 1").Copy

Image2, Image3 etc.

Sur ta feuille elles sont reconnues par ordre d'entrée.