• Initiateur de la discussion Initiateur de la discussion Oxygene31
  • 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 !

O

Oxygene31

Guest
Bonjour à tous

Alors voila j'aimerai alimenter une listbox à partir des données d'une feuille sans doublons et pouvoir accéder a ces données depuis les autres feuilles (même vide).
Mais quand je change de feuille la list box s'adapte aux données de la feuille active. Je n'arrive pas a trouver de solutions. Voici le code que j'utilise actuellement :

Code:
Private Sub UserForm_Initialize()
    Dim Cell As Range
    Dim Unique As New Collection
    Dim Valeur As Range
    Dim i As Integer
    With Sheets("Patient")
     i = Range("A65536").End(xlUp).Row
  
    On Error Resume Next
    For Each Cell In Range("A2:A" & i)
        Unique.Add Cell, CStr(Cell)
    Next Cell
    On Error GoTo 0
  
    For Each Valeur In Unique
        Me.Nom_patient2.AddItem Valeur
    Next Valeur
  End With
End Sub

PS: J'ai testé d'autres scripts présents sur sur ce fofo et c'est le même pb.

Merci pour vos réponses
 
Re : List box

Bonjour,
Il te manque les . devant les Cell et les Range, qui font référence à la feuille déclarée sur la ligne With

Code:
Private Sub UserForm_Initialize()
    Dim Cell As Range
    Dim Unique As New Collection
    Dim Valeur As Range
    Dim i As Integer
    With Sheets("Patient")
        i = .Range("A65536").End(xlUp).Row
        On Error Resume Next
        For Each .Cell In .Range("A2:A" & i)
            Unique.Add .Cell, CStr(.Cell)
        Next Cell
        On Error GoTo 0
    End With
    For Each Valeur In Unique
        Me.Nom_patient2.AddItem Valeur
    Next Valeur
End Sub

A+
 
Re : List box

Re,

Gros Hello Kjin🙂

Oui Le .Cell de la boucle for était le seul devant lequel il ne fallait pas mettre de point. Et bien-sûr j'en ai mis.

C'est pour éviter ce genre d'erreur que je n'appelle jamais mes variables par des noms qui ressemble à des mots clefs.

A++
 
Dernière modification par un modérateur:
Re : List box

Code:
Private Sub UserForm_Initialize()
    Dim Cell As Range
    Dim Unique As New Collection
    Dim Valeur As Range
    Dim i As Integer
    With Sheets("Patient")
        i = .Range("A65536").End(xlUp).Row
        On Error Resume Next
        For Each Cell In .Range("A2:A" & i)
            Unique.Add .Cell, CStr(.Cell)
        Next Cell
        On Error GoTo 0
    End With
    For Each Valeur In Unique
        Me.Nom_patient2.AddItem Valeur
    Next Valeur
End Sub

La, plus d'erreurs mais la listbox n'affiche plus aucunes valeurs
 
Re : List box

Re,

Décidement c'est le nom de la variable 'Cell' qui m'a foutu dedans:

Laisse les points devant les Range et enlève devant les Cell. En fait il faut les mettre devant les objets range et pas devant les variables.

Code:
       For Each Cell In .Range("A2:A" & i)
            Unique.Add Cell, CStr(Cell)
       Next Cell

Désolé.

A+
 
Dernière modification par un modérateur:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
912
Retour