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 :

problème dans le corp d'un mail pour insérer une plage de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 319
    Points : 158
    Points
    158
    Par défaut problème dans le corp d'un mail pour insérer une plage de cellules
    Bonjour ,

    J'essaie d'envoyer un mail en automatique or j'ai une erreur d'execution type 13 au niveau des éléments du corp.

    Merci pour votre aide


    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub IC7_Envoi_mail_Outlook()
     '-------------------------------------------------------------
    'Penser a ajouter ref outlook
     '-------------------------------------------------------------
        Dim Adresse As String, Objet As String, Corps As String
         Dim MonAppliOutlook As New Outlook.Application
         Dim MonMail As Outlook.MailItem
         Dim MaPièce As Outlook.Attachments
         Set MonMail = MonAppliOutlook.CreateItem(olMailItem)
     '-------------------------------------------------------------
    'Variables
     Dim C1, C2, C3, C4, C5 As String
     fc = [B17]
     jo = [B2]
     fi = [C17]
     Mo = [B5]
     
     Workbooks.Open (fi)
     Windows(fc).Activate
     Sheets("Feuil1").Select
     fzc = Range("B24:G31").Value
     fza = Range("B55:G62").Value
     fzb = Range("B86:G93").Value
     
     C1 = "Bonjour," & Chr(13) & Chr(13) & "date : " & jo
     C2 = "partie1 " & Chr(13) & fzc    <==  erreur d 'exécution 13  incompatibilité de type 
     C3 = "partie2" & Chr(13) & fza
     C4 = "partie3" & Chr(13) & fzb
     C5 = "Merci de prendre en compte la pièce-jointe" & Chr(13) & Chr(13) & "En vous  souhaitant bonne réception." & Chr(13) & Chr(13) & "Cordialement" 
     
     Workbooks(fi).Close
     '-------------------------------------------------------------
        Adresse = "test@test.fr"
         Cc = "test1@test.fr;test2@test.fr"
         Bcc = ""
         Objet = " mail au  " & Mo
         Corps = C1 & Chr(13) & C2 & Chr(13) & C3 & Chr(13) & C4 & Chr(13) & C5
         Pièce = fi  '-------------------------------------------------------------
        With MonMail
             .Display
             .To = Adresse
             If Not IsNull(Cc) Then .Cc = Cc
             If Not IsNull(Bcc) Then .Bcc = Bcc
             .Subject = Objet
             .Body = Corps
             If Not IsNull(Pièce) Then
                 Set MaPièce = .Attachments
                 MaPièce.Add Pièce, olByValue
             End If
            ' .Send
         End With
     '-------------------------------------------------------------
    End Sub

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Quel est le message d'erreur ?
    Quelle ligne passe en surbrillance quand tu demandes le débuggage ?

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 319
    Points : 158
    Points
    158
    Par défaut
    ligne 26 erreur d 'exécution 13 incompatibilité de type

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Ca, ce n'est pas une bonne idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     fzc = Range("B24:G31").Value
     fza = Range("B55:G62").Value
     fzb = Range("B86:G93").Value
    Pour prendre une valeur, limites-toi à une case par Range.Value

    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     fzc = Range("B24").Value
     fza = Range("B55").Value
     fzb = Range("B86").Value

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 319
    Points : 158
    Points
    158
    Par défaut
    iL faut absolument que je selectionne une plage comment faire ?

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Qu'est-ce que tu veux faire exactement ?
    Parce que ce que signifie ta ligne de code, c'est que tu veux mettre les valeurs de 48 cellules dans une seule variable, ce qui, de toute façon, ne pourrait pas se faire ainsi.

  7. #7
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 125
    Points : 9 953
    Points
    9 953
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quand t'auras résolu tes problèmes énoncés, tu vas rencontrer quelques difficultés : envoyer une plage composé de plusieurs cellules sans passer par du HTMLBody

    on y est pas encore... je regarde ce fil de loin

  8. #8
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 319
    Points : 158
    Points
    158
    Par défaut
    j'ai une plage on apparait un résultat du type

    Bonjour,

    Voici la situation des clients :

    Nom : Capture.JPG
