XL 2019 Cacher le signe de retour à la ligne dans une ListBox d'Userform

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 !

Webperegrino

XLDnaute Accro
Supporter XLD
Bonjour Le Forum,

Mon Userform, qui fonctionne parfaitement, contient les codes suivants :

VB:
Private Sub TextBox1_Change()
Me.ListBox1.Clear
For Each c In [Caissiers]
  If UCase(c) Like UCase(Me.TextBox1) & "*" Then
    Me.ListBox1.AddItem c
  End If
Next c
End Sub

Private Sub TextBox2_Change()
Me.ListBox1.Clear
For Each c In [Caissiers]
  If UCase(c) Like "*" & UCase(Me.TextBox2) & "*" Then
    Me.ListBox1.AddItem c
  End If
Next c
End Sub

Private Sub ListBox1_Click()
  ActiveCell = Me.ListBox1
  Unload Me
End Sub

Private Sub UserForm_Initialize()
  Me.ListBox1.List = [Caissiers].Value
End Sub

Dans une feuille de l’application, mes cellules contiennent un retour à la ligne (Prénom, NOM).

Quel procédé (code vba, ou dans propriétés de la LisBox de l'Userform ?) utiliser pour faire disparaître, dans l’Userform ouvert, le signe
1769679971365.jpeg
dans le prénom NOM qui apparaît dans l'extrait de la Listebox à l’écran, comme dans l'image ci-après ?
1769680088715.jpeg

Merci
Webperegrino
 
Solution
Bonjour Webperegrino, Sousou,
Un petit fichier test est toujours bienvenu. Cela aurait permis de s'apercevoir que Caissiers est une plage est non un texte.
Donc un peu au pif :
VB:
Private Sub UserForm_Initialize()
Dim i As Long
Me.ListBox1.List = [Caissiers].Value
For i = 0 To Me.ListBox1.ListCount - 1  ' Boucle sur tous les éléments de la ListBox1
    Me.ListBox1.List(i) = Replace(Me.ListBox1.List(i), Chr(10), " ") ' Remplace saut de ligne par espace
Next i
End Sub

par contre, ensuite, si vous voulez rechercher un item de la listbox par rapport à la plage, il faudra ré introduire le CHR(10) avec un "replace"
Le Forum,
Bonjour Sousou.
Meric d'intervenir.
Je viens d'essayer les codes #2 proposés comme ci-après ; ça coince (ouverture de l'userform) ici en erreur d'exécution 13 :
1769694578895.png

J'ai placé ceci :
VB:
Private Sub UserForm_Initialize()
  'Me.ListBox1.List = [Caissiers].Value ← avec cette ligne l'userform s'ouvrait
  n = InStr(1, [Caissiers], Chr(10))
  Me.ListBox1.List = Left([Caissiers], n - 1) & "" & Right([Caissiers], Len([Caissiers]) - n)
End Sub
Webperegrino
 
Bonjour Webperegrino, Sousou,
Un petit fichier test est toujours bienvenu. Cela aurait permis de s'apercevoir que Caissiers est une plage est non un texte.
Donc un peu au pif :
VB:
Private Sub UserForm_Initialize()
Dim i As Long
Me.ListBox1.List = [Caissiers].Value
For i = 0 To Me.ListBox1.ListCount - 1  ' Boucle sur tous les éléments de la ListBox1
    Me.ListBox1.List(i) = Replace(Me.ListBox1.List(i), Chr(10), " ") ' Remplace saut de ligne par espace
Next i
End Sub

par contre, ensuite, si vous voulez rechercher un item de la listbox par rapport à la plage, il faudra ré introduire le CHR(10) avec un "replace"
 
Le Forum, Sousou,
Bonjour Sylvanu, en effet j'aurai dû placer un fichier exemple.
J'ai réussi à adapter la codification #4 à mon cas, et cela fonctionne parfaitement.
Grand merci à vous deux, j'ai gagné un temps fou de recherches inutiles en tous sens.
Vos orientations à tous les deux m'ont permis de corriger mes lignes de codes.
L'userform s'affiche.
J'ai ensuite replacé par code (de #3) le retour de ligne Chr(10) avec le résultat de [B5] pour chercher dans le pavé B8:B13 qui contient Prénom + Chr(10) + Nom dans chaque cellule, et ça fonctionne !

La marque verte de solution est donc à la fois en #4 et un morceau de #2... Merci encore,
Webperegrino
 
- 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

Réponses
15
Affichages
533
Réponses
3
Affichages
886
Retour