Changer la liste de référence pour une listbox

Bonjour,

J'ai crée un fichier pour pouvoir compiler toutes les informations liées aux différentes réceptions de marchandises dans mon entreprise.

La listbox1 permet de recharger dans la boîte de dialogue, les clients qui ont déjà été enregistré.

Or je n'arrive pas à changer la liste de référence de ma feuille excel qui est prise pour la listbox, je voudrais qu'il prenne la colonne 2 et non plus la 5.

Voici le code :

Private Sub ListBox1_Click()
Dim i, position As Integer
Dim Nom1, Nom2, Nom3, Nomfeuille, contenants As String
i = Dialogue.ListBox1.Listselected + 1 = True
        Nom1 = CStr(Day(Sheets("Formulaire").Cells(6, 5)))
        Nom2 = CStr(Month(Sheets("Formulaire").Cells(6, 5)))
        Nom3 = CStr(Year(Sheets("Formulaire").Cells(6, 5)))
        If Day(Sheets("Formulaire").Cells(6, 5)) < 10 Then
            Nom1 = "0" + Nom1
        End If
        If Month(Sheets("Formulaire").Cells(6, 5)) < 10 Then
            Nom2 = "0" + Nom2
        End If
Nomfeuille = Nom1 + Nom2 + Nom3
position = i  'ActiveCell.Row
If position > 1 Then
    Dialogue.ComboBox6 = Sheets(Nomfeuille).Cells(position, 1)
    Dialogue.ComboBox2 = Sheets(Nomfeuille).Cells(position, 2)
    Dialogue.TextBox7 = Sheets(Nomfeuille).Cells(position, 3)
    Dialogue.ComboBox1 = Sheets(Nomfeuille).Cells(position, 4)
    Dialogue.CheckBox1 = Sheets(Nomfeuille).Cells(position, 5)
    Dialogue.CheckBox2 = Sheets(Nomfeuille).Cells(position, 6)
    Dialogue.TextBox4 = CStr(Format(Sheets(Nomfeuille).Cells(position, 7), "h"))
    Dialogue.ComboBox4 = CStr(Format(Sheets(Nomfeuille).Cells(position, 7), "nn"))
    Dialogue.ComboBox5 = Sheets(Nomfeuille).Cells(position, 8)
    Dialogue.TextBox2 = Sheets(Nomfeuille).Cells(position, 9)
    Dialogue.TextBox5 = Sheets(Nomfeuille).Cells(position, 10)
    Dialogue.TextBox6 = Sheets(Nomfeuille).Cells(position, 11)
    Dialogue.TextBox9 = Sheets(Nomfeuille).Cells(position, 12)
    Dialogue.TextBox10 = Sheets(Nomfeuille).Cells(position, 13)
    Dialogue.TextBox11 = Sheets(Nomfeuille).Cells(position, 14)
    Dialogue.TextBox13 = Sheets(Nomfeuille).Cells(position, 15)
    Dialogue.TextBox14 = Sheets(Nomfeuille).Cells(position, 16)
    Dialogue.TextBox15 = Sheets(Nomfeuille).Cells(position, 17)
    Dialogue.TextBox16 = Sheets(Nomfeuille).Cells(position, 18)
    Dialogue.TextBox17 = Sheets(Nomfeuille).Cells(position, 19)
    Dialogue.TextBox18 = Sheets(Nomfeuille).Cells(position, 20)
    Dialogue.TextBox19 = Sheets(Nomfeuille).Cells(position, 21)
    Dialogue.TextBox20 = Sheets(Nomfeuille).Cells(position, 22)
    Dialogue.TextBox21 = Sheets(Nomfeuille).Cells(position, 23)
    Dialogue.TextBox22 = Sheets(Nomfeuille).Cells(position, 24)
    Dialogue.TextBox23 = Sheets(Nomfeuille).Cells(position, 25)
    Dialogue.TextBox3 = CStr(Format(Sheets(Nomfeuille).Cells(position, 26), "h"))
    Dialogue.ComboBox3 = CStr(Format(Sheets(Nomfeuille).Cells(position, 26), "nn"))
    Dialogue.TextBox24 = Sheets(Nomfeuille).Cells(position, 27)
    Dialogue.TextBox25 = Sheets(Nomfeuille).Cells(position, 28)
    Dialogue.TextBox26 = Sheets(Nomfeuille).Cells(position, 29)
    Dialogue.TextBox27 = Sheets(Nomfeuille).Cells(position, 30)
    Dialogue.TextBox28 = Sheets(Nomfeuille).Cells(position, 31)


