Retour chariot Excel

Résolu
Prototype51 Messages postés 26 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 5 janvier 2008 - 16 août 2006 à 16:30
KC62 Messages postés 229 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 20 juin 2007 - 17 août 2006 à 20:26
Bonjour à tous

Voici mon problème :
J'ai un tableau Excel.
Je récupère le titre des colonnes du tableau dans une ComboBox (VBA).
Le problème c'est que lorsque je récupère des colonnes avec des titres contenant un retour chariot (Entrée) il le remplace dans la combo par deux carré ! Ensuite je dois retrouver la colonne contenant le titre sélectionné dans la combo, mais je n'y arrive pas puisque le titre est incorrect (il contient les deux carrés au lieux du retour chariot).

Exemple : §=carré
Titre de colonne : 
   nom
   composé
Affichage dans la combo :
   nom§§composé
La recherche s'effectue sur nom§§composé qui n'existe pas !

J'espère avoir été claire  mais surtout que vous pourrez m'aider
Merci

8 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
16 août 2006 à 23:56
KC62, pour ton info VbCrLf

Cr pour Carriage return (retour de chariot)

Lf pour Line Feed (Saut de ligne)


Je n'ai pas la solution, mais j'ai remarqué qu'en Excel si tu mets

Range("A1") = "Je saute" & vbcrlf & "une ligne"

ça met un petit carreau blanc en guise de caractère "illisible" ou "inaffichable"

Avec Range("A1") = "Je saute" & vbcrlf & "une ligne"

ça ne met pas de signe


vbLf est l'équivalent de chr(10)

vbCrl est l'équivalent de chr(13)

Il faudrait probablement que tu t'amuses avec ces deux caractères


Un peu comme dit MichelXLD, tu peux utiliser cette fonction d'Excel ou celle de VB

Entete = Replace(Entete, vbCrLf, vbLf)

ou

Entete Replace(Entete, vbCrLf, chr(32))  ' chr(32) espace


Et comme dit KC62, tu peux vérifier chaque caractère de ton entête en créant une petite fonction du genre

Sub Y()

    Dim strTemp As String, I As Integer

   

    For I = 1 To Len(Range("A1"))   '  Range("A1") contient l'entête en question

        strTemp = strTemp & Asc(Mid(Range("A1"), I, 1)) & vbTab & _

                   
Mid(Range("A1"), I, 1) & vbCrLf

    Next

   

    MsgBox strTemp

End Sub

MPi
3
Rejoignez-nous