IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

interdire une impression d'un onglet si la condition dans la case E7 n'est pas remplie [XL-2016]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    responsable formation
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : responsable formation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut interdire une impression d'un onglet si la condition dans la case E7 n'est pas remplie
    Bonjour,

    J'ai un dossier comprenant 40 onglets ayant des noms différents et ayant tous la même structure et notamment la case E7 comprend une liste de 3 choix dont un noté : A RENSEIGNER. (il faut que l'utilisateur choisisse dans les 2 autres : oui ou non). Cette réponse est très important pour la suite et c'est pour cela que je voudrai bloquer l'impression de l'onglet en cours, si cette case E7 est toujours en état A RENSEIGNER, et ce quel que soit le libellé des autres onglets avant ou après celui en cours. J'ai essayé avec le code ci-dessous mais cela ne fonctionne pas, soit car ce code est faux, soit je ne sais pas où mettre ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        Dim ws As Worksheet
        Dim targetSheet As Worksheet
     
        Set targetSheet = ActiveSheet 'L'onglet en cours d'impression
     
            'Si la cellule E7 dans l'onglet en cours est égale à "A RENSEIGNER", annulez l'impression
            If targetSheet.Range("E7").Value = "A RENSEIGNER" Then
                Cancel = True
                MsgBox "ATTENTION : L'impression est interdite pour cet onglet car le forfait n'est pas renseigné.", vbExclamation, "Impression interdite"
           End If
    End Sub
    Merci encore une fois de votre précieuse aide.
    Cordialement

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 759
    Points : 28 611
    Points
    28 611
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Cette procédure événementielle doit être placée dans le module ThisWorkbook

    Même si cela n'a pas d'incidence sur la bonne marche de la procédure, la ligne 2 peut être supprimée car elle ne sert à rien, la variable ws n'étant pas utilisée et je ne vois pas l'intérêt d'utiliser la variable targetSheet . ActiveSheet suffirait amplement

    Voici une version allégée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
      ' Si la cellule E7 dans l'onglet en cours est égale à "A RENSEIGNER", annulez l'impression
      If ActiveSheet.Range("E7").Value = "A RENSEIGNER" Then
         Cancel = True
         MsgBox "ATTENTION : L'impression est interdite pour cet onglet car le forfait n'est pas renseigné.", vbExclamation, "Impression interdite"
      End If
    End Sub
    Pour en savoir plus sur les procédures événementielles
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre à l'essai
    Homme Profil pro
    responsable formation
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : responsable formation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut merci
    grand MERCI. Bonne semaine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2016] Interdire une valeur de champs si celle ci existe dans une autre table
    Par lbitane dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/04/2020, 13h49
  2. [XL-2016] Verrouiller une cellule si une autre n'est pas remplie ?
    Par elemremy dans le forum Excel
    Réponses: 9
    Dernier message: 24/11/2016, 14h07
  3. Réponses: 0
    Dernier message: 18/09/2013, 17h46
  4. Réponses: 4
    Dernier message: 06/03/2010, 11h29
  5. Réponses: 2
    Dernier message: 09/11/2007, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo