Créer une macro pour automatisation envoi mail avec information cellule

cycling

XLDnaute Nouveau
Bonjour à toutes et tous,


Je me permets de venir vers vous car je n'arrive pas à faire une macro.

Dans le cadre de mon travail, j'aimerais envoyer une relance par mail via un bouton macro pour chacun de mes sous traitant en retard (dons sur chaque ligne) dans son administratif.
Comme vous pourrez le voir dans la pièce jointe, je leur demande d'être à jour pour 9 pièces différentes.
Si ils sont à jour alors j'obtiens ok, sinon c'est "en attente".

Le but de ma demande serait de réussir à créer une macro (affectée à un bouton par ligne) qui enverrait un mail à l'adresse du ST, avec en copie toutes les autres adresses email, en indiquant:

"Bonjour,

Merci de nous faire parvenir au plus vite vos pièces administratives manquantes, à savoir:

_
_ "
(génération automatique de la liste si marqué "en attente" dans le fichier excel).

J'ai lu de nombreux forums pour l'envoi des mails directement depuis excel etc, mais je n'ai pas réussi à trouver quelque chose qui combinerait l'ensemble de mes demandes.


Par avance, je vous remercie.

Julien
 

Pièces jointes

  • Classeur1.xlsx
    54.3 KB · Affichages: 35
  • Classeur1.xlsx
    54.3 KB · Affichages: 51
  • Classeur1.xlsx
    54.3 KB · Affichages: 51

titiborregan5

XLDnaute Accro
Re : Créer une macro pour automatisation envoi mail avec information cellule

Bonjour Cycling,

pourquoi ne pas créer une macro qui teste s'il faut envoyer un mail et qui envoie si besoin, plutôt que de cliquer ligne par ligne?

De plus as-tu déjà ton code pour l'envoi qui marche?

J'imagine qu'en colonne M on a les destinataires et en N-O-P-Q les copies?

Je ne comprends pas trop où ça bloque, ni ce que tu as déjà fait...
 

titiborregan5

XLDnaute Accro
Re : Créer une macro pour automatisation envoi mail avec information cellule

Essaie ce code qui fonctionne chez moi!!!

VB:
Sub envoi2()With Sheets("Bat X")
'MsgBox a


For i = 8 To Range("b65000").End(xlUp).Row
    a = Application.CountIf(Range("D" & i & ":L" & i), "en attente")
    If a > 0 Then
            For j = 4 To 12
                If Cells(i, j) = "en attente" Then Cells(i, 20) = Cells(i, 20) & Chr("10") & "- " & Cells(7, j)
            Next
        docs = .Cells(i, 20)
        dest = .Cells(i, 13)
        copie = .Cells(i, 14) & ";" & .Cells(i, 15)
        ST = .Cells(i, 3)
        Set imsg = CreateObject("CDO.Message")
        Set iconf = CreateObject("CDO.Configuration")
        With imsg
        
        
        Set .Configuration = iconf
        'If .Attachments.Count <> 0 Then .Attachments.Delete (1)
        .To = dest
        .CC = copie
        '.BCC = 
        .From = ton mail entre ""
        .Subject = "Relance " & ST
        .textbody = "Bonjour, voici les pièces manquantes à votre dossier: " & Chr("10") & Cells(i, 20).Value
        .send
        End With
        End If
Next


Columns("T").ClearContents




End With
End Sub
 

cycling

XLDnaute Nouveau
Re : Créer une macro pour automatisation envoi mail avec information cellule

Merci pour ta réponse.

Je ne dois pas intégrer le code comme il faut car il me remonte une erreur...
Lorsque j'ouvre mon fichier classeur 1, je vais dans développeur, Visual basic, Feuil6 (Bat X), la flèche Executer la macro, je donne un nom à ma macro, je la crée, je colle ton code (entre Sub Mail et End Sub). Dans la ligne de code From, j'indique mon adresse mail et je faire la boite de dialogue.

