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 :

Obtenir une liste dans un tableau pour ajouter au corps d'un email [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut Obtenir une liste dans un tableau pour ajouter au corps d'un email
    Bonjour,

    Je sollicite votre aide pour avoir une marche à suivre la plus efficace possible

    1-
    J'ai dans un tableau 3 colonnes. on va simplifier en disant une colonne nom une colonne prenom et une colonne lieu
    la finalité => Je souhaite pouvoir obtenir dans le corps d'un email tous les noms et prénoms qui appartiennent au même lieu.

    je suis donc parti sur ce principe mais il y a peut être plus simple c'est pourquoi je vous demande une marche à suivre svp:
    je fais ma recherche ligne a ligne et j'ajoute dans un tableau a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom & "-" & prenom & "/" & lieu
    je crée b par un split et j'ajoute le résultat à un dictionnaire d
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 0 To UBound(a)
    b() = Split(a(i), "/", , vbTextCompare)
    d.Add b(0), b(1)
    Next i
    ensuite je mets mes elements et clé du dictionanire dans des tableaux c et c1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c() = d.items
    c1() = d.Keys
    première question au passage pour ma culture, est ce que je peux transférer les éléments et clés du dictionnaire dans un seul et même tableau à 2 dimensions?

    ensuite je veux mettre ce tableau dans le corps du mail pour un lieu donnée
    et la je ne sais pas comment faire car j'arrive pas à intégrer un tableau dans un corps de mail via ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
    Set objOutlook = CreateObject("Outlook.application")
    Set MailObj = objOutlook.CreateItem(olMailItem)
    With MailObj
        .To = Destinataire
        .CC = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        .display
    End With
    End Sub
    avec ce code en principale tester pour un tableau au piff à une dimension
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub Main()
    Mail application.transpose(a),"Destinataire@gmail.com"
    End Sub

    Avez-vous une autre approche plus simple à me proposer ? ou est ce que je suis plutôt pas mal en m'orientant comme ceci?
    merci d'avance

    Bonne journée
    Merci de cliquer sur pour chaque message vous ayant aidé
    puis sur pour clore cette discussion …

    C'est en récoltant les cailloux qu'on te jette que tu construiras ta future estrade...

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 15 379
    Points : 12 509
    Points
    12 509
    Billets dans le blog
    8
    Par défaut re
    bonjour
    ton tableau doit être au format html dans le corps du mail un tableau a 2 dims ne sert a rien c'est incompatible

    fait des recherche dans les contribs "excel ti html CDO) avec mon pseudo
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    Bonjour Patrick,

    Tu parles de cette contribution?
    Merci de cliquer sur pour chaque message vous ayant aidé
    puis sur pour clore cette discussion …

    C'est en récoltant les cailloux qu'on te jette que tu construiras ta future estrade...

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 15 379
    Points : 12 509
    Points
    12 509
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour
    oui entre autre
    mais je peux t'en faire une plus simple si tu veux sans format particulier si c'est juste une table html que tu veux

    Edit:::
    voici une fonction simple qui te transforme ta plage en table HTML non formatée(sans couleur ni font ect....)

    sub de test j'ai meme ajouter la demo dans ie pour que tu puisse voir ce que cela donne en html
    j'ai ajouter aussi le debug.print dans la fonction pour que tu puisse voir ce que le code de ta plage en html donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
        THTML = excel_to_html_simple(Sheets(1).Range("A4:C" & Cells(Rows.Count, 1).End(xlUp).Row)) 'plage a adapter
        'le code qui suit ci dessous et la seulement pour te montrer comment cela donne en html dans internet explorer
        ' tu n'aura besoin que de placer THML ou tu veux dans le corps  du mail
        Set ie = CreateObject("internetexplorer.application")
        ie.Visible = True
        ie.navigate "about:blank"
        ie.document.write THTML
    End Sub
    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
    Function excel_to_html_simple(rng)
        For lig = rng.Row To (rng.Row + rng.Rows.Count) - 1
            code = code & "<TR>" & vbCrLf
            For col = rng.Column To (rng.Column + rng.Columns.Count) - 1: code = code & "<TD>" & Cells(lig, col).Value & "</TD>" & vbCrLf: Next
            code = code & "</TR>" & vbCrLf
        Next
        With CreateObject("htmlfile")
            .body.innerhtml = "<Table cellspacing=0 cellspadding=0>" & code & "</TABLE>"
            Set mytable = .getelementsbytagname("table")(0)
            For Each cel In mytable.Cells
                i = i + 1: cel.Style.Border = "1px solid gray": cel.Style.Width = Round(rng.Cells(i).Width * 1.55) & "px": cel.Style.Height = Round(rng.Cells(i).Height * 1.55) & "px"
            Next
            excel_to_html_simple = .body.innerhtml
        Debug.Print .body.innerhtml
        End With
    End Function
    demo en image
    Nom : Capture.JPG
Affichages : 59
Taille : 370,8 Ko
    voila maintenant tu a tout
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    Bonjour Patrick,

    C'est parfait avec ceci mon problème est résoulu !
    merci bcp
    Merci de cliquer sur pour chaque message vous ayant aidé
    puis sur pour clore cette discussion …

    C'est en récoltant les cailloux qu'on te jette que tu construiras ta future estrade...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/03/2013, 15h18
  2. Copier une liste dans un tableau Numpy
    Par manaliac dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 17/09/2010, 11h56
  3. utiliser une liste dans un tableau croisé.
    Par zaatour dans le forum Cognos
    Réponses: 1
    Dernier message: 05/12/2007, 21h44
  4. [DOM] integration d'une liste dans un tableau html en javascript
    Par bb62 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 08/06/2007, 17h03
  5. Réponses: 13
    Dernier message: 18/05/2007, 17h06

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