Bonjour,

alors voilà: un module1 qui contient la function suivante (pour permettre le choix du dossier de destination):

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
Public Function choisirdestination() As String
 
Dim boitedialogue As FileDialog
Dim Destination As String
 
Set boitedialogue = Application.FileDialog(msoFileDialogFolderPicker)
boitedialogue.AllowMultiSelect = False
boitedialogue.Title = "choisir un dossier"
boitedialogue.Show
If boitedialogue.SelectedItems(1) = "" Then
    MsgBox "Selectionner un dossier"
    Else
    Destination = boitedialogue.SelectedItems(1)
End If
 
End Function
Elle fonctionne; mais je veux l'utiliser dans un objet de classe (sur un état, j'ai un bouton export pour générer un pdf); le code suivant ne fonctionne pas:
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
Private Sub commExportPdf_Click()
 
Dim NomFichier As String
Dim Dmaj As String
Dim Site As String
Dim Cible As String
 
Dmaj = Replace(DT_Maj, "/", "")
Site = Replace([Nom Site], "/", "%")
NomFichier = "Fiche Technique" & "_" & Site & "_" & Dmaj & ".pdf"
 
Cible = choisirdestination()
 
MsgBox Cible
MsgBox NomFichier
DoCmd.OutputTo acOutputReport, , acFormatPDF, Cible & "/" & NomFichier, True
 
End Sub
Je comprends que la Private Sub commExportPdf_Click(), exécute la function choisirdestination mais ne conserve pas la variable destination de cette function (MsgBox de ligne 14 reste vide). Remplacer Dim par Static? Qu'est-ce qui est approprié dans mon module1 ? Sub? Function? (pour moi il me faut une valeur, donc c'est function)...

Auriez vous une piste?