Police d'affichage

Résolu
obenlach Messages postés 9 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 27 août 2008 - 31 août 2007 à 12:01
obenlach Messages postés 9 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 27 août 2008 - 31 août 2007 à 14:39
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

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
31 août 2007 à 13:51
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
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
31 août 2007 à 12:05
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

 
0
JM247L Messages postés 443 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 1 mars 2011 2
31 août 2007 à 12:18
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 août 2007 à 12:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
obenlach Messages postés 9 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 27 août 2008
31 août 2007 à 13:10
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 août 2007 à 13:41
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
0
obenlach Messages postés 9 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 27 août 2008
31 août 2007 à 14:39
c'est bon ça marche maintenant, je vous remercie tous pour votre aide
0
Rejoignez-nous