OVH Cloud OVH Cloud

FENETRE DIALOGUE IMPRIMER SANS LANCER L'IMPRESSION

15 réponses
Avatar
Fred
Bonsoir =E0 tous,

Je heurte sur 2 micro petiot problemo.
Je voudrais que l'utilisateur lambda puisse imprimer 2 plages
diff=E9rentes d'un tableau.
1=B0 - Je voudrais qu'il ne puisse PAS imprimer par le menu Fichier ni
en cliquant sur le bouton imprimer.
Je ne sais pas d=E9sactiver ces m=E9thodes uniquement pour cette feuille.
Le reste du classeur doit s'imprimer comme d'hab.

2=B0 - Qu'il soit oblig=E9 d'imprimer en cliquant sur l'un ou l'autre des
2 boutons macro.
Je sais faire par l'enregistreur : Selectionner la plage nomm=E9e, la
designer zone d'impression.
Ce que je n'arrive pas =E0 faire c'est afficher la boite de dialogue"
imprimer" avec le petit aper=E7u de la page et que la macro s'arr=E8te
l=E0 et rende la main =E0 l'utilisateur. Ceci permettrait que
l'utilisateur choisisse le nombre de copies et imprime ou annule...
Par l'enregistreur je n'arrive qu'=E0 lancer l'impression et pas
uniquement =E0 afficher la boite de dialogue.

Merci =E0 celui qui a le temps.
Fredo

5 réponses

1 2
Avatar
Fredo
Bonjour MICHEL.

Remplace ceci : Dim Arr() Par Dim Arr


ERREUR de compilation Variable non définie.
Le Titre de la Pro devient Jaune mais aussi elt est selectionné.

Si j'enlève la déclaration Option explicite cela bute ensuite sur :

ERREUR de Compilation. Membre de méthode ou de données introuvable.
Le Titre de la Pro devient Jaune mais aussi .FindControl est
selectionné.

Et j'oubliais, si tu as une version Excel 97, il faut réécrire
en partie le code...


Non c'est la Version 2004 pour nous. (Celle ou est apparue le Centre de
Projet.)

A te lire
Fredo

Avatar
jps
appelle-le Denis, fredo : notre québécois, qui explique même l'inexplicable,
préférera...
jps

"Fredo" a écrit dans le message de news:


Bonjour MICHEL.
Avatar
Fredo
Bonjour JPS et DENIS (et tous autres présents et à venir, salut)

Qui doit appeler qui ?
Il est quelle heure au Quebéc ?
Appeler ça veux dire mailer en direct hors Forum ?
Inexplicable : cherchez la femme.

Fredo perplexe


On 20 nov, 08:12, "jps" wrote:
appelle-le Denis, fredo : notre québécois, qui explique même l'inex plicable,
préférera...
jps

"Fredo" a écrit dans le message de news:


Bonjour MICHEL.


Avatar
MichDenis
Je crois deviner que tu es sur un Mac...et c'est un environnement que je ne connais pas !

