Fonctionne en pas à pas mais pas via un bouton ou F5

Bonjour à tous !

J'espère que vous allez bien.

Je viens vers vous car j'ai un soucis un peu bizarre, le code suivant :

Application.ScreenUpdating = False
  ActiveWorkbook.EnvelopeVisible = False

   Workbooks("Planning_Indicateur.xlsm").Sheets("Mail-Ordo").Activate
   ActiveSheet.Range("A1:D6").Select

   ActiveWorkbook.EnvelopeVisible = True

   With ActiveSheet.MailEnvelope
      .Introduction = "This is a sample worksheet."
      .Item.To = "antoine.bijotat@pga-avionics.com"
      .Item.Subject = "My subject"
      .Item.Send
   End With
   Application.ScreenUpdating = True
   ActiveWorkbook.EnvelopeVisible = False

Le code fonctionne parfaitement en mode pas à pas (F8) en revanche dès que je veux le lancer via un bouton sur une autre feuille ou même rien qu'en le lançant avec F5 le code me plante mon excel et mon Outlook.

Pouvez-vous me dire pourquoi ?

Merci d'avance de votre aide

Bonjour Bijotreolol,

Ton code est-il stocké dans ton classeur "Planning_Indicateur.xlsm" ?

Si oui, je te conseille de ne pas passer par des "select" pour spécifier les objets que tu utilises. A titre d'exemple, je te propose de modifier ton code ainsi :

    Dim oSheet As Excel.Worksheet
    Dim oRange As Excel.Range

    Application.ScreenUpdating = False
    ActiveWorkbook.EnvelopeVisible = False

    Set oSheet = ThisWorkbook.Sheets("Mail-Ordo")
    Set oRange = oSheet.Range("A1:D6")

    ThisWorkbook.EnvelopeVisible = True

    With oSheet.MailEnvelope
      .Introduction = "This is a sample worksheet."
      .Item.To = "antoine.bijotat@pga-avionics.com"
      .Item.Subject = "My subject"
      .Item.Send
    End With
    Application.ScreenUpdating = True
    ThisWorkbook.EnvelopeVisible = False

Code compilé OK mais on testé

Merci de ta réponse,

En revanche cela ne fonctionne toujours pas, c'est la page ou le bouton est situé qui est envoyée en mode pas à pas, et lorsque je lance cette macro via un bouton activex ou contrôle de formulaire, cela me plante toujours mon excel et mon Outlook..

Je ne comprend vraiment pas ! Si quelqu'un à une idée s'il vous plait

Bonjour Bijotreolol,

Peux-tu joindre ton classeur?

Ci-joint le classeur simplifié.

Je souhaiterai donc avec un bouton sur la feuille "indicateur" , envoyer par mail les cellules de la feuille "Mail-Ordo".

Merci beaucoup pour ton aide

J'y vois plus clair :

En ce qui concerne ta procédure d'envoi de mail "Send_Range", elle fonctionne nickel.

Par contre, si tu compiles le code (dans VBE : Débogage/Compiller VBAProject) tu as une série d'erreurs :

  • La procédure "Indicateur" est trop longue. Tu dois la scinder en plusieurs sous-procédures.
  • La procédure "Temps" est déclarée dans 2 modules : "Module 4" et "Module 6". Si les 2 procédures sont nécessaires, tu dois en renommer l'une d'entre elles.
  • ...possiblement d'autre erreurs,

La leçon du jour à retenir:

N'OMETTONS JAMAIS DE COMPILER LE CODE VBA AVANT DE L'EXECUTER.

J'ai supprimé toutes les autres macro et le problème persiste encore alors que je n'ai que le code pour envoyer le mail...

Bigre!

J'ai fais la même chose que toi, je me suis adressé les mails et ça fonctionne chez moi.

Sans vouloir insister, tu as bien compilé sans avoir d'erreur après avoir supprimé les modules (et les userforms...)?

Sinon, peut_être un problème d'installation MS OFFICE...

Es-tu bien sur PC?

Bonjour Gerard,

Oui je travaille sur PC..

Rechercher des sujets similaires à "fonctionne pas via bouton"