Détecter un caractère "spécial" (<=)

mdubout Messages postés 2 Statut Membre -  
mdubout Messages postés 2 Statut Membre -
Application : powerpoint piloté par VBA

J'ai dans des text box (en arial) des grandeurs précédées de caractères "spéciaux" (<= ou >=) que j'ai inséré par (caractère spécial du menu insérer). Exemple : >= 1500 mm

Je récupère le contenu de ces text box dans un fichier text mais le carctère spécial est indiqué comme un "=" uniquement sans distinction ">=" ou "<="

Y a t il un moyen de détecter ce type de caractere pour le remplacer par un ou deux autres caractère ascii avant de le coller dans le fichier texte ?

merci

1 réponse

  1. Mister S
     
    Essaies ça !

    'besoin :
    ' 6 champs text nommés de text1, text2, text3, ... à text6
    ' 2 boutons

    Private Sub Command1_Click() ' on consigne dans un fichier txt via la fonction vireLesCaracteresSpeciaux("xxx")
    ' consignation des champs text1, text2 et text3
    f% = FreeFile
    fic$ = "c:\temp\testcp.txt"
    Open fic For Output As #f
    Print #f, vireLesCaracteresSpeciaux(Text1.Text)
    Print #f, vireLesCaracteresSpeciaux(Text2.Text)
    Print #f, vireLesCaracteresSpeciaux(Text3.Text)
    Close
    End Sub

    Private Sub Command2_Click() ' lecture du fichier et récupération dans les 3 autres champs text (4, 5 et 6)
    f% = FreeFile
    fic$ = "c:\temp\testcp.txt"
    Dim buffer() As String
    ReDim buffer(0 To 0)
    Open fic For Input As #f
    Do While Not EOF(1)
    ReDim Preserve buffer(LBound(buffer) To UBound(buffer) + 1)
    Line Input #f, buffer(UBound(buffer))
    Loop
    Close

    Text4 = buffer(1)
    Text5 = buffer(2)
    Text6 = buffer(3)
    End Sub

    Function vireLesCaracteresSpeciaux(parm As String) As String
    'init
    Dim cp(2)
    cp(0) = ">"
    cp(1) = "<"
    cp(2) = "="
    vireLesCaracteresSpeciaux = ""

    For i = 1 To Len(parm) ' boucle sur la longueur du parametre d'entree
    For j = LBound(cp) To UBound(cp) ' boucle sur le tableau des caractères spéciaux à virer
    parm = Replace(parm, cp(j), "") ' on remplace les caracteres spéciaux par des blancs
    Next j
    Next i
    parm = Replace(parm, " ", " ") ' au acs où il resterait deux blancs collés on les remplace par un seul
    vireLesCaracteresSpeciaux = Trim(parm)
    End Function

    Cdt
    0
    1. mdubout Messages postés 2 Statut Membre
       
      merci pour cette longue réponse

      mais je voudrais préciser ce que j'ai mal formuler dans ma question initiale :

      je ne souhaite pas supprimer les caractère spéciaux

      Je veux les détecter pour les remplacer par 1 ou 2 carctère ascii avant de les coller dans mon fichier (.txt) afin de faire la manip inverse quand le fichier (.txt) aura été traité

      merci
      0