IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Excel VBA Erreur lors d'une boucle --> Macro Envoi automatique PDF via Outlook [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 6
    Points
    6
    Par défaut Excel VBA Erreur lors d'une boucle --> Macro Envoi automatique PDF via Outlook
    Bonjour à toutes et tous,

    Et premièrement merci de votre présence et votre précieuse aide.

    Je dispose dans un dossier des fichiers PDF et j'ai constitué via Excel un tableau permettant de lister pour chaque fichier un/ou plusieurs destinataires.

    Avec une macro je souhaite donc automatiser l'envoi de ces fichiers via Outlook avec la liste des personnes indiquées dans le tableau. J'ai donc procédé à une boucle mais celle-ci plante après le premier passage. Un message d'erreur m'indique "L'élément a été déplacé ou supprimé"

    Je vous joins le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub Send_Mail_Outlook()
     
    'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
     ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
     
     Dim ObjOutlook As New Outlook.Application
     'Dim ObjOutlookmail As MailItem
     'Dim NomFichier As String
     Dim oBjMail
     'Dim Nom_Fichier As String
     
     Set ObjOutlook = New Outlook.Application
     Set oBjMail = ObjOutlook.CreateItem(olMailItem)
     'Dans ton cas changer par du Pdf ou mettre directement le chemin et nom du fichier pdf dans Nom_Fichier
     
     fin1 = Range("a1").End(xlDown).Row
     
     For i = 2 To fin1
     
     Nom_Fichier = Feuil2.Range("f" & i).Value
     Chemin = Feuil2.Range("g" & i).Value
     
     'If Nom_Fichier = "Faux" Then Exit Sub
     'If VarType(Nom_Fichier) = vbBoolean Then Exit Sub
     
     'With oBjMail
     
     oBjMail.To = Feuil2.Range("h" & i).Value
     oBjMail.Cc = Feuil2.Range("i" & i).Value 'copie
     oBjMail.Subject = Feuil2.Range("b" & i).Value ' l'objet du mail
     oBjMail.Body = Feuil2.Range("c" & i).Value 'le corps du mail ..son contenu
     oBjMail.Attachments.Add Chemin '"C:\Data\essai.txt" ' ou Nomfichier
     oBjMail.Display ' Ici on peut supprimer' pour l'envoyer sans vérification
     oBjMail.Send
     
     'End With
     
     Next
     
     'ObjOutlook.Quit
     
     
     
     End Sub




    Merci d'avance je me tire les cheveux depuis hier dessus..

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Ca serait bien que tu précises la ligne en erreur. Précise aussi la feuille concernée dans la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fin1 = Range("a1").End(xlDown).Row
    A quoi sert "Nom_Fichier" ? et que contient "Chemin" ? un chemin ou un chemin et un nom de fichier ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Bonjour Daniel,

    Merci pour ta réponse et désolé pour ces imprécisions.

    Il s'agit bien d'un chemin et d'un nom de fichier, trouvé dans l'onglet Tableau Diffusion.
    En fait je veux faire un publipostage via l'onglet Excel et envoyer automatiquement sur Outlook les fichiers PDF. Ils sont référencés dans le tableau.

    La ligne buggée est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oBjMail.To = Feuil2.Range("h" & i).Value
    juste apres le passage de la premiere boucle... Bizarre.

    J'esperze avoir été clair etr merci de t'étre penché sur mon cas..

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Tu dois mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
    dans la boucle; il faut créer un nouveau mail à chaque fois. Mets-le après :

    et teste.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Super cela fonctionne. Merci encore.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2007] Erreur Array out of bounds lors d'une boucle For .. To ..
    Par IronBibs dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 24/11/2009, 09h49
  2. Réponses: 1
    Dernier message: 28/03/2008, 16h06
  3. {VBA Excel}Erreur lors d'une copie
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/08/2007, 09h57
  4. [VBA-E]Erreur lors d'une copie de cellules
    Par illight dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/02/2006, 11h22
  5. [VBA][Excel] Comment faire pour faire une boucle?
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 19/12/2005, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo