Bonjour le forum,

J'utilise une macro qui me permet d'imprimer un fichier pdf enregistrer sur un serveur le voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String _
    , ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
Sub Print()
    Dim NomFichier As String
    Dim x As Long
    x = FindWindow("XLMAIN", Application.Caption)
    NomFichier = Range("A1") & Range("A2") & Range("A3") 'A1=chemin, A2=Nom du fichier, A3=extensions du fichier
    ShellExecute x, "print", NomFichier, "", "", 1
 End Sub
Comme vous pouvez le constater j'utilise des options explicit en début de code. Si je ne les mets pas le code ne fonctionne pas.
Y aurait-il d'autre type de code qui permettrai de faire la même chose sans option explicit particulière? (je souhaite imprimer uniquement du fichier . pdf)
Je vous pose cette question car ces options explicit font planter une autre macro qui est dans le même module.
Donc pour contourner ce problème j'ai deux modules dans mon fichier, (un pour toute mes macro et un uniquement pour celle-ci)
Si cela est possible j'aimerai avoir qu'un module dans mon fichier (d'où ma question)! C'est peut être un peu du luxe ce que je demande ...lol
Mais dans tout les cas je pense que ce code peut être utile à d'autre personne donc je partage

Merci d'avance pour vos réponses
@+