Récupérer selection d'une ListBox

Bonjour,

Je m'initie à la programmation VBA alors j'ai créé une petite macro qui copie la feuille d'un classeur fermé et la colle dans autre classeur ouvert( où est exécuter la macro). Jusqu'ici tout va bien et tout marche bien.

Voilà où commence les problèmes, je voulu améliorer cette macro en affichant une fenêtre au debut qui permettrait de choisir quel feuille du classeur à copier.

Mon problème actuel est que je n'arrive pas à récupérer la sélection de la ListBox pour ainsi la stocker dans une variable.

Quelqu'un peut-il m'aider ?

Voici ma macro

Public Sub MiseàJour()

    'Prépare 2 objets
    Dim ClasseurFerme As Object
    Dim FeuilleFermee As Object
    Dim nom_feuilleFermee As String
    Dim ws As Worksheet

    'Affecte le classeur à l'objet
    Set ClasseurFerme = GetObject("F:\TAFF du 04_12_2017\Recurring info.xlsx")
    UserForm1.Show

    Do While rep_ok = False

    nom_feuilleFerme = ListBox1.SelectedItem.ToString()

    'Parcours l'ensemble des feuilles du classeur
    For Each ws In ClasseurFerme.Worksheets
        If ws.Name = nom_feuilleFerme Then
            Set FeuilleFermee = ws
            rep_ok = True
        End If

    Next

    If rep_ok = False Then
        MsgBox "Nom de feuille introuvable", vbInformation, "Oupss!"
    End If

    Loop
    'puis la feuille
    'Set FeuilleFermee = ClasseurFerme.Worksheets("nom_feuilleFerme")

    'Copie une plage
    FeuilleFermee.Range("A2:AA500").Copy

    'et la colle dans la feuille active (Classeur contenant la macro)
    ActiveSheet.Range("A2:AA500").Select
    ActiveSheet.Paste

    'Libère les variables
    Set FeuilleFermee = Nothing
    Set ClasseurFerme = Nothing

End Sub

Voici mon le code mon Userform

Private Sub UserForm_Initialize()

With Me.ListBox1
    .AddItem "Table Operateurs"
    .AddItem "Country"
    .AddItem "Operateur Simplifie"
    .AddItem "Bioss Rate Plan"
    .AddItem "Table OPE Interco DF"
    End With

End Sub

Private Sub OKButton_Click()
    Dim SelectedItems As String
    Dim i As Integer

    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
           SelectedItems = SelectedItems & ListBox1.List(i) & vbNewLine
    End If
    Next i

    If SelectedItems = "" Then
         MsgBox "Nothing selected"
    Else
         MsgBox "Selected Items: " & vbNewLine & SelectedItems
    End If

    Unload UserForm1
End Sub

Bonjour,

Je ne comprends pas très bien le problème que tu rencontres ...

Puisque tu récupères déjà la sélection de ta ListBox ...dans le MsgBox ....

Bonjour James007,

Mon problème est que lorsque je veux récupérer la sélection (qui est une chaine de caractère pour la stocker dans nom_feuilleFerme), j'ai le code erreur suivant :

nom_feuilleFerme = ListBox1.SelectedItem.ToString()

J'ai l'erreur d'exécution "424" : Objet Requis

Bonsoir,

ToString()

C'est du VB.Net, cette propriété n'existe pas en VBA !

Utilises :

MaVariable = ListBox1.Value

Variable que tu déclares en tête du module standard

Bonjour Theze,

Malgré le changement de ligne, j'ai toujours l'erreur d'execution "424"

Merci de m'aider

Re,

Ci-joint ton fichier ... à tester ...

En espèrant que cela t'aide ...

Bonjour James007,

Je tiens d'abord à te remercier pour ton devouement à me porter.

En revanche cela ne marche toujours pas, lorsque je sélectionne une des feuilles fermé de mon classeur dans la ListBox afin de la stocker dans ma variable nom_feuilleFermee pour ensuite tester si elle existe ou pas par la suite mais ça ne marche toujours ( elle me renvoie que le nom de la feuille est inexistante, alors qu'elle existe )

Je joins les deux fichiers ci dessous.

Mille Merci

124recurring-info.xlsx (13.75 Ko)
Rechercher des sujets similaires à "recuperer selection listbox"