Comment faire pour Remplir une zone de liste déroulante

Je suis assez nouveau dans VBA et j'ai eu du mal avec le remplissage d'une zone de liste déroulante.
Je suis en train de remplir un combobox avec le contenu de la première colonne dans une feuille de calcul afin que je puisse supprimer la ligne correspondante de données basé sur la zone de liste déroulante de sélection.

J'ai regardé à travers plusieurs questions à la fois d'ici et d'ailleurs lors de la prise de cette question, mais je n'ai rien trouvé qui fonctionne.

Ci-dessous le code que j'ai essayé. Je suis un peu perdu, car j'ai été en train de bricoler des réponses différentes à partir d'autres questions afin d'obtenir que cela fonctionne, mais en vain. J'attends de la zone de liste déroulante à remplir avec les valeurs de la colonne 1, mais il reste vide.

Tentative #1 Ceci a impliqué la création d'une gamme dynamique:

=OFFSET(PC_DataSheet!$A$2,0,0, COUNTA(PC_DataSheet!$A$1:$A$65536)-1,1)
Private Sub UserForm1_Initialize()

    Dim rngPCNumber As Range
    Dim ws As Worksheet

    Set ws = Worksheets("Sheet1")

    For Each rngPCNumber In ws.Range("PCNumber")
        Me.PC_ListComboBox.AddItem rngPCNumber.Value
    Next rngPCNumber

End Sub

Tentative #2

Private Sub UserForm1_Initialize()

    Dim arr() As Variant

    arr = Worksheets("Sheet1").Range("C2:" & lrow).Value
    PC_ListComboBox.List = arr

End Sub

Tentative #3

Private Sub UserForm1_Initialize()

    Dim vArr As Variant
    Dim i As Integer

    vArr = Sheet1.Range("A:1").Value

    With PC_ListComboBox.Clear
         For i = LBound(vArr) To UBound(vArr)
            .AddItem vArr(i)
         Next i
    End With

End Sub

Toute aide sur ce serait vraiment apprécié!


EDIT: j'ai essayé d'insérer le code suggéré par de Gary Étudiant dans mon UserForm_Initialize() Sub, mais quand j'essaie d'ouvrir un userform j'obtiens le message d'erreur suivant:

Erreur d'exécution '9': Indice en dehors de la plage de

Lorsque je clique sur le débogage, il met en évidence ce code:

'Opens PC UserForm when pressed.
Private Sub AddPCButton_Click()

    UserForm.Show 'This line is the line highlighted by the debugger.

End Sub

Je n'ai aucune idée de ce qui est à l'origine de ce...lorsque j'utilise la suggestion de code, j'obtiens un message d'erreur, mais quand j'enlève le code de l'userform fonctionne parfaitement.
Voici Private Sub UserForm_Initialize() avec et sans la suggestion de code.

'Clears and Initializes the form when first loaded.
Private Sub UserForm_Initialize()

    'Empties combo boxes.
    PC_OSTypeComboBox = ""
    PC_HDTypeComboBox = ""

    'Populates combo boxes.
    With PC_OSTypeComboBox
        .Clear
        .AddItem "Windows 8"
        .AddItem "Windows 7"
        .AddItem "Windows Vista"
        .AddItem "Windows XP"
        .AddItem "Windows 2000"
        .AddItem "Windows 98"
        .AddItem "Windows NT"
        .AddItem "Windows 95"
    End With
    With PC_HDTypeComboBox
        .Clear
        .AddItem "SATA"
        .AddItem "IDE"
        .AddItem "SCSI"
    End With

End Sub

C'est notamment suggéré de code:

'Clears and Initializes the form when first loaded.
Private Sub UserForm_Initialize()

    Dim N As Long, i As Long
    With Sheets("Sheet1")
        N = .Cells(Rows.Count, 1).End(xlUp).Row
    End With

    With PC_NumberComboBox
        .Clear
        For i = 1 To N
            .AddItem Sheets("Sheet1").Cells(i, 1).Value
        Next i
    End With

    'Empties combo boxes.
    PC_OSTypeComboBox = ""
    PC_HDTypeComboBox = ""

    'Populates combo boxes.
    With PC_OSTypeComboBox
        .Clear
        .AddItem "Windows 8"
        .AddItem "Windows 7"
        .AddItem "Windows Vista"
        .AddItem "Windows XP"
        .AddItem "Windows 2000"
        .AddItem "Windows 98"
        .AddItem "Windows NT"
        .AddItem "Windows 95"
    End With
    With PC_HDTypeComboBox
        .Clear
        .AddItem "SATA"
        .AddItem "IDE"
        .AddItem "SCSI"
    End With

End Sub
Laren, juste curieux, je suis totalement nouveau débordement de pile, je me demandais simplement pourquoi vous avez effectué les modifications que vous avez fait?
Vous ne devriez pas écrire les balises dans les titres, puisque les questions sont déjà triés et classés par tags. Aussi, des choses comme "merci" ou "j'ai eu cette erreur trop" ne sont pas vraiment nécessaires. Ce sont des règles simples qui vous aider à rester StackOverflow organisé 🙂
Ah ok, merci!!!! <--- de ne pas être réellement facétieux ici 😉
Dans votre mise à jour, on dirait que vous pourriez être le référencement d'un inexistante Feuille de travail - vous avez oublié de mettre à jour "Sheet1" de ce que @Gary Étudiants posté?
L'erreur est "subscript out of range" si cela fait une différence. J'ai double-triple-vérifié pour nommer les problèmes et n'en trouva aucun. Comment puis-je vérifier que le nom de la feuille est inclus dans la liste des feuilles de calcul?

OriginalL'auteur ckemmann | 2015-04-10