Affichages : 479
Taille : 16,1 Ko

    voila le type d'information que je désirais avoir dans mon corps

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je n'ai jamais fait d'envoi de mail via VBA mais une chose est sûre : tu ne peux pas mettre dans une variable le contenu formaté d'une zone.
    Une variable peut seulement contenir une valeur ou une référence à un objet.

    Pour ce qui est de l'envoi de mail par VBA, fait une recherche sur le forum, il y a déjà eu beaucoup de discutions sur ce sujet.

  10. #10
    Membre actif Avatar de pastis.vi
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 251
    Points : 209
    Points
    209
    Par défaut
    Bonjour Laurent, bonjour à tous,

    J'ai effectivement créé déjà plusieurs sujets dans ce domaine :
    http://www.developpez.net/forums/d14...ail-lotus-vba/
    http://www.developpez.net/forums/d14...tus-via-excel/
    http://www.developpez.net/forums/d14...l-lotus-notes/

    Saches une chose : il n'est pas possible d'effectuer un simple copier-coller de cellules Excel vers ton mail.

    Tu utilises quel type de boite mail? (Lotus Notes, Outlook,...)

    Si tu utilises Lotus je peux t'envoyer mon fichier fini (en enlevant les valeurs "confidentielles")

    Pablo

  11. #11
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 125
    Points : 9 953
    Points
    9 953
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je te propose également de consulter un fil résolu dans le forum VBA Outlook, qui traitait de ce problème de plage à plusieurs cellules

    http://www.developpez.net/forums/d15...fichier-excel/

    Je précise que j'ai fourni dans la résolution une fonction de conversion d'un plage en HTML ... fonction qui (si j'ai bonne mémoire) m'avait été suggérée par Theze


    Dans ce fil, la personne n'avait besoin d'insérer qu'une seule plage ... mais ma proposition pouvait générer plusieurs conversions de plages en HTLM pour les insérer dans le HTMLBody


    C'est d'ailleurs un procédé que j'utilise au quotidien (mais en plus complexe)

  12. #12
    Membre habitué
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 319
    Points : 158
    Points
    158
    Par défaut
    J'ai modifié mon code

    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
    Sub IC_7_mail()
     Dim fi, fc, jo, Mo As String
     fc = [B17] ' fichier source
     jo = [B2]  ' jour de l'extraction
     fi = [C17] 'fichier a attacher
     Mo = [B5] 'Mois
     Dim Adresse As String, Objet As String, Corps As String
     Dim MaPièce As Attachment
     Workbooks.Open (fi)
     Windows(fc).Activate
     Sheets("Résultat ").Select
     ActiveSheet.Range("B2:G93").Select
     ActiveWorkbook.EnvelopeVisible = True
     Pièce = fi
     
    With ActiveSheet.MailEnvelope
        .Introduction = "bonjour , Veuillez trouver ci dessous les indicateurs :"
        .Item.To = "test@test.fr"
        .Item.CC = "test2@test.fr"
        .Item.Subject = "indicateur au  : " & Mo
        .Item.Attachments.Add fi
        .Item.Send
    End With
     
    End Sub
    Ce code fonctionne

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

Discussions similaires

  1. pb pour creer une plage de cellules variables
    Par jumpman dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2012, 20h02
  2. Comment utiliser Range(cells(... pour indiquer une plage de cellules
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/05/2008, 10h35
  3. Modification d'une fonction pour selectionner une plage de cellule
    Par jackbauer972 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/08/2007, 15h07
  4. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45
  5. [VB6]Chaines en gras dans le corps d'un mail
    Par Safaritn dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 02/02/2006, 13h20

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