[VBA] Envoi de mail par rapport à un nombre d'onglet aléatoire

Louis009 - 7 déc. 2012 à 12:34
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 10 déc. 2012 à 12:05
Bonjour à Tous,

Voici mon soucis

1: J'ai une feuille global qui comprend divers information (Nom, prénom, adresse mail..... et d'autre infos)
2: Par rapport à cette feuille je découpe le fichier en N onglet par rapport à des noms de personne et les infos qui leur sont nécessaire
3: Suivant le fichier je me retrouve donc avec 5, 10, 15.... onglets, cela varie suivant les noms
4: Dans une autre feuille je récupère aussi le nom des onglets

Questions: Sachant que le nom et le nombre des onglets est aléatoire, comment envoyé un mail à chaque personne (Un onglet Un mail Un nom)

Voilà, j'espère avoir été clair dans mes explications et que cette fois ci je suis dans la bonne section :)

Je vous remercie pour vos réponses

Cordialement

5 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
9 déc. 2012 à 01:35
Bonjour,

Quel composant utilises-tu ?
As-tu exploré les membres du composant ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
Bonjour,

J'utilise Excel et j'ai Outlook comme client de messagerie.

Cordialement
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2012 à 11:13
Bonjour,
Il faut que tu fasses une boucle sur tous tes onglets avec ton code d'envoi de mail. Je te met un code avec 2 exemples d'envoi de mail:

Private Sub CommandButton1_Click()
Dim i As Integer
For Each ws In Worksheets
ws.Activate
envoimail
'MailOXpress
Next ws
End Sub
Private Sub envoimail()
    Dim MailAd As String
    Dim Msg As String
    Dim Subj As String
    Dim URLto As String
    Dim Maplage As Range
    Set Maplage = Range("A1:B4") 'definition de la plage contenant le Message
    MailAd = Range("A1") ' mettre destinataire
    Subj = Range("A2") ' sujet du mail
    'boucle qui récupère le texte du message
   For Each Cell In Maplage 'dans chaque cellule de MaPlage...
        Msg Msg & "  " & Cell.Value & "%0D%0A" ' Message Message + Valeur de ma cellule
    Next 'Suite de la boucle
 URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
    ActiveWorkbook.FollowHyperlink Address:=URLto
   End Sub
Sub MailOXpress()
Dim dest$, sujet$, texte$
    dest = Range("A1") ' mettre destinataire
    sujet = Range("A2") ' sujet du mail
    texte = Range("A3") 'votre texte
    Shell "C:\Program Files\Outlook Express\msimn.exe " & _
    "/mailurl:mailto:" & dest & _
    "?subject=" & sujet & _
    "&Body=" & texte
End Sub
:

Il est evident que tous tes textes sont remplis dans le mêmes cellules de tous les onglets.
A toi de l'adapter suivant tes besoins.


@+ Le Pivert
0
Bonjour,

Cela me parait bien, je vais test.

Merci Le Pivert
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 déc. 2012 à 12:05
J'ai oublié d'enlever
Dim i As Integer
Car j'avais fait une boucle sans la Feuil1, la voici:

Private Sub CommandButton2_Click()
Dim i As Integer
For i = 2 To Worksheets.Count
Sheets(i).Activate
envoimail
'MailOXpress
Next i
End Sub


démarre sur la Feuil2

@+ Le Pivert
0
Rejoignez-nous