Comment stopper un enregistrement avec macro?

moshojo Messages postés 23 Statut Membre -  
moshojo Messages postés 23 Statut Membre -
Bonjour à tous !

Dans un fichier excel, j'ai une macro qui m'ouvre une msgbox des que je clic sur enregistrer. Jaimerai pouvoir mettre une msgbox avec deux boutons, le premier qui laisserai l'enregistrement se faire et le deuxieme qui annulerai l'enregistrement.

mais je ne sais pas si on peut stopper l'enregistrement d'un fichier!

quelqu'un aurait-il une idée?

Merci d'avance !

3 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Dans un fichier excel, j'ai une macro
    Mais quel est donc le code de cette fameuse macro?
    Cordialement,
    Franck P
    0
    1. moshojo Messages postés 23 Statut Membre
       
      Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      Select Case MsgBox("Voulez-vous enregistrer?")
      Case vbYes
      'procédure si click sur Oui
      Case vbNo
      procédure si click sur Non
      End Select

      End Sub
      0
    2. moshojo Messages postés 23 Statut Membre
       
      oups j'ai pas copier la bonne, voila ma macro

      Select Case MsgBox("Voulez vous enregister?", vbYesNo, "Bonjour!")
      Case vbYes
      Module14.activmacro 'procédure si click sur Oui
      Case vbNo
      Module14.desactivmacro 'procédure si click sur Non
      End Select
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Alors, le code de ta msgbox ne contient aucun argument. La syntaxe d'un MsgBox est :
      MsgBox(message[, boutons] [, titre] [, aide, context])
      ou les arguments entre crochets sont facultatifs
      Tu dois donc ajouter un argument bouton, dans ton cas oui - non. Tu peux te baser sur le code de Lermite222 (que je salues au passage!), le recopier intégralement ou adapter ton code. Au choix...
      Ton code adapté :
      Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
      Select Case MsgBox("Voulez-vous enregistrer?", vbQuestion + vbYesNo, "Titre") 
          Case vbYes 
          'procédure si click sur Oui 
          Case vbNo 
          'procédure si click sur Non 
      End Select 
      End Sub

      En cadeau, sisi ça fait plaisir!! un petit tuto super explicite...
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Donc ma réponse est obsolète...
      Qu'est ce qui ne fonctionne pas dans ton code?
      0
    5. moshojo Messages postés 23 Statut Membre
       
      ce que je ne sais pas faire c'est quoi écrire apres en cas de non, c'est à dire ne pas enregistrer
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    MsgBox avec 2 boutons.
    Sub SauverOUI_NON() 
        If MsgBox("Confirmer sauver fichier", vbQuestion + vbYesNo, "Titre") = vbYes Then 
            'Sauver le fichier 
        Else
            Exit Sub
        End If 
    End Sub

    A+
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Module14.desactivmacro
    Que veux-tu dire avec ça ???
    0
    1. moshojo Messages postés 23 Statut Membre
       
      c'était un exemple de msgbox que j'utilisé, en fait je voudrait remplacer les moduler 14.desactivmacro et active ma
      0
    2. moshojo Messages postés 23 Statut Membre
       
      et active macro par "enregistre" ou par "n'enregistre pas".
      0
    3. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      On active pas une macro (ou la déactiver), ont l'appel tout simplement (ou pas).
      Et pas besoin de mettre le nom du module devant, suffit de mettre la macro en Public.
      0
    4. moshojo Messages postés 23 Statut Membre
       
      il ne faut pas les prendre en compte ces deux là. elles viennent d'un fichier complètement différent. je voulais juste vous montrer le type de msgbox que j'utilise
      0