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

Problème avec 3 Listbox dans userform

  • Initiateur de la discussion Initiateur de la discussion Arpette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arpette

XLDnaute Impliqué
Bonjour à toutes et à tous,

J'ai un problème avec mon userform qui fonctionne avec deux listbox, mais qui bug quand j'en rajoute une troisième. Je vous donne le code pour voir si j'ai une erreur d'écriture.
Merci pour votre aide.

Code:
Option Explicit
'*****************************************************************
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Unload Me
'On ferme le Userform
Application.ScreenUpdating = True
End Sub
'*****************************************************************
Private Sub LIDF_Click()
Application.ScreenUpdating = False
Dim DernLign As Long
    With Sheets("Saisie")
        'On mémorise dans DernLign le numéro de la première ligne libre de la feuille Saisie
        DernLign = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        'On met à jour la feuille Saisie avec les données du Userform
        .Cells(DernLign, 1).Value = Me.LIDF.List(Me.LIDF.ListIndex)
    End With
Application.ScreenUpdating = True
End Sub
'*****************************************************************
Private Sub LProduits_Click()
Application.ScreenUpdating = False
Dim DernLign As Long
    With Sheets("Saisie")
        'On mémorise dans DernLign le numéro de la première ligne libre de la feuille Saisie
        DernLign = .Cells(.Rows.Count, 9).End(xlUp).Row + 1
        'On met à jour la feuille Saisie avec les données du Userform
        .Cells(DernLign, 9).Value = Me.LProduits.List(Me.LProduits.ListIndex)
    End With
Application.ScreenUpdating = True
End Sub
'*****************************************************************
Private Sub LModeadmi_Click()
Application.ScreenUpdating = False
Dim DernLign As Long
    With Sheets("Saisie")
        'On mémorise dans DernLign le numéro de la première ligne libre de la feuille Saisie
        DernLign = .Cells(.Rows.Count, 11).End(xlUp).Row + 1
        'On met à jour la feuille Saisie avec les données du Userform
        .Cells(DernLign, 11).Value = Me.LModeadmi.List(Me.LModeadmi.ListIndex)
    End With
Application.ScreenUpdating = True
End Sub
'******************************************************************
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim i As Integer
i = 3
With Worksheets("Identifiants").Select
    While Worksheets("Identifiants").Cells(i, 1).Value <> ""
    'Boucle dans le classeur sur feuille identifiants 1ère colonne affiche la valeur tant que les cellules ne sont pas vides
    Me.LIDF.AddItem (Worksheets("Identifiants").Cells(i, 1).Value)
    i = i + 1
    Wend
    Module1.SortListBox Me.LIDF, 0, 1, 1
'*****************************************************************
With Worksheets("Produits").Select
    While Worksheets("Produits").Cells(i, 1).Value <> ""
    'Boucle dans le classeur sur feuille Produits 1ère colonne affiche la valeur tant que les cellules ne sont pas vides
    Me.LProduits.AddItem (Worksheets("Produits").Cells(i, 1).Value)
    i = i + 1
    Wend
    Module1.SortListBox Me.LProduits, 0, 1, 1

    While Worksheets("Produits").Cells(i, 2).Value <> ""
    'Boucle dans le classeur sur feuille Produits 2ème colonne affiche la valeur tant que les cellules ne sont pas vides
    Me.LModeadmi.AddItem (Worksheets("Produits").Cells(i, 2).Value)
    i = i + 1
    Wend
    Module1.SortListBox Me.LModeadmi, 0, 1, 1
End With
End With
Application.ScreenUpdating = True
End Sub
'*****************************************************************
Function FindIndexClasseur(ByVal NomClasseur) As Integer

End Function
 
Re : Problème avec 3 Listbox dans userform

Bonjour Arpette,

c'est censé servir à quoi le :

Code:
With Worksheets("Identifiants").Select

?

With doit désigner un Objet pour faciliter son utilisation dans la suite du code et éviter de reciter son nom à chaque fois
Donc je mettrais plutôt :

Code:
With Worksheets("Identifiants")

et même chose plus bas avec la feuille Produits
 
Re : Problème avec 3 Listbox dans userform


Bonjour tototiti, c'est une erreur, j'ai tendance à mettre des .Select et .Value un peu partout. Néanmoins, je les ai enlevés, mais au lancement j'ai toujours le bug. Je pense qu'il n'aime pas deux listbox dans une même feuille source.
Merci pour ton aide
@+
 
Re : Problème avec 3 Listbox dans userform

Re,

Rien qui me saute aux yeux sinon... tu utilises une sub SortListbox d'un autre module que l'on ne voit pas, mais ça ne veut pas dire que ça vienne de là... et sans fichier exemple, un peu compliqué
 
Re : Problème avec 3 Listbox dans userform

Re,

Rien qui me saute aux yeux sinon... tu utilises une sub SortListbox d'un autre module que l'on ne voit pas, mais ça ne veut pas dire que ça vienne de là... et sans fichier exemple, un peu compliqué

Re, c'est une Function que j'ai pompée sur le net, elle n'est peut-être pas adaptée pour 3 listbox (dans module 1). Je te joints mon fichier par le biais de ce lien.
Merci
@+

http://cjoint.com/?iFkPo5x1vt
 
Re : Problème avec 3 Listbox dans userform

Re,

essaye comme ça :

Code:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim i As Integer
i = 3
With Worksheets("Identifiants")
    While Worksheets("Identifiants").Cells(i, 1).Value <> ""
    'Boucle dans le classeur sur feuille identifiants 1ère colonne affiche la valeur tant que les cellules ne sont pas vides
    Me.LIDF.AddItem (Worksheets("Identifiants").Cells(i, 1).Value)
    i = i + 1
    Wend
    Module1.SortListBox Me.LIDF, 0, 1, 1
'*****************************************************************
[COLOR=red]i = 2
[/COLOR]With Worksheets("Produits")
    While Worksheets("Produits").Cells(i, 1).Value <> ""
    'Boucle dans le classeur sur feuille Produits 1ère colonne affiche la valeur tant que les cellules ne sont pas vides
    Me.LProduits.AddItem (Worksheets("Produits").Cells(i, 1).Value)
    i = i + 1
    Wend
    Module1.SortListBox Me.LProduits, 0, 1, 1
'*****************************************************************
[COLOR=red]i = 2
[/COLOR]With Worksheets("Mode")
    While Worksheets("Mode").Cells(i, 1).Value <> ""
    'Boucle dans le classeur sur feuille Produits 2ème colonne affiche la valeur tant que les cellules ne sont pas vides
    Me.LModeadmi.AddItem (Worksheets("Mode").Cells(i, 1).Value)
    i = i + 1
    Wend
    Module1.SortListBox Me.LModeadmi, 0, 1, 1
End With
End With
End With
Application.ScreenUpdating = True
End Sub
 
Re : Problème avec 3 Listbox dans userform

Re, merci tottiti, çà fonctionne très bien.
Bonne journée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
909
Réponses
15
Affichages
782
Réponses
10
Affichages
661
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…