Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 23h04   #1
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
Par défaut Bloquer l'impression avec une macro

Bonsoir,
Je voudrais savoir comment bloquer l'impression du document, si il y a rien devant un signet?
J'ai commencer un code mais ça marche pas!
Quelqu'un pourrais m'aider pour créer ce code?
Merci.

Code :
1
2
3
4
5
6
Private Sub Document_BeforePrint(Cancel As Boolean)
    If ActiveDocument.Bookmarks("SignetDate").Range.Text = "" Or ActiveDocument.Bookmarks("SignetDate").Range.Text.Value = "" Then
        Cancel = True
        MsgBox "Remplissez la Date pour pouvoir imprimer"
    End If
End Sub
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 23h36   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 336
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 336
Points : 29 243
Points : 29 243
Salut,

T'es certain de la gestion de ton évènement ?

http://heureuxoli.developpez.com/off...age=page2#L2-C
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 18h56   #3
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
Salut, je sais pas trop.
J'ai repris un code que j'ai sur excel que j'ai modifié pour Word.
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 19h30   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 336
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 336
Points : 29 243
Points : 29 243
Salut,

Voilà un exemple de code qui devrait le faire.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
Public WithEvents appWord as Word.Application
 
Private Sub appWord_DocumentBeforePrint (ByVal Doc As Document, Cancel As Boolean)
 
   If ActiveDocument.Bookmarks("SignetDate").Range.Text = "" Or ActiveDocument.Bookmarks("SignetDate").Range.Text.Value = "" Then
        Cancel = True
        MsgBox "Remplissez la Date pour pouvoir imprimer"
    End If
 
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 20h36   #5
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
re,
J'ai essayé le code ça marche pas !!
Il faut le mettre dans un module ou dans Thisdocument?
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 20h53   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 336
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 336
Points : 29 243
Points : 29 243
Salut,

Thisdocument, mais il faut initialiser la gestion.

Donc, dans l'évènement Document_Open(), on utilise l'objet application.




Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public WithEvents appWord as Word.Application
 
Sub Document_Open()
Set appWord = Word.Application
End Sub
 
Private Sub appWord_DocumentBeforePrint (ByVal Doc As Document, Cancel As Boolean)
 
   If ActiveDocument.Bookmarks("SignetDate").Range.Text = "" Or ActiveDocument.Bookmarks("SignetDate").Range.Text.Value = "" Then
        Cancel = True
        MsgBox "Remplissez la Date pour pouvoir imprimer"
    End If
 
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h49   #7
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
Merci Heureux-oli ça marche
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 22h13   #8
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
J'ai été un peu trop vite.Le code bloque bien l'impression mais quand j'écris devant le "SignetDate" il me bloque quand même l'impression.
ça marche peut être pas avec un signet?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Public WithEvents appWord As Word.Application
 
Sub Document_Open()
Set appWord = Word.Application
End Sub
 
Private Sub appWord_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 
   If ActiveDocument.Bookmarks("SignetDate").Range.Text = "" Then
        Cancel = True
        MsgBox "Remplissez la Date pour pouvoir imprimer"
    End If
 
End Sub
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 22h41   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 336
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 336
Points : 29 243
Points : 29 243
Salut,

C'est à toi de voir pourquoi, j'ai juste recopié ton code, je n'ai pas regardé ce qu'il était sensé faire.

Il ne te reste qu'à tester le contenu du signet.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h55   #10
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
Merci je vais chercher le problème du signet.
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2011, 20h46   #11
Invité de passage
 
Inscription : novembre 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 23
Points : 2
Points : 2
Bonsoir , j'ai réussi mon code pour bloquer l'impression. Je suis passer par un champ.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public WithEvents appWord As Word.Application
 
Sub Document_Open()
Set appWord = Word.Application
End Sub
 
Private Sub appWord_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 
If ActiveDocument.FormFields("Texte1").Result = "" Then
 
 Cancel = True
        MsgBox "Remplissez la Date pour pouvoir imprimer "
 
    End If
 
End Sub
A+
rider18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web