Left procédure dynamique

Bonjour à tous,

J'ai ce code VBA qui me permet une multi sélection sur liste de validation.

Je sépare les choix par un retour chariot Chr(10)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Range("A1:A3"), Target) Is Nothing And Target.Cells(1).Count = 1 Then
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox1.List = Worksheets(2).Range("A1:A10").Value
    A = Split(Target.Cells(1), Chr(10))
        If UBound(A) >= 0 Then
        For i = 0 To Me.ListBox1.ListCount - 1
        If Not IsError(Application.Match(Me.ListBox1.List(i), A, 0)) Then Me.ListBox1.Selected(i) = True
        Next i
        End If
    Me.ListBox1.Height = 200
    Me.ListBox1.Width = 150
    Me.ListBox1.Top = Target.Top
    Me.ListBox1.Left = Target.Left + Target.Width
    Me.ListBox1.Visible = True
    Else
    Me.ListBox1.Visible = False
    End If
End Sub

Je voudrais cependant que sur la dernière valeur, il n'y ai pas ce retour chariot (donc que la cellule ne se termine pas par un retour chariot).

J'ai introduit un check de la dernière valeur de activecell en fin de procédure. Si c'est Chr(10) alors il le supprime mais je me demandais s'il y avait une façon de le faire après chaque sélection dans la listbox ?

En vous remerciant par avance pour la réponse.

15test.xlsm (22.22 Ko)

Bonjour,

Je ne sais pas si j'ai compris, mais essaie peut-être en remplaçant ta dernière instruction dans la Sub ListBox1_Change par:

ActiveCell = Left(temp, Len(temp) - 1)

Hello,

Pourquoi n'y ai-je pas penser avant ... C'est exactement ce que je voulais U.Milité !

Merci beaucoup et bon dimanche !

Rechercher des sujets similaires à "left procedure dynamique"