Macro envoi de courriel sous condition

Tanid

XLDnaute Nouveau
Bonjour!

Tout d'abord, je voudrais dire un gros merci à tous ceux qui font vivre ce forum qui m'a permis de développer des fichiers Excel très pratiques en adaptant des bouts de codes glanés ici et là et en suivant vos conseils...


J'ai une macro attaché à un bouton sur une feuille qui envoie une copie d'un onglet par courriel. Je voudrais mettre une condition dans la macro pour que si certains noms apparaissent dans la case I1, le courriel est envoyé à une personne, sinon, ça s'en va à une autre adresse.

Voici mon code:

HTML:
Private Sub CommandButton3_Click()
ThisWorkbook.Sheets("Permis d'absence").Copy
ActiveWorkbook.SaveAs "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"
If Range("I1") = "Froehlich" Or "Perreault" Or "Prévost" Or "Wells" Then
    ActiveWorkbook.SendMail "isousa@caaquebec.com"
Else
If Range("I1") = other Then
    ActiveWorkbook.SendMail "mbrousseau@caaquebec.com"
End If
 


MsgBox "Le message est envoyé"

ActiveWorkbook.Close False

Kill "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"


End Sub

Lorsque j'exécute la macro, il me retourne un message d'erreur de compilation: "Bloc If sans End If" en surlignant "End Sub"... J'avoue que j'y perds mon VBA...

Est-ce que quelqu'un saurait me dire où j'ai faussé? Merci!!! :D

Je vous souhaite un très joyeux temps des fêtes, pleins d'amour, de sucreries et de sourires!
 

jp14

XLDnaute Barbatruc
Re : Macro envoi de courriel sous condition

Bonsoir

Bonjour!

Tout d'abord, je voudrais dire un gros merci à tous ceux qui font vivre ce forum qui m'a permis de développer des fichiers Excel très pratiques en adaptant des bouts de codes glanés ici et là et en suivant vos conseils...


J'ai une macro attaché à un bouton sur une feuille qui envoie une copie d'un onglet par courriel. Je voudrais mettre une condition dans la macro pour que si certains noms apparaissent dans la case I1, le courriel est envoyé à une personne, sinon, ça s'en va à une autre adresse.

Voici mon code:

Code:
Private Sub CommandButton3_Click()
ThisWorkbook.Sheets("Permis d'absence").Copy
ActiveWorkbook.SaveAs "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"
If Range("I1") = "Froehlich" Or "Perreault" Or "Prévost" Or "Wells" Then
    ActiveWorkbook.SendMail "isousa@caaquebec.com"
Else
         If Range("I1") = other Then
                   ActiveWorkbook.SendMail "mbrousseau@caaquebec.com"
         End If

End if ' fin du test

Code:
MsgBox "Le message est envoyé"

ActiveWorkbook.Close False

Kill "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"


End Sub



Il manque end if pour le IF Else

A corriger et à tester

JP
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Macro envoi de courriel sous condition

Bonjour Tanid, Bonjour jp14,

et modifie la ligne

Code:
If Range("I1") = "Froehlich" Or "Perreault" Or "Prévost" Or "Wells" Then

comme ça

Code:
If Range("I1") = "Froehlich" Or Range("I1") ="Perreault" Or Range("I1") ="Prévost" Or Range("I1") ="Wells" Then
 

Tanid

XLDnaute Nouveau
Re : Macro envoi de courriel sous condition

Merci de votre intérêt!

JP, j'ai modifié le code comme tel:

HTML:
Private Sub CommandButton3_Click()
ThisWorkbook.Sheets("Permis d'absence").Copy
ActiveWorkbook.SaveAs "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"
If Range("I1") = "Froehlich" Or Range("I1") = "Perreault" Or Range("I1") = "Prévost" Or Range("I1") = "Wells" Then
ActiveWorkbook.SendMail "isousa@caaquebec.com"

Else
If Range("I1") = other Then
                   ActiveWorkbook.SendMail "mbrousseau@caaquebec.com"
         End If


MsgBox "Le message est envoyé"

ActiveWorkbook.Close False

Kill "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"


End Sub

Mais rien à faire, il me sort encore la même erreur de compil... :mad: Pourtant il y a bien un End If! Je ne comprends pas!!!

Merci tototiti, c'est vrai que ça fait plus de sens comme ça... :eek:
 

Tanid

XLDnaute Nouveau
Re : Macro envoi de courriel sous condition

C'est vrai, merci beaucoup...

Maintenant, je n'ai plus de problème de compilation, ça semble fonctionner... J'ai fait un test avec un des noms qui sont dans la première portion de la macro et ça envoie bien un courriel à la bonne eprsonne contenant la copie de la feuille...

Par conter, avec les autres noms, ça m'indique simplement "couriel envoyé" (sans m'ouvrir la boîte "outlook tente d'envoyer un message...") et je ne retrouve rien dans mes éléments envoyés...

Voici le code maintenant:

HTML:
Private Sub CommandButton3_Click()
ThisWorkbook.Sheets("Permis d'absence").Copy
ActiveWorkbook.SaveAs "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"
If Range("I1") = "Froehlich" Or Range("I1") = "Perreault" Or Range("I1") = "Prévost" Or Range("I1") = "Wells" Then
    ActiveWorkbook.SendMail "isousa@caaquebec.com"
Else
If Range("I1") = other Then
    ActiveWorkbook.SendMail "mbrousseau@caaquebec.com"
         End If
        End If

MsgBox "Le message est envoyé"

ActiveWorkbook.Close False

Kill "\\quebec3\formation\SERVICE DE FORMATION\RESS. HUMAINES\Feuille de temps.xls"


End Sub

Devrais-je recopier la portion de copie de la feuille dans ma deuxième formule d'envoi courriel?
 

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 756
Membres
103 947
dernier inscrit
Quentin_sf