List box

Oxygene31

XLDnaute Nouveau
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
 
G

Guest

Guest
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+
 
G

Guest

Guest
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:

Oxygene31

XLDnaute Nouveau
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
 
G

Guest

Guest
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:

Discussions similaires

Réponses
21
Affichages
455
Réponses
1
Affichages
210

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 698
dernier inscrit
miespetico