Police d'affichage [Résolu]

Signaler
Messages postés
9
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
27 août 2008
-
Messages postés
9
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
27 août 2008
-
Bonjour, je travail
sur une petite application sous VBA-Excel, et j’aimerais afficher dans une case
un Smiley (de police Wingdings) concaténer à  un des mots Bon, Mauvais, neutre selon nu critère.





Si j’affiche dans une
case le Smiley tout seul ça marche, à condition que la case soit sous format de
police Wingdings, et quand j’affiche le mot Bon par exemple et à coté le Smiley
ça ne marche pas, ça ne m’affiche que le mot Bon, le Smiley c’est un caractère équivalent
qui sort, parce que je suis en police Arial, et si je change le format de la cellule
en Wingdings, dans ce cas j’arrive à afficher le Smiley mais avec un tas de caractère
spéciaux qui remplacent  le mot Bon par
exemple.





Ce qu’il me faut c’est
une police intermédiaire qui peut m’afficher  la concaténation des du smiley et du mot Bon.






 






Je vous remercie d’avance
pour votre aide





Merci

7 réponses

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
Tu as plusieurs façons de voir pour changer la chaine de caractère en reprenant ce qu'a dit jrivet :

Tu sais que le caractère pour le msiley, c'est k. Tu as un mot écrit en plus du smiley, il te suffit de cehrcehr la position du caractère dans la chaine (avec InStr ou InStrRev si tu as plusieurs caractères K dans ton mot). Avec la position du caractère et comme on sait que la longueur est d'un caractère, tu peux faire la modification en dynamique : 

      dim PositionSmiley as integer

   Range("A1").Value = "Ceci est un test K"
   PositionSmiley = instrrev(Range( "A1" ).Value,"K",,vbTextCompare
   Range("A1").Characters(1, PositionSmiley-1).Font.Name = "Arial"
   Range("A1").Characters(PositionSmiley, 1).Font.Name = "Wingdings"

Et le tour est joué.

Pour le : sur plusieurs cellule, il suffit d'écrire une fonction en mettant en paramètre la cellule à modifier (tu peux mettre A1 dans un paramètre de type String ou carrément une cellule dans un type Range, ça dépend de tes besoins).

Molenn
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Je ne sais pas si cela est faisable, mais essaye de voir si par code le format de ta cellule quand tu écris le mot bon, et la basculer aprés en  Wingdings

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Salut,
Fait insertion caractère spéciaux, sélectionne le caractère que tu veux
Il sera envoyé sous format de caractère en court dans la cellule
Sélectionne le caractère est change pour Winding par exemple
Le reste de la cellule sera toujours en format original
JML
 Partageons notre savoir et nos acquis
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Enregistreur de macro quand tu nous tiens.....

   Range("A1").Value = "Bon K"
   Range("A1").Characters(1, 4).Font.Name = "Arial"
   Range("A1").Characters(5, 1).Font.Name = "Wingdings", ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
9
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
27 août 2008

merci les amis pour vos réponses, mais ça ne marche toujours pas.
pour la réponse de [auteurdetail.aspx?ID=1017721 JM247L], ça ne marchera pas parce qu'il faut que ça soit automatique, je ne veux pas qu'à chaque fois j'insere le caractère spécial ..., en plus l'affichage est dynamique et se fait selon une valeur de chiffres (si le chiffre >0 j'affiche , si chiffre = 0 j'affiche et si chiffre <0 j'affiche )

pour [auteurdetail.aspx?ID=89254 jrivet], la réponse est bcp plus efficace, mais comme je l'ai dis avant, il faut que ça soit dynamique et sur plusieurs cellule, en plus je n'ai pas la taille de la chaine de caractère aue je dois afficher, "Bon" ce n'etait qu'un exemple
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Si les deux mots (Bon et le smiley) son séparer par un espace, Instr te donneras la position de l'espace (le 4 dans mon code) et donc rien ne t'empeche de rendre tout cela dynamique.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
9
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
27 août 2008

c'est bon ça marche maintenant, je vous remercie tous pour votre aide