Récupérer résultat de Application.Dialogs(xlDialogPrint), , , ...

Signaler
Messages postés
21
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
4 juillet 2020
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous, je cherche à récupérer le résultat de ma dialogbox lorsqu'elle contient des arguments

Lorsqu'elle contient pas d'argument
res = Application.Dialogs(xlDialogPrint).Show

j'obtiens res = true or false selon que j'ai annulé ou pas mon impression

maintenant si j'écris
res = Application.Dialogs(xlDialogPrint).Show , 1, 0 ,2

j'obtiens une erreur
j'ai tatonné avec plusieurs instructions
a,b,c,d= Application.Dialogs(xlDialogPrint).Show , 1, 0 ,2
array(a,b,c,d=) Application.Dialogs(xlDialogPrint).Show , 1, 0 ,2
etc, etc...

si quelqu'un a une solution pour récupérer le résultat de Application.Dialogs(xlDialogPrint).Show lorsque celui ci est suivi d'options

merci à tous et bon codage
Gorzyne

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut

Je ne vois pas du tout à quoi peuvent servir ces paramètres 1, 0 et 2, ni quel genre de résultat peut revenir de ce genre de dialogue, mais bon.
En supposant que cette fenêtre renvoie plusieurs résultats, as-tu essayé ça, en respectant un tout petit peu les règles d'utilisation des parenthèses dictées par VB et rappelées <dans l'aide> :
Dim mesRésultats As Variant
mesRésultats = Application.Dialogs(xlDialogPrint).Show (1, 0 ,2)
Dim r As Integer
For r = LBound(mesRésultats) To UBound(mesRésultats)
    MsgBox mesRésultats(r)
Next r

Mais d'après l'aide, ces fenêtres renvoient True ou False ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Oublie le tableau de résultat.
Ton problème ne vient que du manque d'utilisation des parenthèses.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Je pense que tu doives passer par "Parent"

 Application.Dialogs(xlDialogPrint).Show   
    MsgBox Application.Dialogs(xlDialogPrint).Parent.ActivePrinter


Ceci est un exemple pour afficher le nom de l'imprimante, mais tu peux ressortir plus de renseignements.

Si tu regardes dans la fenêtre Espion en mettant un arrêt sur la ligne du MsgBox, tu verras toutes sortes de renseignements qui pourraient t'être utiles.


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
21
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
4 juillet 2020

oui merci j'avais trouvé en fait merci à la patronne, en rajoutant de simples parenthèses je récupère le résultat principal, true/false qui m'indique si l'impression a été annulé ou non.. les options correspondent aux options d'impressions, il y en a une quinzaine de possible, choix des pages, nombre de copies, etc...)

question subsidiaire, enfin je devrai peut être ouvrir un autre thread pour ça, si on veut piloter le choix du bac, est ce qu'une des 15 options de cette instruction permet de le faire ? il y a bien une option "feed" mais je suis sceptique, les imprimantes c'est tellement variable d'une config à une autre comme vous savez

merci pour la soluce et votre réactivité en tout cas c'était bien ça, de simples parenthèses à rajouter
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Malheureusement, sous Excel, je ne pense pas que tu puisses interagir avec l'imprimante comme on pourrait le faire sous VB6 avec l'objet Printer

Comme indiqué dans l'aide:
Référence du développeur Excel
Application.Dialogs, propriété
Cette propriété renvoie une collection Dialogs qui représente toutes les boîtes de dialogue prédéfinies. En lecture seule


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI