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

Macros et VBA Excel Discussion :

Ma macro BeforePrint ne fonctionne pas [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut Ma macro BeforePrint ne fonctionne pas
    Bonjour,
    je voudrais vérifier qu'une cellule est bien remplie avant l'impression.
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If Range("B4") = "" Then
        Call MsgBox("Saisie de B4 obligatoire" _
                    & vbCrLf & "" _
                    & vbCrLf & "Merci" _
                    , vbExclamation, "Tableur")
        Range("B4").Select
    Else
        Cancel = True
    End If
    End Sub
    Or si ma cellule B4 est vide, l'impression a quand même lieu.

    Ce code est bien dans thisWorkbook.
    Ce que je ne comprends pas non plus, c'est que j'ai mis des points d'arrêt qui n'arrêtent rien...
    Est-ce que quelqu'un voit mon erreur, svp.
    Merci

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Ton Cancel = True est dans la mauvaise partie du IF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If Range("B4") = "" Then
        Call MsgBox("Saisie de B4 obligatoire" _
                    & vbCrLf & "" _
                    & vbCrLf & "Merci" _
                    , vbExclamation, "Tableur")
        Range("B4").Select
        Cancel = True
    End If
    End Sub

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonsoir Antony,
    Merci de ton aide, mais cela ne change rien ; l'impression à toujours lieu...

  4. #4
    Membre averti
    Homme Profil pro
    Acteur de developpement local
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Acteur de developpement local
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Par défaut
    Citation Envoyé par mouftie Voir le message
    l'impression à toujours lieu...
    Bonjour,

    La cellule à verifier ne fait référence à aucune feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Range("B4") = "" Then
    essayez avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ActiveSheet.Range("B4") = "" Then

  5. #5
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    bonjour tmihob,
    J'avais essayé ta proposition, ça ne changeait rien, car je n'avais qu'un fichier d'ouvert
    Après avoir relancé la machine, tout est rentré dans l'ordre.
    Merci à tous pour votre aide.

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

Discussions similaires

  1. [XL-2003] Macro qui ne Fonctionne PAS sur Excel 2003 mais Fonctionne sur Excel 2010
    Par CedResma34 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/01/2014, 10h05
  2. Macro qui ne fonctionne pas
    Par Françoise_ dans le forum Débutez
    Réponses: 2
    Dernier message: 09/03/2013, 21h08
  3. [WD-2007] Macro 2003 ne fonctionne pas sous 2007
    Par ZoRm33 dans le forum VBA Word
    Réponses: 5
    Dernier message: 10/08/2012, 11h29
  4. [XL-2007] Macro excel ne fonctionnant pas depuis appli access
    Par NulenExcel77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2011, 10h10
  5. [WD-2003] Macro Word ne fonctionnant pas
    Par korni184 dans le forum VBA Word
    Réponses: 1
    Dernier message: 04/03/2011, 10h00

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