Salut,
Commondialog est un controle VB à l'origine il me semble, donc il ne sera pas disponible sur toutes les machines.
Tu mets le fichier "comdl32.ocx"dans le même repertoire que ton appli. Ensuite tu le références:
sub Ref()
regocx activeworbook.path & "\","comdl32.ocx"
end sub
Sub RegOcx(Chemin$, Optional NomOcx$)'Zon
Dim CheSyS$
If Dir(Chemin) = "" Then Exit Sub
CheSyS = RepertoireSyS
If Dir(CheSyS & NomOcx) = "" Then FileCopy Chemin, CheSyS & NomOcx
Shell CheSyS & "regsvr32.exe " & NomOcx & " /s", 0
End Sub
Function RepertoireSyS$()
With CreateObject("Scripting.FileSystemObject")
RepertoireSyS = .GetSpecialFolder(1) & "\"
End With
End Function
Par contre, si c'est pour ouvrir un fichier tu as application.getopenfilename (voire L'api du même nom) qui peut faire l'affaire. La collection dialogs pour l'évènement printer application.dialogs(xldialogprint).show ....
A+++