Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Caractères spéciaux dans VBA

  • Initiateur de la discussion Initiateur de la discussion marcelio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marcelio

XLDnaute Occasionnel
Bonjour à tous,
Dans un USF j’ai inséré plusieurs images (boite à outils, image) et insérer les fanions des villes des pays de l’est.
J’aimerais nommer toutes ces images (dans la catégorie Tag*🙂 du nom de la ville mais ceux-ci ont des caractères spéciaux.
Mon but, dans mon fichier original avec un double clic sur le nom de la ville m’ouvre un autre USF avec le fanion de la ville sélectionnée.
mais la comme le nom de la ville ne correspond pas à celle qui est inscrite dans le tag de l'image cala m'ouvre bien l'USF mas sans l'image.

Exemple*:
Steaua Bucureşti cela donne Steaua Bucure?ti
Botoşani cela donne Boto?ani
Braşov : Bra?ov
Dinamo Bucureşti : Dinamo Bucure?ti
Viitorul Constanţa : Viitorul Constan?a

Y à t’il une solution pour remédier à ce problème.

Merci d’avance de votre aide.
Marcelio
 

Pièces jointes

Re : Caractères spéciaux dans VBA

Bonjour.
Si vous tenez à stocker vos noms de villes dans les Tag, voyez si vous pouvez les ré-encoder à l'aide de la 1ère fonction, pour les exploiter plus tard avec la 2ième.
VB:
Function TagTxt(ByVal Z As String) As String
Dim P As Long, A As Long
For P = 1 To Len(Z)
   A = AscW(Mid$(Z, P, 1))
   If A > 255 Then TagTxt = TagTxt & "{" & A & "}" Else TagTxt = TagTxt & Chr$(A)
   Next P
End Function

Function TxtTag(ByVal Z As String) As String
Dim T() As String, P As Long, U() As String
T = Split(Z, "{")
For P = 1 To UBound(T)
   U = Split(T(P), "}"): T(P) = ChrW$(U(0)) & U(1)
   Next P
TxtTag = Join(T, "")
End Function
 
Re : Caractères spéciaux dans VBA

Bonjour Dranreb,
Je ne suis pas arrivé à utilisez votre code.
Je vous joint un nouveau fichier avec le double clic pour afficher les fanions.
Merci de votre aide
Marcelio
 

Pièces jointes

Re : Caractères spéciaux dans VBA

La propriété Tag ne peut pas contenir de caractères spéciaux de code ascii > 255. Vous devez vous débrouiller pour y mettre le texte renvoyé par ma fonction TagTxt à partir du texte d'origine qui lui sera passé en paramètre.
Ce Tag pourra être reconverti en le texte d'origine à l'aide de ma fonction TxtTag

Autre version des fonctions donnant souvent un code plus court d'un caractère :
VB:
Function TagTxt(ByVal Z As String) As String
Dim P As Long, A As Integer
For P = 1 To Len(Z)
   A = AscW(Mid$(Z, P, 1))
   If A > &HFF Then TagTxt = TagTxt & "{" & Hex(A - &H100) & "}" Else TagTxt = TagTxt & Chr$(A)
   Next P
End Function

Function TxtTag(ByVal Z As String) As String
Dim T() As String, S As Long, P As Long, A As Integer, U() As String
T = Split(Z, "{")
For S = 1 To UBound(T)
   Z = T(S): P = InStr(Z, "}")
   T(S) = ChrW$(CInt("&H" & Left$(Z, P - 1)) + &H100) & Mid$(Z, P + 1)
   Next S
TxtTag = Join(T, "")
End Function
Tests de vérifications pour votre dernier classeur :
En R13 :
Code:
=TagTxt(Q13)
En S13 :
Code:
=TxtTag(R13)
propagés vers le bas.
 
Dernière édition:
Re : Caractères spéciaux dans VBA

Bonjour marcelio, Dranreb

une solution qui nécessite que le tag des images de l'USF FANION soit au plus proche des noms en feuille Feuil1:

Steaua Bucure?ti (et non pas FC Steaua Bucure?ti ) pour Steaua Bucureşti c'est à dire un simple copier coller de la feuille au Tag.


"?" étant un 'Joker' utilisable avec Like , dans Private Sub UserForm_Activate() de l'USF infos:

Code:
Private Sub UserForm_Activate()
 Dim CTL As Control
 Dim PIC As IPictureDisp

 TextBox1 = Worksheets(Nom_Onglet).Range(AdCel)
 
 For Each CTL In FANION.Controls
  If UCase(TextBox1) Like UCase(CTL.Tag) Then
    Set PIC = CTL.Picture
    Image1.Picture = PIC
    Exit For
  End If
 Next CTL

End Sub

A+
 
Re : Caractères spéciaux dans VBA

Bonjour paf,
et rebonjour Dranreb,

Merci à tous les 2 de votre aide.
Finalement je garde la solution de Paf qui fonctionne à merveille.
Encore merci et bonne fin d'après midi à vous et au Forum.
Marcelio
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…