Sendkeys et caractères spéciaux [Résolu]

whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 14:06 - Dernière réponse : whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention
- 27 nov. 2008 à 19:32
Re-bonjour communauté de vbfrance,

Voilà je suis à nouveau confronté à un problème que je soupçonne être un problème de syntaxe...

Voilà je souhaite écrire dans une de mes cellules Excel certains caractères spéciaux tels que : " ø " obtenu par la combinaison des touches "ALT + 0248" ou bien " É " obtenu avec "ALT + 0201".

J'ai absolument besoin de rentrer ces caractères par la fonction "Sendkeys" et j'ai essayé plein de syntaxe différente mais aucune avec un résultat probant...

Application.SendKeys "%" + "0248"

Application.SendKeys "%0248"

Application.SendKeys "% + 0248"

Application.SendKeys "% & 0248"

Voilà auriez vous une solution por réaliser cette manipulation svp, sachant que à terme le chiffre ( ici "0248") sera remplacé par une variable (ex: "i") ?

merci d'avance à tous
Afficher la suite 

23 réponses

Répondre au sujet
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 24 nov. 2008 à 14:12
+3
Utile
Bonjour,


As-tu essayé de mettre le code ascii de ton caractère?





S.L.B.
<hr />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lillith212
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 24 nov. 2008 à 14:26
+3
Utile
Re:
Oui l'expression char()...
Puis-je te demander pourquoi elle te convient pas?

S.L.B.
<hr />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lillith212
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 25 nov. 2008 à 20:03
+3
Utile
ben utilises chr$ ... j'vois pas la nuance.... ou ce qui coince.

lances Charmap (Demarrer>executer) si ca peut t'aider en quoi que ce soit...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 25 nov. 2008 à 21:59
+3
Utile
salut,

le symbole tel que coeur ? ou autres ?? est de l'unicode.

possible sous notepad en enregistrant le fichier de cette manière (unicode)
il faut se référer aux tables appropriées :
http://www.yoyodesign.org/doc/w3c/mathml2/bycodes.html




U02665
CŒUR NOIR, hearts, heartsuit





ALT+3 n'est donc pas le "vrai" code, c'est l'éditeur (comme excel, cette zone de saisie ou autre)  qui interprète, il faut jouer donc bien jouer sur ChrW$

après quelques tests, sendkeys semble éprouver des difficultés avec certaines valeurs
(réussi pour d'autre comme chrw(&H3038) je crois)

par contre si je joue avec le presse-papier (sous vb6), le "coller" est valide, mais pas le sendkeys dans la zone de texte pourtant unicode (forms2, un "?" (63) est affiché).

testé aussi par d'autre méthodes (keyb_event) avec la combinaison manuelle, l'os l'a mal digéré

bref une idée est peut-être de faire une chaine unicode de la liste complète désirée, et de la coller (api puis sendkeys de ctrl+v) dans la première cellule

doit y avoir d'autres méthodes mais en respectant ta volonté de "sendkeys obligatoire" çà limite le champ d'actions..
bon courage


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 27 nov. 2008 à 17:21
+3
Utile
salut,

allez cadeau, sous VBA excel 2000






Private Sub 
CommandButton1_Click()

    Dim i As Long, j As Long
    
    For i = 1 To 38
        j = j + 1
        If j = 25 Then j = 2660
        
        Cells(i, 1) = CStr(j)
        Cells(i, 2) = ChrW$(j)
        Cells(i, 3) = ChrW$("&H" & j)
    Next i
    
    Cells(40, 1) = "28"
    Cells(40, 2) = ChrW$(28)
    Cells(40, 3) = ChrW$("&H28")
End Sub





<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>
















Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 14:16
0
Utile
lilith,

Veux-tu parler d'utiliser la fonction "char()" ? si c'est le cas oui mais ça ne me convient pas malheureusement ...
Commenter la réponse de whitelegend
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 14:35
0
Utile
Re:Re: :)

L'expression "char()" ne me convient pas car la correspondance entre la formule char() et les combinaisons de touche ALT+ est différente:

ex:
ALT + 1 = ?
Char(1) =  le code ne s'affiche pas sur le forum mais rentre la fonction car(1) dans Excel qui est la traduction de char(1) en vba .

Les 2 résultats sont différents.

Certains symboles obtenus par la combinaison des touches ALT + pad numériques n'ont pas d'équivalence sur la fonction char()

j'espère que j'ai pas été trop tordu dans mes explications :)
Commenter la réponse de whitelegend
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 24 nov. 2008 à 14:46
0
Utile
Je suis pas spécialiste vba? J'ai donc quelques questions afin de bien comprendre.
ALT+1 = ? --> Ca tu l'as où???
Car dans insertion de caractere spéciaux en fouillant un peu j'ai ceci :
63 en décimal et 003F en ASCII pour le caractere ?
Donc j'ai besoin d'explication... Désolée...

S.L.B.
<hr />
Commenter la réponse de lillith212
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 14:53
0
Utile
Pas de problème,

