Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 12/07/2008, 11h23   #1 (permalink)
Membre du Club
 
Date d'inscription: décembre 2006
Âge: 55
Messages: 90
Par défaut Modification d'une macro pour spécifier l'adresse de l'expéditeur.

Bonjour le forum,

Je cherche de l'aide pour modifier cette macro, afin de definir l'expediteur.
J'envoie des fichiers à partir de différents PC, et je souhaite que ces envois se fassent avec mon adresse mail comme expediteur, ainsi les retours arriveraient directement sur mon poste. Je ne peux pas modifier l'adresse des messages entrants des autres PC, car tous les messages de mes collegues arriveraient sur mon PC.
C'est par outlook 2003. Je vous remercie pour votre aide.

Code :
Sub envoi_mail()
 
    envoi = 0
    Sheets("Intro").Range("E8").Value = ""
    
    'Mettre "ok" ligne 8 colonne 4 sinon le MsgBox s'affiche
    If Sheets("Liste_des_messages").Cells(8, 4) = "" Then
        MsgBox "Veuillez d'abord valider que les fiches sont bien à la bonne date, colonne E"
        Exit Sub
    End If
  
 
    ' k represente le nombre de message à envoyer
    For k = 0 To 1000
    
        ' si la cellule Cells(k + 2, 2) est vide, on arrete
        If Sheets("Liste_des_messages").Cells(k + 2, 2) = "" Then
            Exit For
        End If
        
    Next k
    
    ' on réinitialise l'affichage de l'avancement
    Sheets("Intro").Range("D12").Value = "Envoi du mail 0 / 0"
    Sheets("Intro").Range("D13").Value = "messages envoyés : 0"
    
 
    'pour toute les valeurs de k :
    For i = 2 To k + 1
    
        'affichage
        Sheets("Intro").Range("D12").Value = "Envoi du mail " & i - 1 & " / " & k
        
        'on crée 2 objets
        Dim ol As Object, NOUVEAU_MESSAGE As Object
        Dim strBody As String
        'ol contient les fonctions d'outlook
        Set ol = CreateObject("outlook.application")
        'on crée une instance (la voiture) à partir du modèle : en informatique la 'class' d'un mail (le shema de la voiture)
        Set NOUVEAU_MESSAGE = ol.CreateItem(olMailItem)
        
        titre_mail = Sheets("Liste_des_messages").Cells(i, 4)
        courriel_to = Sheets("Liste_des_messages").Cells(i, 2)
        courriel_cc = Sheets("Liste_des_messages").Cells(i, 3)
        
        corps_mail = Cells(i, 5) & Chr(10)
        corps_mail = corps_mail & "Bonjour," & Chr(10) & Chr(10)
        corps_mail = corps_mail & "Veuillez trouver ci-joint le fichier du Mois, indiqué en colonne E." & Chr(10) & Chr(10) & Chr(10)
        corps_mail = corps_mail & "Cordialement," & Chr(10) & Chr(10)
        corps_mail = corps_mail & "Bernard, Tel:06-01-02-03-04-05, NASA." & Chr(10) & Chr(10) & Chr(10)
        corps_mail = corps_mail & "Piece(s) jointe(s) :" & Chr(10) & Chr(10)
        
        NOUVEAU_MESSAGE.To = courriel_to
        NOUVEAU_MESSAGE.Subject = titre_mail
        NOUVEAU_MESSAGE.cc = courriel_cc
        NOUVEAU_MESSAGE.Body = corps_mail
        
        
        j = 6
        'rappel : nous sommes dans une boucle qui s'execute pour chaque ligne
        'dans la ligne, on verifie que Fichier existe
        For j = 6 To 20
            
            If Sheets("Liste_des_messages").Cells(i, j) = "" Then
                Exit For
            End If
            
            On Error Resume Next
    'Ne pas oublier les 2 \\ en debut et a la fin \ sur PC domicile pas de \\
 
            NOUVEAU_MESSAGE.Attachments.Add "E:\Mes documents\TEST\Fichiers\" & Sheets("Liste_des_messages").Cells(i, j) & ".xls"
            On Error GoTo 0
            
        Next j
        
        'si Fichiers existe :
        If j <> 6 Then
            
            'on incrémente (ajouter 1) le compteur d'envoi
            envoi = envoi + 1
            Sheets("Intro").Range("D13").Value = "messages envoyés : " & envoi
            
            'on affiche le message
            NOUVEAU_MESSAGE.Display
            Application.Wait (Now + TimeValue("00:00:02"))
            
            'on clique sur "entrer"
            SendKeys "^{ENTER}", True
            Application.Wait (Now + TimeValue("00:00:04"))
            
            'on detruit notre message dans la mémoire vive
            Set ol = Nothing
            Set NOUVEAU_MESSAGE = Nothing
        End If
        
    Next i
    
    
End Sub
Bernard67 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/07/2008, 09h40   #2 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 454
Par défaut

Salut,
Le plus simple c'est d'utiliser CDO voir ex:
http://www.developpez.net/forums/sho...&highlight=cdo
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide