Changer la liste de référence pour une listbox [Fermé]

Signaler
-
Messages postés
7335
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 avril 2021
-
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

Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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
?????????
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é
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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
Bonjour,

voici le lien :
http://cjoint.com/?3JxsMOvhrFr

Merci
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
Bonjour,

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


Probleme: ce code n'est pas appele !!!!!!!!!!!!!!
Messages postés
7335
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 avril 2021
624
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
Messages postés
7335
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 avril 2021
624
J'ai oublié dans le module1 changer ceci:

Sub Aller_Formulaire()
Sheets("Formulaire").Activate
Dialogue.Show
End Sub
Messages postés
15725
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
11 avril 2021
1 481
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
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.
Messages postés
7335
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 avril 2021
624
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

Rebonjour,

J'ai fait tous les changement comme indiqués ci-dessus et le même message d'erreur apparaît toujours.
Messages postés
7335
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 avril 2021
624
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!