en fait ALT + 1 ne renvoie pas un point d'interrogation comme le montre le post mais un smiley qui sourit.
ALT + 4 me fait le sigle " carreau " d'un jeu de carte par ex.
ALT + 5 me fait le sigle "pique" d'un jeu de carte

Or ces choses là n'ont pas de correspondances dans la fonction char() (enfin j'en ai pas trouvé ... :p )

Si tu veux je suis dispo sur msn pour en parler ... ( whitelegend030@hotmail.com si tu veux....)

LC
Commenter la réponse de whitelegend
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 nov. 2008 à 15:03
0
Utile
pourquoi passer par SendKeys pour simplement écrire dans une cellule Excel.
Excel est pilotable directement via une interface COM...
Commenter la réponse de Renfield
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 24 nov. 2008 à 15:06
0
Utile
Re: 
ASCII Character Codes Chart 1

ASCII Character Codes Chart 2

smiley qui sourit = char(01) ???
sigle " carreau " = char(04) ???
sigle "pique"= char(05) ????
Je me trompe peut être....???

S.L.B.
<hr />
Commenter la réponse de lillith212
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 15:17
0
Utile
Lilith,

les fonctions char(01), char(04) .... ne renvoient pas les smileys ou sigles cité ci-dessus.

Pour info après test: char(1) = char(01)

Qu'il y ait un zéro ou pas ne changent rien contrairement aux combinaisons des touches ALT + Pad numérique

Renfield,

je ne suis pas assez connaisseur pour comprendre ce dont tu me parles ... " pilotable directement via une interface COM ..."

L.C
Commenter la réponse de whitelegend
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 24 nov. 2008 à 15:21
0
Utile
smiley qui sourit = chr$(01) ???
sigle " carreau " = chr$(04) ???
sigle "pique"= chr$(05) ????
Toujours pas???

S.L.B.
<hr />
Commenter la réponse de lillith212
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 15:29
0
Utile
lilith,

La syntaxe chr$(01) est corrigée automatiquement par vba en chr$(01)
Au niveau résultats: char(01) char(1) chr$(1)

Décidément j'ai l'impression d'être tombé sur LA question bien chiante ... :p désolé :D
Commenter la réponse de whitelegend
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 15:29
0
Utile
Correction

La syntaxe chr$(01) est corrigée automatiquement par vba en chr$(1)

Sinon ça voulait rien dire :p
Commenter la réponse de whitelegend
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 24 nov. 2008 à 15:43
0
Utile
Allez un dernier pour la route :)

Regarde ca :
http://www.vbfrance.com/forum/sujet-CARACT-RES_606995.aspx
casy propose chrW

S.L.B.
<hr />
Commenter la réponse de lillith212
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 24 nov. 2008 à 15:59
0
Utile
lilith,

Mauvaise nouvelle ... ça ne fonctionne pas non plus
chrW(01) chrW(1) char(1) .....

C'est dingue que je ne sois pas capable de trouver la solution à ce problème qui parait simple ! :S
Commenter la réponse de whitelegend
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 nov. 2008 à 19:40
Commenter la réponse de Renfield
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 25 nov. 2008 à 15:49
0
Utile
Renfield,

Je ne trouve pas comment exploiter ce code ... :S

je comprends un peu le principe mais ce code n'est pas si débutant de que ca ... :D ( comme c'est dit dans le descriptif )

En revanche j'ai trouvé un très bon exemple pour expliquer ce que je veux..:

Ecrire un code qui balayerait toutes les combinaisons de ALT + 1 to 1000 et stockerai chaque résultats dans la cellule Excel appropriée Colonne A ligne 1 to 1000:

Cellule A1 = ALT +1
Cellule A2 = ALT +2
....

Voila si je réussissais à écrire un tel code je pourrais m'en servir por ce que je veux faire...

Donc je continue à chercher activement mais toutes vos idées ou conseils seront les bien venus ^^
Commenter la réponse de whitelegend
whitelegend 156 Messages postés vendredi 13 janvier 2006Date d'inscription 2 mars 2009 Dernière intervention - 27 nov. 2008 à 09:37
0
Utile
Dans quoi me suis-je encore embarqué ... :p apparemment mon problème dois dépasser mes compétences...

Ok donc à la vue des ces dernière infos de la part de PCPT j'ai une autre question.

Admettons que je laisse tomber mon " sendkeys" ... quel est la fonction, si fonction il y a, pour afficher les caratères représenter par les codes unicode de type "U00028" ou "[../c.aspx?u=aHR0cDovL3d3dy55b3lvZGVzaWduLm9yZy9kb2MvdzNjL21hdGhtbDIvZ2x5cGhzLzAyNi9VMDI2NjUucG5n U02665]" .... du genre

_fonction(U00028) qui renverrai donc une donnée de type "string", dans ce cas une parenthèse gauche.

Je pense que si après ca je ne trouve pas de solution je vais abdiquer.... enfin je suis coriace quand même donc je ne sais pas encore :p
 
Commenter la réponse de whitelegend

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Sendkeys et caractères spéciaux - page 2