Impossible de récupérer une variable d'une procédure à l'autre
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:
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:
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.