obenlach
Messages postés9Date d'inscriptionvendredi 29 juin 2007StatutMembreDernière intervention27 août 2008
-
31 août 2007 à 12:01
obenlach
Messages postés9Date d'inscriptionvendredi 29 juin 2007StatutMembreDernière intervention27 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.
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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).
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 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
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 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
obenlach
Messages postés9Date d'inscriptionvendredi 29 juin 2007StatutMembreDernière intervention27 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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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.