Une dernière tentative, remplace les 2 procédures par ceux-ci :`
Ces 2 procédures sont compatibles avec Excel 97
'-------------------------------
Sub Imprimer()
With Application.CommandBars
.Item("Worksheet menu bar").FindControl(ID:=4, Recursive:=True).Enabled = False
.Item("Standard").FindControl(ID:%21, Recursive:=True).Enabled = False
.Item("Toolbar List").Enabled = False
End With
End Sub
'-------------------------------
Sub ActiverImprimer()
With Application.CommandBars
.Item(1).FindControl(ID:=4, Recursive:=True).Enabled = True
.Item("Standard").FindControl(ID:%21, Recursive:=True).Enabled = True
.Item("Toolbar List").Enabled = True
End With
End Sub
'-------------------------------

Et tu peux supprimer celle-ci, elle est devenu inutile
'-------------------------
Sub PasImpression()
MsgBox "Commande désactivée.", vbCritical + vbOKOnly, "Le boss"
End Sub
'-------------------------





"Fredo" a écrit dans le message de news:

Bonjour JPS et DENIS (et tous autres présents et à venir, salut)

Qui doit appeler qui ?
Il est quelle heure au Quebéc ?
Appeler ça veux dire mailer en direct hors Forum ?
Inexplicable : cherchez la femme.

Fredo perplexe


On 20 nov, 08:12, "jps" wrote:
appelle-le Denis, fredo : notre québécois, qui explique même l'inexplicable,
préférera...
jps

"Fredo" a écrit dans le message de news:


Bonjour MICHEL.


Avatar
Fredo
Bonsoir MichDenis, je te felicite pour ta perspicacité :-)
Non, je ne te lacherai pas la grappe :-)

Effectivement c'est un MAC, mais n'ai pas peur. La plus grosse
différence de ce type de machine c'est qu'on appuis pas sur le bouton
démarrer pour arréter. Le reste c'est quasi pareil. Peu différent
pour Excel (SAUF contrôles et Windows)

Réponse à ta derniere proposition : en VBA 97 ça ne marche pas.(Je
suis surpris que tu m'ai demandé ce test : les Mac ont l'eau chaude.
Excel MAC 2004 systeme 10 c'est le même stade de developpement que
votre dernier stade sous PC.)

Question 1 : tu ne ma pas submergé d'explications sur ta stratégie
pour mon soucis de desactiver l'impression SAUF en utilisant le bouton
macro Pour imprimer.
Si je t'ai compris ta pro initiale (pas celle VBA 97) cherche dans
chaque barre d'outil un contrôle désigné "elt"
Je n'ai pas compris ce quelle lui fait à ce controle ELT. Je ne sait
pas non plus a quoi sert ARAY.

J'ai enregistré les 2 instructions ci-dessous (pour te montrer) Le n°
du bouton c'est son rang dans la barre et il n'est pas absolu. Ca ne
marche que sur ma barre perso.

Sub SUPPRIMER_outilImprimer()
Application.CommandBars("Excel FRED").Controls(1).Delete
'Controls(1) c'est le 1er bouton d'outil imprimer
End Sub
'--------------------------
Sub REMETTRE_loutilImprimer()
Application.CommandBars("Excel FRED").Controls.Add
Type:=msoControlButton, _
Id:=4, Before:=1
End Sub

Idée bête du candide.
Si dans la feuille Workbook à l'évenement before print on a une pro
qui dit :
Si l'evénement imprimer provient lorsque la feuille 1 est active (ou
si on veux imprimer feuil 1) dans ce cas refuser l'impression (ABORT
??) et envoyer message courtois à Gaston : "Connard utilise le bouton
macro."
Par contre si ce n'est pas la feuille 1, laisser faire l'impression.

Si ca te semble jouable je voudrais essayer de faire le code avec IF
THEN, mais je ne sais pas faire l'instruction ABORT.

Ralala, t"es bien patient d'avoir lu jusque là.

Fredo



Je crois deviner que tu es sur un Mac...et c'est un environnement que je ne connais pas !

Une dernière tentative, remplace les 2 procédures par ceux-ci :`
Ces 2 procédures sont compatibles avec Excel 97
'-------------------------------
Sub Imprimer()
With Application.CommandBars
.Item("Worksheet menu bar").FindControl(ID:=4, Recursive:=True).E nabled = False
.Item("Standard").FindControl(ID:%21, Recursive:=True).Enabled = False
.Item("Toolbar List").Enabled = False
End With
End Sub
'-------------------------------
Sub ActiverImprimer()
With Application.CommandBars
.Item(1).FindControl(ID:=4, Recursive:=True).Enabled = True
.Item("Standard").FindControl(ID:%21, Recursive:=True).Enabled = True
.Item("Toolbar List").Enabled = True
End With
End Sub
'-------------------------------

Et tu peux supprimer celle-ci, elle est devenu inutile
'-------------------------
Sub PasImpression()
MsgBox "Commande désactivée.", vbCritical + vbOKOnly, "Le boss"
End Sub
'-------------------------





"Fredo" a écrit dans le message de news:

Bonjour JPS et DENIS (et tous autres présents et à venir, salut)

Qui doit appeler qui ?
Il est quelle heure au Quebéc ?
Appeler ça veux dire mailer en direct hors Forum ?
Inexplicable : cherchez la femme.

Fredo perplexe


On 20 nov, 08:12, "jps" wrote:
appelle-le Denis, fredo : notre québécois, qui explique même l'in explicable,
préférera...
jps

"Fredo" a écrit dans le message de news:


Bonjour MICHEL.




1 2