Petite question VBA
Résolu
Max
-
Max -
Max -
Bonjour,
j'essaie depuis hier de récupérer une valeur d'une clé de registre pour une macro et j'ai systématiquement un message d'erreur au lancement.
Mon Msgbox remonte pourtant bien la bonne info mais ne l'exploite pas dans le reste de ma commande ...
Mon script est le suivant:
Sub ShowPrinterProperties()
Set c = CreateObject("WScript.Shell")
impr = c.RegRead("HKEY_CURRENT_USER]\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device")
'MsgBox impr
Shell "rundll32.exe printui.dll,PrintUIEntry /e /n&impr"
End Sub
Concrètement, je souhaite tout simplement ouvrir la fenêtre de configuration de la mise en page du document sans passer par fichier > Imprimer et qu'il récupère les options d'impressions pour l'imprimante qui est connectée par défaut sur le poste de travail.
J'ai fouillé partout et je ne trouve rien.
Merci beaucoup à celui ou celle qui résoudra ce petit problème.
Il doit certainement manqué une petite bricole mais je sèche .....
Dans l'attente de vous lire, je vous souhaite une bonne journée.
j'essaie depuis hier de récupérer une valeur d'une clé de registre pour une macro et j'ai systématiquement un message d'erreur au lancement.
Mon Msgbox remonte pourtant bien la bonne info mais ne l'exploite pas dans le reste de ma commande ...
Mon script est le suivant:
Sub ShowPrinterProperties()
Set c = CreateObject("WScript.Shell")
impr = c.RegRead("HKEY_CURRENT_USER]\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device")
'MsgBox impr
Shell "rundll32.exe printui.dll,PrintUIEntry /e /n&impr"
End Sub
Concrètement, je souhaite tout simplement ouvrir la fenêtre de configuration de la mise en page du document sans passer par fichier > Imprimer et qu'il récupère les options d'impressions pour l'imprimante qui est connectée par défaut sur le poste de travail.
J'ai fouillé partout et je ne trouve rien.
Merci beaucoup à celui ou celle qui résoudra ce petit problème.
Il doit certainement manqué une petite bricole mais je sèche .....
Dans l'attente de vous lire, je vous souhaite une bonne journée.
1 réponse
-
Bonjour
comme ceci
Shell "rundll32.exe printui.dll,PrintUIEntry /e /n" & impr
-
Merci pour cette réponse très rapide !!!
J'ai juste un soucis, je récupère des imprimantes sur un serveur d'impression et une des 2 imprimantes s'appelle Copieurs Konica.
La commande ne fonctionne pas quand c'est la Copieurs Konica mais fonctionne quand c'est l'autre imprimante Imp001. Je pense que le problème vient de l'espace dans le nom de l'imprimante. -
Ah bah j'en ai discuté avec mon collègue et il m'a conseillé d'utiliser les variables ASCII des guillemets donc j'ai testé et c'est good !
La ligne de commande est donc désormais:
Shell "rundll32.exe printui.dll,PrintUIEntry /e /n" & Chr(34) & impr & Chr(34)
Merci beaucoup jordane45 pour ton aide et ta disponibilité.
-