OVH Cloud OVH Cloud

Interdire l'impression d'un document

7 réponses
Avatar
claudem
Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude

7 réponses

Avatar
michdenis
Bonjour Claude,

Dans le ThisWorkbook de ton classeur, copie ce qui suit.
Bien que les commandes soient toujours actives, aucune
impression du fichier se lancera.

'-------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Cancel = True

End Sub
'-------------------


Salutations!



"" a écrit dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude
Avatar
claudem
Je te remercie, mais comment faire pour qu'un administrateur puisse imprimer
à l'aide d'un password, il faut inhiber cette fonction? de quelle façon ?


Bonjour Claude,

Dans le ThisWorkbook de ton classeur, copie ce qui suit.
Bien que les commandes soient toujours actives, aucune
impression du fichier se lancera.

'-------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Cancel = True

End Sub
'-------------------


Salutations!



"" a écrit dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude





Avatar
papou
Bonjour
Ce ne sera donc possible qu'avec VBA.
Pour éviter de trop fastidieuses explications (!), voici un exemple prêt à
l'emploi :
http://cjoint.com/data/eoqksX6TGr.htm

Pour "visiter" le code tu vas dans l'éditeur Visual Basic (Alt F11 quand tu
es dans Excel) et tu parcours les objets Userform1 (clic droit Code) et
ThisWorkbook (double-clic)
(Le mot de passe est stocké dans le code du Userform sur le bouton).

Cordialement
Pascal

"" a écrit
dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude


Avatar
michdenis
Bonjour Claude,

Si tu ne veux pas être pris à utiliser des "InputBox", je te suggères ceci:

Attention, tu dois adapter le nom des objets selon ton application.

A ) Ajoute une feuille, tu insères tous les noms d'usager (admin) qui sont susceptibles
d'imprimer ce fichier dans la colonne A:A par exemple
Tu peux masquer cette feuille pour qu'elle soit inaccessible de la part des usagers
en utilisant cette ligne de code :
Worksheets("Admins").Visible = xlveryhidden


Dans le ThisWorkbook :
'--------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim A As Variant
A = Application.Match(FindUserName, Feuil1.Range("A1:A10"), 0)
If Not IsNumeric(A) Then
Cancel = True
Else
'l'impression se lance
'si tu veux définir des trucs d'impression
'tu insères ton code ici.
End If

End Sub
'--------------------------

Et dans un module standard, insères le code suivant :

'En haut du module standard, déclaration de l'API
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

'-----------------
Public Function FindUserName() As String
' Andrew, mpep
Dim strName As String
strName = Space$(512)
GetUserName strName, Len(strName)
FindUserName = Trim$(strName)
End Function
'-----------------



Salutations!


"" a écrit dans le message de news:

Je te remercie, mais comment faire pour qu'un administrateur puisse imprimer
à l'aide d'un password, il faut inhiber cette fonction? de quelle façon ?


Bonjour Claude,

Dans le ThisWorkbook de ton classeur, copie ce qui suit.
Bien que les commandes soient toujours actives, aucune
impression du fichier se lancera.

'-------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Cancel = True

End Sub
'-------------------


Salutations!



"" a écrit dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude





Avatar
claudem
Merci à toi, mais comment afficher le Userform? (je suis vraiment null)


Bonjour
Ce ne sera donc possible qu'avec VBA.
Pour éviter de trop fastidieuses explications (!), voici un exemple prêt à
l'emploi :
http://cjoint.com/data/eoqksX6TGr.htm

Pour "visiter" le code tu vas dans l'éditeur Visual Basic (Alt F11 quand tu
es dans Excel) et tu parcours les objets Userform1 (clic droit Code) et
ThisWorkbook (double-clic)
(Le mot de passe est stocké dans le code du Userform sur le bouton).

Cordialement
Pascal

"" a écrit
dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude







Avatar
claudem
Un grand merci


Bonjour Claude,

Si tu ne veux pas être pris à utiliser des "InputBox", je te suggères ceci:

Attention, tu dois adapter le nom des objets selon ton application.

A ) Ajoute une feuille, tu insères tous les noms d'usager (admin) qui sont susceptibles
d'imprimer ce fichier dans la colonne A:A par exemple
Tu peux masquer cette feuille pour qu'elle soit inaccessible de la part des usagers
en utilisant cette ligne de code :
Worksheets("Admins").Visible = xlveryhidden


Dans le ThisWorkbook :
'--------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim A As Variant
A = Application.Match(FindUserName, Feuil1.Range("A1:A10"), 0)
If Not IsNumeric(A) Then
Cancel = True
Else
'l'impression se lance
'si tu veux définir des trucs d'impression
'tu insères ton code ici.
End If

End Sub
'--------------------------

Et dans un module standard, insères le code suivant :

'En haut du module standard, déclaration de l'API
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

'-----------------
Public Function FindUserName() As String
' Andrew, mpep
Dim strName As String
strName = Space$(512)
GetUserName strName, Len(strName)
FindUserName = Trim$(strName)
End Function
'-----------------



Salutations!


"" a écrit dans le message de news:

Je te remercie, mais comment faire pour qu'un administrateur puisse imprimer
à l'aide d'un password, il faut inhiber cette fonction? de quelle façon ?


Bonjour Claude,

Dans le ThisWorkbook de ton classeur, copie ce qui suit.
Bien que les commandes soient toujours actives, aucune
impression du fichier se lancera.

'-------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)

Cancel = True

End Sub
'-------------------


Salutations!



"" a écrit dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude










Avatar
claudem
J'ai trouvé merci


Merci à toi, mais comment afficher le Userform? (je suis vraiment null)


Bonjour
Ce ne sera donc possible qu'avec VBA.
Pour éviter de trop fastidieuses explications (!), voici un exemple prêt à
l'emploi :
http://cjoint.com/data/eoqksX6TGr.htm

Pour "visiter" le code tu vas dans l'éditeur Visual Basic (Alt F11 quand tu
es dans Excel) et tu parcours les objets Userform1 (clic droit Code) et
ThisWorkbook (double-clic)
(Le mot de passe est stocké dans le code du Userform sur le bouton).

Cordialement
Pascal

"" a écrit
dans le message de news:

Bonjour,

Je suis débutant dans excel 2002 et je souhaite lors de l'ouverture d'un
classeur interdire l'impression aussi bien en barre de menu qu'en icone et
pouvour le rétablir avec un passord, comment faire?
Merci de votre aide
Claude