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

Microsoft 365 Séparer NOM et Prénom d'une ListBox dans 2 Textbox

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,

Dans un formulaire, j'ai une ListBox qui s'affiche à son ouverture. Dans cette liste ("Lbx_Enregist") il y a 2 colonnes une qui contient un code et l'autre le Nom et Prénom.
Je souhaiterais que lorsque je clique sur une ligne de la liste, le NOM s'affiche dans la TextBox1 et le Prénom dans la TextBox2, en fait séparer le Nom du Prénom.
Les Noms et Prénoms sont également présent dans la feuille "Liste_agents" TS "t_Noms" colonne "Salarié".
J'ai cherché un peu partout, mais je n'ai pas trouvé pour cette situation.
Comment puis-je procéder et surtout est-ce possible ?
Je sais que cela va se compliquer s'il y a un Nom du style "De La Bouche en biais Marie-Thérèse".
Merci par avance pour votre aide.
 

TooFatBoy

XLDnaute Barbatruc
Dans ta macro, tu ne précises pas la feuille sur laquelle tu veux travailler.
Ne serait-ce pas ça le problème ???

Dans quelle feuille veux-tu faire la recherche ?


Remarque : tu n'as que des TS, donc pourquoi travailler par rapport à la feuille et non par rapport au TS ciblé ?
(Phil si tu nous lis... )
 

TooFatBoy

XLDnaute Barbatruc
OK.


Et pour la remarque, tu as une réponse ?
Autrement dit, ne crois-tu pas que c'est plus sûr de travailler sur le TS ciblé plutôt que de ne rien préciser et donc travailler sur la feuille active, avec le danger que la feuille active ne soit pas forcément la celle sur laquelle on veut réellement travailler (comme c'est le cas ici) ?
 

TooFatBoy

XLDnaute Barbatruc
Une tentative de correctif à ton code, en utilisant directement le TS plutôt que la colonne C de la feuille active :

VB:
Private Sub Lbx_Enregist_Click()
'
Dim FullName$, FirstName$, LastName$
Dim Ligne As Long
Dim Code As String, TempsTravail As String

    Application.ScreenUpdating = False

    ' On identifie FullName
    FullName = Me.Lbx_Enregist.Value

    ' On extrait le nom de famille avant l'espace
    LastName = Split(FullName, Chr(32))(0)

    ' On extrait le prénom après l'espace
    FirstName = Split(FullName, Chr(32))(1)

    ' On récupére la ligne du Tableau Structuré
    Ligne = Application.Match(FullName, Range("t_Noms[Salarié]"), 0)

    ' On récupére le code
    Code = Range("t_Noms[Code agent]")(Ligne)

    ' On récupère le temps de travail
    TempsTravail = Range("t_Noms[Contrat horaire]")(Ligne).Text

    ' On affiche les résultats dans les TextBox concernées
    Me.TextBox1.Value = LastName        ' Nom
    Me.TextBox2.Value = FirstName       ' Prénom
    Me.TextBox3.Value = Code            ' Code
    Me.TextBox5.Value = TempsTravail    ' Contrat horaire

End Sub
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
pour ce qui est des Noms et Prénoms a partager .
pourquoi ne pas ajouter une Colonne au Tableau structuré , tu auras ainsi une colonne "Nom" et Une Prénom" et plus de problème Lol(j'ai pas tout lu si cela a été proposé , excuses § lol)
jean marie
 

NONO14

XLDnaute Impliqué
Toutafé. C'est aussi ce que j'avais dit mais peut-être que ça impliquerait de devoir modifier pas mal de choses dans son usine à gaz...
Désolé d'avoir tardé à vous répondre ou de manière succincte mais j'étais éloigné de mon pc pour raison médicale. Je vous ai répondu de mon téléphone.
Oui cela m'obligerai à pas mal de changement, mais bon si c'était nécessaire, je m'y attelerai.
Je vais tester ton code TootFatBoy et je te redis
 

NONO14

XLDnaute Impliqué
Bonjour Chti160
Comme je l'ai écrit, cela m'obligerai à pas mal de changements mais si cela s'avère nécessaire je suis prêt à mettre la main à la pâte.
 

Discussions similaires

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