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

whitelegend
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 14:06 - Dernière réponse : whitelegend
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 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 

Votre réponse

23 réponses

Meilleure réponse
lillith212
Messages postés
1231
Date d'inscription
vendredi 16 novembre 2007
Dernière intervention
16 juin 2009
- 24 nov. 2008 à 14:12
3
Merci
Bonjour,


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





S.L.B.
<hr />

Merci lillith212 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de lillith212
Meilleure réponse
lillith212
Messages postés
1231
Date d'inscription
vendredi 16 novembre 2007
Dernière intervention
16 juin 2009
- 24 nov. 2008 à 14:26
3
Merci
Re:
Oui l'expression char()...
Puis-je te demander pourquoi elle te convient pas?

S.L.B.
<hr />

Merci lillith212 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de lillith212
Meilleure réponse
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 25 nov. 2008 à 20:03
3
Merci
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...

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 25 nov. 2008 à 21:59
3
Merci
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 

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 27 nov. 2008 à 17:21
3
Merci
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 

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de PCPT
whitelegend
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 14:16
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 14:35
0
Merci
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
Messages postés
1231
Date d'inscription
vendredi 16 novembre 2007
Dernière intervention
16 juin 2009
- 24 nov. 2008 à 14:46
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 14:53
0
Merci
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
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 24 nov. 2008 à 15:03
0
Merci
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
Messages postés
1231
Date d'inscription
vendredi 16 novembre 2007
Dernière intervention
16 juin 2009
- 24 nov. 2008 à 15:06
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 15:17
0
Merci
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
Messages postés
1231
Date d'inscription
vendredi 16 novembre 2007
Dernière intervention
16 juin 2009
- 24 nov. 2008 à 15:21
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 15:29
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 15:29
0
Merci
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
Messages postés
1231
Date d'inscription
vendredi 16 novembre 2007
Dernière intervention
16 juin 2009
- 24 nov. 2008 à 15:43
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 24 nov. 2008 à 15:59
0
Merci
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
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 24 nov. 2008 à 19:40
Commenter la réponse de Renfield
whitelegend
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 25 nov. 2008 à 15:49
0
Merci
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
Messages postés
156
Date d'inscription
vendredi 13 janvier 2006
Dernière intervention
2 mars 2009
- 27 nov. 2008 à 09:37
0
Merci
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.