Problèmes macro VBA envoi mail
Résolu/Fermé
95Hub
Messages postés
12
Date d'inscription
dimanche 14 novembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
-
Modifié par 95Hub le 18/11/2010 à 09:16
95Hub Messages postés 12 Date d'inscription dimanche 14 novembre 2010 Statut Membre Dernière intervention 2 juin 2011 - 22 nov. 2010 à 19:16
95Hub Messages postés 12 Date d'inscription dimanche 14 novembre 2010 Statut Membre Dernière intervention 2 juin 2011 - 22 nov. 2010 à 19:16
A voir également:
- Problèmes macro VBA envoi mail
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Publipostage mail - Accueil - Word
- Programmer envoi mail gmail - Guide
- Envoi mail cci - Guide
- Windows live mail - Télécharger - Mail
6 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
22 nov. 2010 à 12:35
22 nov. 2010 à 12:35
Ton classeur en retour
Taper la date dans la colonne E = envoyer le mail de prise en charge.
Taper ENSUITE, la date dans la colonne H = envoi du mail de fin.
NE PAS envoyer par outlook, envoyer par le message d'excel en cliquant sur ENVOYER pour que les cellules s'actualisent.
J'ai pas tester jusqu'a l'envoi, Outlook n'est pas installer sur mon PC.
Le message que tu envoi n'est pas fort... commercial !!
Tu dis.
Taper la date dans la colonne E = envoyer le mail de prise en charge.
Taper ENSUITE, la date dans la colonne H = envoi du mail de fin.
NE PAS envoyer par outlook, envoyer par le message d'excel en cliquant sur ENVOYER pour que les cellules s'actualisent.
J'ai pas tester jusqu'a l'envoi, Outlook n'est pas installer sur mon PC.
Le message que tu envoi n'est pas fort... commercial !!
Tu dis.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
22 nov. 2010 à 16:21
22 nov. 2010 à 16:21
Tu supprime dans EnvoiMail1 et 2
Mais les cellules ne se rempliront plus avec En Cour et Terminer, il faudra le faire manuellement.
A+
Mode = 1 UFenvoyer.Show 0
Mais les cellules ne se rempliront plus avec En Cour et Terminer, il faudra le faire manuellement.
A+
95Hub
Messages postés
12
Date d'inscription
dimanche 14 novembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
22 nov. 2010 à 19:16
22 nov. 2010 à 19:16
Merci lermite222,
J'ai remis une formule pour avoir al mise à jour du statut des demandes et grace à toi, ça marche à merveille, c'est exactement ce que je cherchais à faire (le savoir faire en moins :) )
Je revois le texte finale et la mise en forme et c'est parti.
Encore merci.
A+
J'ai remis une formule pour avoir al mise à jour du statut des demandes et grace à toi, ça marche à merveille, c'est exactement ce que je cherchais à faire (le savoir faire en moins :) )
Je revois le texte finale et la mise en forme et c'est parti.
Encore merci.
A+
95Hub
Messages postés
12
Date d'inscription
dimanche 14 novembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
19 nov. 2010 à 00:41
19 nov. 2010 à 00:41
Est-ce que quelqu'un a une idée pour que cette macro ne tourne pas en rond bettement?
merci d' avance.
Cordialement,
merci d' avance.
Cordialement,
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
21 nov. 2010 à 22:17
21 nov. 2010 à 22:17
Bonjour,
D'abord tu devrais mettre l'appel dans...
Et tu te demande pourquoi ça tourne en rond ? tu à une boucle de 2000 dans le code de la feuille ET..ET .. ET une boucle de 2000 dans la macro.
supprime celle de la feuille
Quand tu change UNE date tu envoi des mail à tout le monde ??
A+
D'abord tu devrais mettre l'appel dans...
Private Sub Worksheet_Change(ByVal Target As Range) 'Ne sera appelé qu'en cas de changement 'Faudrait aussi tester si c'est bien la cellule avec la date qui change... End Sub
Et tu te demande pourquoi ça tourne en rond ? tu à une boucle de 2000 dans le code de la feuille ET..ET .. ET une boucle de 2000 dans la macro.
supprime celle de la feuille
Quand tu change UNE date tu envoi des mail à tout le monde ??
A+
95Hub
Messages postés
12
Date d'inscription
dimanche 14 novembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
21 nov. 2010 à 22:57
21 nov. 2010 à 22:57
Merci lermite222,
J'ai supprimé mon code dans woksheet et modifié mon module.
Dans worksheet je demande à mes checkbox d'appeler ma macro quand elles sont "true"
mais je suis obligé de faire cette commande sur chaque checkbox (ça risque d'être long)
j'ai mis dans mon module :
Sub EnvoiMail2()
For i = 3 To 10
If Range("e" & i).Value <> "" Then
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.createitem(0)
MonMessage.To = Range("c" & i)
MonMessage.Cc = "humo@live.fr"
MonMessage.Subject = "Votre demande de travaux"
Corps = "Bonjour,"
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & "Vous nous avez contacté le :"
Corps = Corps & Chr(32) & Range("e" & i).Value
Corps = Corps & Chr(32) & "pour une demande que nous avons enregistrée comme :"
Corps = Corps & Chr(32) & Range("d" & i).Value
Corps = Corps & Chr(10)
Corps = Corps & "Sont statut est :"
Corps = Corps & Chr(32) & Range("g" & i).Value
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & "Nous vous tiendrons informé, de l'avancement de votre demande."
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & "Cordialement,"
MonMessage.body = Corps
MonMessage.display
Else
End If
Next i
End Sub
J'ai supprimé la boucle dans worksheet, et j'ai surtout réduit la plage pour mes essais :-)
Cependant, mes mails partent toujours même quand mes checkbox ne sont pas cochées
Si ma date n'est pas renseignée j'ai bien un seul mail qui part, mais dès que je renseigne la date sur une seconde ligne je renvoie le mail à tout le monde et évidemment ce n'est pas ce que je veux je pourrais supprimer la date après chaque envoie, mais pour le suivi, ça ne va pas.
Je fouille tous les forum, mais je ne trouve pas (ou ne comprends pas) comment je pourrais faire ma boucle sur les checkbox. J'ai compris que "checkbox" & i ne fonctionnerait pas, mais comment peut on faire cette boucle (si c'est possible ???)
D'abord tu devrais mettre l'appel dans...
Private Sub Worksheet_Change(ByVal Target As Range)
'Ne sera appelé qu'en cas de changement
'Faudrait aussi tester si c'est bien la cellule avec la date qui change...
...
Est ce que ça veut dire que je devrais écrire mon code dans worksheet et non pas dans un module ???
Autre question subsidiaire : dans tous les livres sur Vba, lequel choisir quand on débute :)
Cordialement,
J'ai supprimé mon code dans woksheet et modifié mon module.
Dans worksheet je demande à mes checkbox d'appeler ma macro quand elles sont "true"
mais je suis obligé de faire cette commande sur chaque checkbox (ça risque d'être long)
j'ai mis dans mon module :
Sub EnvoiMail2()
For i = 3 To 10
If Range("e" & i).Value <> "" Then
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.createitem(0)
MonMessage.To = Range("c" & i)
MonMessage.Cc = "humo@live.fr"
MonMessage.Subject = "Votre demande de travaux"
Corps = "Bonjour,"
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & "Vous nous avez contacté le :"
Corps = Corps & Chr(32) & Range("e" & i).Value
Corps = Corps & Chr(32) & "pour une demande que nous avons enregistrée comme :"
Corps = Corps & Chr(32) & Range("d" & i).Value
Corps = Corps & Chr(10)
Corps = Corps & "Sont statut est :"
Corps = Corps & Chr(32) & Range("g" & i).Value
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & "Nous vous tiendrons informé, de l'avancement de votre demande."
Corps = Corps & Chr(13) & Chr(10)
Corps = Corps & "Cordialement,"
MonMessage.body = Corps
MonMessage.display
Else
End If
Next i
End Sub
J'ai supprimé la boucle dans worksheet, et j'ai surtout réduit la plage pour mes essais :-)
Cependant, mes mails partent toujours même quand mes checkbox ne sont pas cochées
Si ma date n'est pas renseignée j'ai bien un seul mail qui part, mais dès que je renseigne la date sur une seconde ligne je renvoie le mail à tout le monde et évidemment ce n'est pas ce que je veux je pourrais supprimer la date après chaque envoie, mais pour le suivi, ça ne va pas.
Je fouille tous les forum, mais je ne trouve pas (ou ne comprends pas) comment je pourrais faire ma boucle sur les checkbox. J'ai compris que "checkbox" & i ne fonctionnerait pas, mais comment peut on faire cette boucle (si c'est possible ???)
D'abord tu devrais mettre l'appel dans...
Private Sub Worksheet_Change(ByVal Target As Range)
'Ne sera appelé qu'en cas de changement
'Faudrait aussi tester si c'est bien la cellule avec la date qui change...
...
Est ce que ça veut dire que je devrais écrire mon code dans worksheet et non pas dans un module ???
Autre question subsidiaire : dans tous les livres sur Vba, lequel choisir quand on débute :)
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
21 nov. 2010 à 23:11
21 nov. 2010 à 23:11
Explique plus précisément Quand et où tu change la date .
95Hub
Messages postés
12
Date d'inscription
dimanche 14 novembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
21 nov. 2010 à 23:24
21 nov. 2010 à 23:24
En fait, je ne change pas la date.
Mon fichier à pour but de suivre les demandes de travaux qui sont envoyées à mon service.
le tableau sert à enregistrer ces demandes. J'entre la date (colonne E) une fois et j'envoie un mail comme quoi la demande à bien été prise en compte puis quand les travaux sont fait, j'entre une nouvelle date (colonne H) et j'envoie un nouveau mail au demandeur pour lui signaler que sa demande est terminée.
Si j'étais le seul à recevoir les demandes, je le ferai à la main, mais ce n'est pas le cas et je voudrais que chacun des utilisateurs du fichier envoie le même message type.
Je ne sais pas si mon explication est très claire ???
Mon fichier : https://www.cjoint.com/?0lvxxxeFHYI
Mon fichier à pour but de suivre les demandes de travaux qui sont envoyées à mon service.
le tableau sert à enregistrer ces demandes. J'entre la date (colonne E) une fois et j'envoie un mail comme quoi la demande à bien été prise en compte puis quand les travaux sont fait, j'entre une nouvelle date (colonne H) et j'envoie un nouveau mail au demandeur pour lui signaler que sa demande est terminée.
Si j'étais le seul à recevoir les demandes, je le ferai à la main, mais ce n'est pas le cas et je voudrais que chacun des utilisateurs du fichier envoie le même message type.
Je ne sais pas si mon explication est très claire ???
Mon fichier : https://www.cjoint.com/?0lvxxxeFHYI
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
22 nov. 2010 à 00:34
22 nov. 2010 à 00:34
Ca me semble plus clair, je "cogite" un exemple mais ce sera pas pour tout de suite, maintenant... dodo.
95Hub
Messages postés
12
Date d'inscription
dimanche 14 novembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
22 nov. 2010 à 09:50
22 nov. 2010 à 09:50
:) Bonne nuit
22 nov. 2010 à 14:54
C'est génial.
J'ai eu un message d'erreur au démarrage, j'ai ajouté dans option explicit : Public corps as string (c'est peut être pas la bonne méthode, mais ça fonctionne).
Par contre le UserForm conserve le nom de la première ligne de la colonne D.
Est-ce que je suis obligé de passer par un UF? Le message Outlook s'ouvre automatiquement et je peux appuyer sur le bouton envoyer du message. C'est d'ailleurs ce que je souhaiterai faire, au cas où on voudrait ajouter une personne en copie autre que les personnes prévues.
En tout cas, merci beaucoup.
Tu as raison, mon message n'est pas terrible, je pofinerai plus tard, pour l'instant c'est le fonctionnement que je cherchais, la mise en forme on verra après ;)
Cordialement,