Problème de remplissage textbox depuis combobox

Bonjour,

Je cherche un moyen de récupérer les données d'une ligne dans le but de les envoyer sur un modèle d'impression, puis les imprimer.

Ma contrainte, c'est que j'ai des n° de lots composés à partir de 2 colonnes (par ex. 20000-A, 20000-B, etc...).

Du coup, j'envisage 2 solutions pour récupérer ces données, soit regrouper les 2 colonnes dans une combobox, soit remplir le combobox avec la colonne A, et une textbox avec la colonne B.

Pour la 1ère solution, je n'arrive pas à grouper et faire apparaitre les 2 colonnes en même temps.

Pour la 2ème solution, quand je sélectionne un lot, comme les lots de la colonne A sont identiques par moments, j'ai toujours la dernière lettre qui compose le lot qui s'affiche dans la textbox.

Si l'explication est incompréhensible, le fichier est lui très explicite.

Et si toutefois une autre solution était mieux adaptée, ça m'intéresse aussi

8wawach.xlsm (20.73 Ko)

Bonjour,

C'est plus facile avec un contrôle ListBox et un tableau structuré.

capture

Dans le module standard :

Option Explicit

Type ModeleOF
    OfNumero As String
    OfIndice As String
    OfDate As Date
    OfCommande As String
End Type

Public OfChoisi As ModeleOF
Public Continuer As Boolean
Public AireDonnees As Range

Sub LancerLUsf()

    On Error GoTo Fin

    Set AireDonnees = Range("TableDesOF[#All]")

    With UserFormImpressionOF
         .ListBoxOF.List = AireDonnees.Value
        .Show
    End With

    If Continuer = False Then GoTo Fin

    With OfChoisi
         Debug.Print "OF : " & .OfNumero & ", indice : " & .OfIndice & ", date : " & .OfDate & ", commande : " & .OfCommande
    End With

    GoTo Fin

Fin:

  Set AireDonnees = Nothing

End Sub

Dans le userform :

Option Explicit

Private Sub CommandButtonQuitter_Click()

        Continuer = False
        Unload Me

End Sub

Private Sub CommandButtonValider_Click()

     If ListBoxOF.ListIndex > -1 Then
        Continuer = True
        With OfChoisi
             .OfNumero = ListBoxOF.List(, 0)
             .OfIndice = ListBoxOF.List(, 1)
             .OfDate = CDate(ListBoxOF.List(, 2))
             .OfCommande = ListBoxOF.List(, 3)
        End With
        Unload Me
      Else
        MsgBox "Sélectionnez une OF !", vbCritical
     End If

End Sub

Private Sub ListBoxOF_Click()

     With Me
         .TextBoxOF = ListBoxOF.List(, 0)
         .TextBoxIndice = ListBoxOF.List(, 1)
     End With
     Application.Goto AireDonnees.Rows(ListBoxOF.ListIndex + 1), True

End Sub

Bonjour Eric,

Effectivement le contrôle ListBox est bien le plus adapté dans ce genre de situations.

Comme quoi un regard extérieur est toujours utile.

Merci pour ton aide.

Rechercher des sujets similaires à "probleme remplissage textbox combobox"