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 :
Voici mon le code mon Userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 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
Partager