Macro excel : problème boucle ou envoi mail
chystre59
-
chystre59 -
chystre59 -
Bonjour,
Je cherche à envoyer un mail lorsqu'une tache a un retard par rapport au délai initial. Il y a en tout 246 taches. Le retard s'il existe est inscrit automatiquement dans ma feuille excel (colonne K).
Je travaille donc sous Excel et Visual Basic mais j'ai un problème avec cette macro, elle ne s'execute pas.
Voici mon programme.
Sub EnvoiMail()
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Dim Etat As String
Dim Etat2 As String
Dim Last As Integer
Dim i As Integer
Sheets("Planning").Select
Last = Range("K1").End(xlDown).Row
For i = 4 To Last
Etat = Range("K" & i).Value
Etat2 = Retard
If Etat = Etat2 Then
MailAd = "xx@xx.fr"
Subj = "retard dans une tâche"
Msg = "Bonjour," & vbCrLf & "je viens de voir qu'il y avait du retard dans l'éxecution d'une tache." & vbCrLf & "Pourriez-vous régulariser cela ?" & vbCrLf & "Cordialement"
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End If
Next i
End Sub
Quelqu'un aurait-il une solution ?
Merci
Je cherche à envoyer un mail lorsqu'une tache a un retard par rapport au délai initial. Il y a en tout 246 taches. Le retard s'il existe est inscrit automatiquement dans ma feuille excel (colonne K).
Je travaille donc sous Excel et Visual Basic mais j'ai un problème avec cette macro, elle ne s'execute pas.
Voici mon programme.
Sub EnvoiMail()
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Dim Etat As String
Dim Etat2 As String
Dim Last As Integer
Dim i As Integer
Sheets("Planning").Select
Last = Range("K1").End(xlDown).Row
For i = 4 To Last
Etat = Range("K" & i).Value
Etat2 = Retard
If Etat = Etat2 Then
MailAd = "xx@xx.fr"
Subj = "retard dans une tâche"
Msg = "Bonjour," & vbCrLf & "je viens de voir qu'il y avait du retard dans l'éxecution d'une tache." & vbCrLf & "Pourriez-vous régulariser cela ?" & vbCrLf & "Cordialement"
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End If
Next i
End Sub
Quelqu'un aurait-il une solution ?
Merci
Configuration: Windows XP Internet Explorer 6.0
4 réponses
-
Bonjour,
Elle ne s'exécute pas ? ou bien le test pour envoyer le mail est toujours faut ?
en colonne K, qu'est ce qui est inscrit automatiquement ? (le mot : Retard, la valeur du retard ?)
Dans Etat2 = Retard :
1) Retard est initialiser à quel endroit ?
2) ou est ce l'affectation de la chaine de caractères retard à la variable Etat2 ?
Si c'est le 2) tu peux écrire :
If Range("K" & i).Value= "Retard" Then -
Bonjour,
Si tu disais sur quelle ligne et le message d'erreur, ne crois tu pas que ça pourrait faciliter une aide que tu demandes ?
retard, c'est une variable ?
tu écris
Etat2 = Retard -
Alors tu peux utiliser la dernière ligne du post 1, à condition que l'écriture dans la colonne K soit bien 'Retard' (respect des majuscules et minuscules). Attention également qu'à la fin du mot 'Retard', il n'y ait pas d'espace. ('Retard' et 'Retard ' sont différents)
-
Bravo.
Je m'étais focalisé sur le test, et pas vérifié le reste ...
Mais ne me dis pas que ça marche en gardant Etat2 = Retard. C'est pas possible!