9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Or je n'arrive pas à changer la liste de référence de ma feuille excel qui est prise pour la listbox Ben oui, mais vu que vous ne montrez pas comment vous affectez cette "liste de référence" colonne 5 a la listbox1, pas possible de vous aidez

    i = Dialogue.ListBox1.Listselected + 1 = True
    ?????????
    1. Et bien justement je n'ai que cette ligne avec i pour la sub
      (ce n'est pas moi qui ai tapé ce code)
      et je ne sais pas comment est affecté cette liste.

      le code précédent pour cette ligne était
      i = Dialogue.ListBox1.ListIndex
      mais même problème impossible de savoir comment elle est affecté
      1. Bonjour,

        mais même problème impossible de savoir comment elle est affecté Va pas etre simple a resoudre sans le fichier.

        Pouvez-vous mettre votre fichier a disposition sur https://www.cjoint.com/ en modifiant les donnees sensibles
        1. Bonjour,

          c'est dans ce Sub (Module1) que lisbox1 est remplie:
          Sub RempliBoite()


          Probleme: ce code n'est pas appele !!!!!!!!!!!!!!
          1. Contributeur
            Bonjour,

            Pour initialiser la listBox où vous voulez, doublecliquez sur l'UserForm Dialogue et choisissez Initialize en haut à droite et collez ce code:

            Private Sub UserForm_Initialize()
            ListBox1.List() = Feuil4.Range("A2:A14").Value
            End Sub
            


            Là j'ai choisi les clients chargeur, a vous de voir ce que vous voulez afficher
            1. Contributeur
              J'ai oublié dans le module1 changer ceci:

              Sub Aller_Formulaire()
              Sheets("Formulaire").Activate
              Dialogue.Show
              End Sub
              
            2. Bonjour,

              Ce n'est pas si simple, le nom de la feuille pour remplir la listbox est ecrit par programme, mais le code qui doit remplir la listbox n'est pas appele, donc il manque une ligne de code quelque part, j'ai bien une idee, mais pourquoi cette ligne manque si ca marchait avant
            3. J'ai essayé avec intitialize et vba me dit ça :
              erreur d'éxecution '381'. Impossible de définir la prppriété List. Index de table de propriétés non valide.
          2. Contributeur
            allez dans le module1 et changer comme ceci:

            Sub RempliBoite()
            Dim table(15) As String
            Dim i As Integer
            Dim Nom1, Nom2, Nom3, Nomfeuille As String
                    Nom1 = CStr(Day(Sheets("Formulaire").Cells(6, 5)))
                    Nom2 = CStr(Month(Sheets("Formulaire").Cells(6, 5)))
                    Nom3 = CStr(Year(Sheets("Formulaire").Cells(6, 5)))
                    If Day(Sheets("Formulaire").Cells(6, 5)) < 10 Then
                        Nom1 = "0" + Nom1
                    End If
                    If Month(Sheets("Formulaire").Cells(6, 5)) < 10 Then
                        Nom2 = "0" + Nom2
                    End If
            Nomfeuille = Nom1 + Nom2 + Nom3
            'MsgBox Nomfeuille
            If Sheets(Nomfeuille).Cells(2, 1) <> "" Then
                For i = 2 To 15
                    table(i - 1) = Sheets(Nomfeuille).Cells(i, 2)'ici 2 a la place du 5
                Next i
            End If
            Load Dialogue
            Dialogue.ListBox1.List() = table
            Dialogue.TextBox12 = "Date : " & CStr(Sheets("Formulaire").Cells(6, 5))
            RAZ
            'For i = 1 To 15
            '    table(i) = ""
            'Next i
            'Dialogue.ListBox1.List() = table
            AdaptationListe
            Dialogue.Show
            End Sub

            1. Rebonjour,

              J'ai fait tous les changement comme indiqués ci-dessus et le même message d'erreur apparaît toujours.
              1. Contributeur
                Je n'ai indiqué qu'un changement dans la macro Sub RempliBoite() :

                  table(i - 1) = Sheets(Nomfeuille).Cells(i, 2)'ici 2 a la place du 5
                    


                Chez moi cela fonctionne, je n'ai aucun message d'erreur!

                Discussions similaires

                couleur personnage

                9 réponses