Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 2012
-
7 juil. 2009 à 16:36
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
16 juil. 2009 à 09:03
Bien le bonjour,
me revoici avec une question dont la réponse doit être simple.
1) j'instancie un objet Excel , j'ouvre un fichier Workbook, je lit le text (.formula) d'une cellule d'un onglet. jusque la pas de soucis.
2) je souhaite afficher ce texte .
mais c'est la que ça cloche, certaines célules contiennent des caractères spéciaux :
- Carré
- Losange
je souhaiterait bien entendu que ces caractères soient affichés dans mon text box.
Je constate que dans le String que je li, sont remplacés :
- les Carrés par des 'h'
- les losanges par des '¯'
avec le logiciel FontCréator , j'ai obtenu le code Windows des caractères :
- Carré = 9633
- Losange = 9674
dans le Debug.print ChrW(...) ca affiche tentot un carre tentot un point d'interrogation sans que j'arrive a m'expliquer pourquoi.
lorsque j'écrit Chrw(9633) dans un Label.Caption ça me met bien un carré, cependant, le fait de remplacer les 'h' par des chrw(...) est vraiment moche et destructif (bien sur, il y a des h normaux ^^).
j'ai vu sur ce site des discutions à propos de 'OEM' mais je n'ai pas compris, peut-être est-ce la solution a mon problème...
Y a t'il un moyen de récupérer la chaine ou de la convertir de sorte à conserver et afficher les losanges / carrés.
noabéné :
cette chaine proviens d'un fichier excel
puis elle est stokée dans un fichier mdb dans une cellule au format 'adVarWChar'
puis elle est lue, puis traitée par un regexp
puis affichée dans un Label.caption
puis remise ds un fichier excel pour impression
jespère avoir été clair,
si ce n'est pas le cas n'ésités pas a me le dire
VB6, quand yen a plus yen a encore
Il y a tant a apprendre et seulement 24 heures dans une journée
A trop Chercher on fini par se fermer les yeux
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 juil. 2009 à 08:55
Unicode
soit tes carrés sont en ascii et c'est juste un jeu avec la police de caractère
soit excel affiche un caractère unicode qu'il te sera dfficile d'afficher en VB, avec les controles de base.
Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 20123 12 juil. 2009 à 11:20
il semblerait que cela soit de l'unicode...
j'ai résolu mon problème en affichant dans un label factice : un HierarchicalMsFlexGrid à 1 colone et 1 ligne... bizard, lui sait afficher ces caractères.
VB6, quand yen a plus yen a encore
Il y a tant a apprendre et seulement 24 heures dans une journée
Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 20123 7 juil. 2009 à 17:46
J' avance...
Le fichier excel a partir duquel je travail, ce n'est pas moi qui l'ai fait.
Je viens de me rendre compte que les fameux carrés et losanges présents dans les cellules ne sont pas des chrW(9633) mais des Wingdings copiés
Ce qui explique l'impossibilité de récupérer mon code caractère.
bon maintenant que j'ai engueulé le mec qui les y a mis et que j'ai enfin des vrai caractères ChrW(9366) et ChrW(9374), je fait un
Label.Caption = range(blabla).Value
--> ca m'affiche un point d'interrogation a la place du carré ou du losange
si je fait debug.print AscW(Right(Range.Text,1))
j'ai bien 9366,
si je l'affiche avec un debug.print --> '?' affiché
si je le met dans un HierarchicalFlexGrid.text --> 'Carré' affiché
si je le met dans un TextBox.text --> '?' affiché.
J'ai pourtant déja affiché des carrés dans le debug.print
comment faire ?
VB6, quand yen a plus yen a encore
Il y a tant a apprendre et seulement 24 heures dans une journée
Vous n’avez pas trouvé la réponse que vous recherchez ?