Bonjour,
Je vais commencer par dire que je suis débutant.
Sur ces bonnes bases, je vous explique mon problème j'ai créée un UserForm avec à l'intérieur un ComboBox contenant tous les mois d'une année. Je voudrai pouvoir récupérer le résultat sélectionné par l'utilisateur du ComboBox dans une varible pour après l'utiliser dans la procédure Sub Workbook_Open() ainsi que dans un de mes modules. Mais je beau essayai dans tous les sens y a rien a faire je n'arrive pas porté ma variable... Je pense que je dois utiliser les notion de procédure public non? Mais je crois que je n'y arrive pas. S'il vous plait donner moi un coup de main.

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
Sub UserForm_Initialize()
ComboBox1.Clear
ComboBox1.AddItem "Janvier"
ComboBox1.AddItem "Février"
ComboBox1.AddItem "Mars"
ComboBox1.AddItem "Avril"
ComboBox1.AddItem "Mai"
ComboBox1.AddItem "Juin"
ComboBox1.AddItem "Juillet"
ComboBox1.AddItem "Août"
ComboBox1.AddItem "Septembre"
ComboBox1.AddItem "Octobre"
ComboBox1.AddItem "Novembre"
ComboBox1.AddItem "Décembre"
 
End Sub
 
Sub CommandButton1_Click()
    mois = ComboBox1.Value
Unload Me
End Sub
 
Sub CommandButton2_Click()
Unload Me
End Sub
Ma procédure qui se lance au démarrage :
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
46
47
48
49
50
51
52
53
54
55
56
57
58
Public Sub Workbook_Open()
 
    'Execute le boîte de dialogue
    UserForm1.Show
 
    datejour = Date - 1
    Modele = "Modele.xls"
    mois2 = Month(Now) - 1
    année2 = Year(Now)
    NomRepertoire = ActiveWorkbook.Path & "\Logs"
    MsgBox mois
    MsgBox année
 
    'If mois = Month(Now) And année = Year(Now) Then
    'NomFichier = ActiveWorkbook.Path & "\Fichier_" & mois2 & "_" & année2 & ".xls"
    'Else
    NomFichier = ActiveWorkbook.Path & "\Fichier_" & mois & "_" & année & ".xls"
    'End If
 
    'Commande de refresh du document
    Application.ScreenUpdating = True
 
    'Si on est sur le modèle de la Check List, on ouvre une fenêtre pour l'enregistrement de celle ci
    If (ActiveWorkbook.Name <> Modele) Then
    Exit Sub
    Else
    Set fso = CreateObject("Scripting.FileSystemObject")
 
    'Création du Répertoire
    If Not (fso.FolderExists(NomRepertoire)) Then fso.CreateFolder (NomRepertoire)
 
    'Si Fichier Excel existe
    If fso.FileExists(NomFichier) Then
        'Ouvrir le fichier existant
        Workbooks.Open FileName:=NomFichier
        Workbooks(Modele).Close SaveChanges:=False
    Else
        'Créer un nouveau fichier Excel
        Dim lngCount As Long
        With Application.FileDialog(msoFileDialogSaveAs)
            .AllowMultiSelect = False
            .InitialFileName = NomFichier
            If .Show = -1 Then
                For lngCount = 1 To .SelectedItems.Count
                    Workbooks(Modele).SaveAs (.SelectedItems(lngCount))
                Next lngCount
            Else
            Exit Sub
            End If
        End With
        ActiveWorkbook.Save
    End If
    End If
'recupere l'espace memoire utiliser par fso
Set fso = Nothing
'Call Connect
 
End Sub
Encore merci pour votre aide.