Ensuite je vais dans Macro, j'execute et la j'ai un message qui m'indique "Erreur de compilation, erreur de syntaxe". J'appuis sur ok et de ce fait j'ai Sub Mail qui est surligné en jaune avec une flèche en début de ligne...

Merci d'avance
 

titiborregan5

XLDnaute Accro
Re : Créer une macro pour automatisation envoi mail avec information cellule

Sub indique le début du code. Donc si tu as 2 sub qui se suivent comme c'est visiblement le cas, normal qu'il y ait une erreur...
De mon code ne copie pas Sub envoi2()
De plus j'ai mis que 2 personnes en copie, il faut continuer la liste!
 

cycling

XLDnaute Nouveau
Re : Créer une macro pour automatisation envoi mail avec information cellule

En enlevant Sub2() mais en laissant la ligne du dessous 'MsgBox a, j'ai le message suivant: Erreur de compilation Référence incorrecte ou non qualifiée.
Je ne sais pas à quoi cela correspond ...
 

cycling

XLDnaute Nouveau
Re : Créer une macro pour automatisation envoi mail avec information cellule

Le code que j'ai appliqué:

Sub Mail()



For i = 8 To Range("b65000").End(xlUp).Row
a = Application.CountIf(Range("D" & i & ":L" & i), "en attente")
If a > 0 Then
For j = 4 To 12
If Cells(i, j) = "en attente" Then Cells(i, 20) = Cells(i, 20) & Chr("10") & "- " & Cells(7, j)
Next
docs = .Cells(i, 20)
dest = .Cells(i, 13)
copie = .Cells(i, 14) & ";" & .Cells(i, 15)
ST = .Cells(i, 3)
Set imsg = CreateObject("CDO.Message")
Set iconf = CreateObject("CDO.Configuration")
With imsg


Set .Configuration = iconf
'If .Attachments.Count <> 0 Then .Attachments.Delete (1)
.To = dest
.CC = copie
'.BCC =
.From = "adresse@gmail.com"
.Subject = "Relance " & ST
.textbody = "Bonjour, voici les pièces manquantes à votre dossier: " & Chr("10") & Cells(i, 20).Value
.send
End With
End If
Next


Columns("T").ClearContents




End With
End Sub






Pour le moment, pour comprendre comment cela fonctionne je l'applique seulement à l'exemple que j'ai mis en ligne, càd nom du fichier Classeur 1, nom de la feuille Bat X.

En tout cas merci de prendre du temps pour m'aider.

Par ailleurs, je bataille avec un format date.
Lorsque je fais une extraction SAP, j'ai le format date 01.09.2014. Or, il me faut le format 01/09/2014 afin que je puisse faire ma formule "non valable" suivant la date du jour. Sauf que lorsque je fais ma macro pour mettre la colonne extraite de . vers / puis que je change le format de la cellule en date, le format passe à 09/01/2014 (seulement lorsque le jour ne dépasse pas 12).
 

cycling

XLDnaute Nouveau
Re : Créer une macro pour automatisation envoi mail avec information cellule

Bonjour,

Merci pour ta réponse.
Pour les dates, je viens de mettre le fichier en pièce jointe. J'ai un problème de format je pense. Avec ma mise en forme conditionnelle, ma ligne G9 KBIS ATTACK devrait être en vert car la date est supérieure à la date du jour. Or, cela ne fonctionne pas.

J'ai ajouté sur la droite des colonnes formules pour fonction SI "ok" ou "en attente". On peut voir que le KBIS ATTACK apparait en attente alors qu'il est normalement "ok".
Le but étant qu'à partir des colonnes T à AB, cela serve au mail "auto". Il faudrait que dès lors qu'il y ai marqué "en attente" cela envoi un mail pour ces pièces.

Par ailleurs, j'ai rééssayé avec le with sheets et cela ne fonctionne pas ...

Merci d'avance
 

Pièces jointes

  • Classeur1.xlsm
    83.6 KB · Affichages: 29
  • Classeur1.xlsm
    83.6 KB · Affichages: 36
  • Classeur1.xlsm
    83.6 KB · Affichages: 40

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 997
Membres
103 424
dernier inscrit
Kyuubi