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

VBA Access Discussion :

Besoin d'aide pour adapter 2 codes


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut Besoin d'aide pour adapter 2 codes
    Bonjour j'ai besoin de spécialiste VBA pour m'orienter et finaliser mon projet

    j'ai trouvé et adapté un module qui me découpe mon etat pdf en fonction de l'individu, j' ai testé et cela marche cela stock tous les pdf dans un répertoire:

    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
     
    Option Compare Database
    ' ---
    ' CREATION DE FICHES PDF
    ' ---
    '
    Sub CreerFichesInterlocuteurs()
        Dim strFichier As String
        Dim strFichierPDF As String
        Dim strEtat As String
        Dim strFiltre As String
        Dim rst As DAO.Recordset
     
        ' Nom de l'état à imprimer
        strEtat = "RequêteCDE12maitest"
     
        ' Nom de base du fichier PDF à créer
        strFichier = "C:\test\" & "TestInterlocuteur {0} - {1} {2}.pdf"
     
        ' Ouvrir la liste des personnes
        Set rst = CurrentDb.OpenRecordset("RequêteCDE12", dbOpenSnapshot)
     
        ' Parcourir toute la liste
        While Not rst.EOF
            ' Le nom du fichier varie en fonction de la personne
            strFichierPDF = StringFormat(strFichier, _
                Format(rst("EnsCode"), "000"), _
                rst("EnsNom"), _
                rst("EnsPrénom"))
     
            ' Construire le filtre
            strFiltre = "[EnsCode] = " & rst("EnsCode")
     
            ' Imprimer l'état en le filtrant sur la personne concernée
            PrintAsPDF strFichierPDF, strEtat, strFiltre
     
            ' Personne suivante
            rst.MoveNext
        Wend
     
        ' Terminé !
        rst.Close
        Set rst = Nothing
        MsgBox "Opération terminée !", vbInformation
    End Sub

    Ensuite j'ai un module trouver sur le net également qui envoi par mail des fichiers joint avec outlook:

    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
     
    Option Compare Database
     
    ' ---
    ' TEST DE LA PROCEDURE SendOLMail2
    ' ---
    '
    Sub TestSendOLMail2()
    Dim astrFichiers(1 To 3) As String
     
    ' Chemin des 3 fichiers à joindre
    astrFichiers(1) = "C:\test\TestInterlocuteur 006 -"
    astrFichiers(2) = "C:\test\TestInterlocuteur 009 -"
    astrFichiers(3) = "C:\test\TestInterlocuteur 935 -"
     
    ' On expédie le message
    SendOLMail2 "monmail@mail.com", _
      "Quelques pièces jointes...", _
      "Salut," & vbCrLf & "Ci-joint, quelques fichiers pour tester..." _
        & vbCrLf & "-- giulian.", _
      False, _
      astrFichiers
    End Sub

    J'aimerais une sorte de fusion des deux, mon 1er code découpe mon état en fichiers individuel pdf selon un filtre comme dans le 1er code puis les envoi automatiquement un par un au bon destinataires par mail en fonction d'un champs qui contient le mail de cette personne. cette personne peu avoir plusieurs mail il faudrait que cela envoi sur tous les mail entrée dans la base.

    Je pesne qu avec ces deux bout de code il y a possibilité de faire quelque chose mais mes compétences sont très maigre si vous pouvez me donner des psite de réflexion

    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    si je fait cela dans le 1er code enlever le chemin d’enregistrement des pdf:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' Nom de base du fichier PDF à créer
        strFichier = "TestInterlocuteur {0} - {1} {2}.pdf"
    pour dans le second code faire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub TestSendOLMail2()
    Dim astrFichiers As String
     
    ' Chemin du fichier à joindre
    astrFichiers = "PrintAsPDF strFichierPDF, strEtat, strFiltre"
    Cela parait cohérent ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    Avec ce code j'ai une erreur 13 incompatibilité de type:

    Pouvez-vous m'orienter ?

    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
    54
    55
    56
    57
    58
    59
    60
    61
     
    Option Compare Database
     
    ' ---
    ' CREATION DE FICHES PDF
    ' ---
    '
    Sub CreerFichesInterlocuteurs()
        Dim strFichier As String
        Dim strFichierPDF As String
        Dim strEtat As String
        Dim strFiltre As String
        Dim rst As DAO.Recordset
        Dim astrFichiers As String
     
        ' Nom de l'état à imprimer
        strEtat = "RequêteCDE12maitest"
     
        ' Nom de base du fichier PDF à créer
        strFichier = "CDE du 12 mai {0} - {1} {2}.pdf"
     
     
        ' Ouvrir la liste des personnes
        Set rst = CurrentDb.OpenRecordset("RequêteCDE12", dbOpenSnapshot)
     
     
        ' Parcourir toute la liste
        While Not rst.EOF
            ' Le nom du fichier varie en fonction de la personne
            strFichierPDF = StringFormat(strFichier, _
                Format(rst("EnsCode"), "000"), _
                rst("EnsNom"), _
                rst("EnsPrénom"))
     
            ' Construire le filtre
            strFiltre = "[EnsCode] = " & rst("EnsCode")
     
     
            ' Imprimer l'état en le filtrant sur la personne concernée
             PrintAsPDF strFichierPDF, strEtat, strFiltre
     
            ' Le fichier PDF sera la pièce jointe
            astrFichiers = "strFichierPDF"
     
            ' On expédie le message
             SendOLMail2 "julien.trochel@gmail.com", _
             "Quelques pièces jointes...", _
             "Salut," & vbCrLf & "Ci-joint, quelques fichiers pour tester..." _
             & vbCrLf & "-- giulian.", _
             False, _
             astrFichiers
     
            ' Personne suivante
            rst.MoveNext
        Wend
     
        ' Terminé !
        rst.Close
        Set rst = Nothing
        MsgBox "Opération terminée !", vbInformation
    End Sub

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    Bonjour,

    Il faut fournir la ligne de l'erreur au minimum et le mieux c'est d'indiquer également la valeur de toutes les variables.

    Cordialement

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    Merci j'ai un peu avancé

    Désormais j'ai une erreur car la variable astrFichiers = "strFichierPDF" ne trouve pas le chemin des fichiers qui sont généré avant du coup elle ne peut pas les joindre au mail

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    le contenu...

    (cf ... je ne pratique pas l'extispicine dans ma signature !)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    Pardon le contenu du code ?

    J'ai une erreur 2147024894
    Fichiers introuvables

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
    Option Compare Database
     
    ' ---
    ' CREATION DE FICHES PDF
    ' ---
    '
    Sub CreerFichesInterlocuteurs()
        Dim strFichier As String
        Dim strFichierPDF As String
        Dim strEtat As String
        Dim strFiltre As String
        Dim rst As DAO.Recordset
        Dim astrFichiers(1 To 1) As String
     
        ' Nom de l'état à imprimer
        strEtat = "RequêteCDE12maitest"
     
        ' Nom de base du fichier PDF à créer
        strFichier = "C:\test\" & "CDE du 12 mai {0} - {1} {2}.pdf"
     
     
        ' Ouvrir la liste des personnes
        Set rst = CurrentDb.OpenRecordset("RequêteCDE12", dbOpenSnapshot)
     
     
        ' Parcourir toute la liste
        While Not rst.EOF
            ' Le nom du fichier varie en fonction de la personne
            strFichierPDF = StringFormat(strFichier, _
                Format(rst("EnsCode"), "000"), _
                rst("EnsNom"), _
                rst("EnsPrénom"))
     
            ' Construire le filtre
            strFiltre = "[EnsCode] = " & rst("EnsCode")
     
     
            ' Imprimer l'état en le filtrant sur la personne concernée
             PrintAsPDF strFichierPDF, strEtat, strFiltre
     
            ' Le fichier PDF sera la pièce jointe
            astrFichiers(1) = "strFichierPDF"
     
            ' On expédie le message
             SendOLMail2 "monmail@mail.com", _
             "Quelques pièces jointes...", _
             "Salut," & vbCrLf & "Ci-joint, quelques fichiers pour tester..." _
             & vbCrLf & "-- giulian.", _
             True, _
             astrFichiers
     
     
            ' Personne suivante
            rst.MoveNext
        Wend
     
        ' Terminé !
        rst.Close
        Set rst = Nothing
        MsgBox "Opération terminée !", vbInformation
    End Sub
    Le module SendOLMail2 utiliser dedans
    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
    54
    55
    56
    57
    58
    59
    60
     
    Option Compare Database
     
    ' ---
    ' ENVOYER UN MAIL DEPUIS ACCESS, AVEC PIECES JOINTES
    ' ---
    ' Entrée : strEmail     <- Adresse e-mail du destinataire
    '          strObj       <- Objet du courrier
    '          strMsg       <- Corps du message
    '          blnEdit      <- True pour pouvoir modifier le courrier avant envoi
    '                          False pour expédier le courrier directement.
    '          astrFichiers <- Tableau des pièces jointes
     
    ' Remarques : Le mail est expédié via Microsoft Outlook
    '             plutôt que via SendObject.
     
    Public Sub SendOLMail2( _
      ByVal strEmail As String, _
      ByVal strObj As String, _
      ByVal strMsg As String, _
      ByVal blnEdit As Boolean, _
      Optional ByVal avarFichiers As Variant)
     
    Dim ol As Outlook.Application
    Dim mi As Outlook.MailItem
    Dim varPJ As Variant
     
    ' Créer une instance d'Outlook
    On Error GoTo OLMailErr
    Set ol = New Outlook.Application
     
    ' Créer un objet Email
    Set mi = ol.CreateItem(olMailItem)
     
    ' Paraméter le message
    With mi
      .To = strEmail
      .Subject = strObj
      .Body = strMsg
     
      ' Joindre les pièces, s'il y en a
      For Each varPJ In avarFichiers
        .Attachments.Add (varPJ)
      Next
     
      If blnEdit Then
        .Display
      Else
        .Send
      End If
    End With
     
    Set mi = Nothing
    Set ol = Nothing
    Exit Sub
     
    OLMailErr:
        MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
        Exit Sub
    End Sub

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    De la variable... le code tu l'as déjà fourni.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    je suis désolé je ne comprend pas.

    je débute il y a un mois je n avais pas fait d'access donc j ai encore de grosses lacunes pouvez vous précisez ce que vous souhaitez

    Comment avoir le contenu de la variable ?

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    le contenu de la variable strFichierPDF au moment de l'erreur.

    Tu dois mettre des points d'arrêt dans le code avec F9.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    J'avance merci pour les point d arrêt mode débogage effectivement ca permet de mieux cerner le pb

    lorsque j'enlève les guillemet à strFichierPDF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    astrFichiers(1) = strFichierPDF
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     astrFichiers(1) = "strFichierPDF"
    la variable "strFichierPDF" récupère bien un fichier

    Ensuite à la toute dernière ligne du code je remplace par j'ai de nouveau une erreur 13 incompatibilité de type et la variable astrFichiers contient le fichier il ne doit pas manquer grand chose

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    Observe le contrat d'utilisation de SendOmail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub SendOLMail2( _
      ByVal strEmail As String, _
      ByVal strObj As String, _
      ByVal strMsg As String, _
      ByVal blnEdit As Boolean, _
      Optional ByVal avarFichiers As Variant)
    Et compare-le à ce que tu lui passes en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim astrFichiers(1 To 1) As String
    Tu vois la différence ?

  13. #13
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    le variant a la place du string ?

    Donc si je déclare astrFichiers(1 To 1) As Variant cela va fonctionner ?

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    Tout porte à le croire.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    J'ai toujours la même erreur même en déclarant la variable en Variant à la place de String

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 054
    Points : 24 649
    Points
    24 649
    Par défaut
    A quelle ligne se produit l'erreur et que contient les variables au moment de l'exécution de cette ligne ?

    J'ai testé le code sans StringFormat() puisque tu ne l'as pas joins ni avec le contenu de la table (donc totalement en aveugle) et je n'ai pas de message d'erreur.

  17. #17
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    l'erreur 13 incompatibilité de type se produit entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ' On expédie le message
             SendOLMail2 "monmail@mail.com", _
             "Quelques pièces jointes...", _
             "Salut," & vbCrLf & "Ci-joint, quelques fichiers pour tester..." _
             & vbCrLf & "-- giulian.", _
             False, _
             astrFichiers
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            ' Personne suivante
            rst.MoveNext
        Wend
    à ce moment là toutes les variables notamment "astrFichiers" contiennent bien le fichier

    je te joint le stringformat, je viens d'essayer sans et c'est la même erreur

    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
     
    Option Compare Database
     
        ' ---
        ' INSERTION DE VALEURS DANS UNE CHAINE DE CARACTERES
        ' ---
        '
        Function StringFormat( _
          ByVal strChaine As String, _
          ParamArray varValeurs() As Variant) As String
     
          Dim intI As Integer
          For intI = LBound(varValeurs) To UBound(varValeurs)
            strChaine = Replace(strChaine, "{" & intI & "}", Nz(varValeurs(intI)))
          Next
     
          StringFormat = strChaine
        End Function

  18. #18
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    Je tourne en rond à la fin de la boucle il n y a pas d'appel à outlook pour générer le mail et cela probablement car l'incompatibilité de type est sur la variable astrFichiers qui est finalement égale à strFichierPDF.

    Je peut même simplifier mon code en appelant directement ce dernier, mais dans tous les cas j'ai cette erreur qu'elle soit déclarée en String ou en Variant.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    Eureka j'ai trouvé il lui faut a tout prix un chemin donc je stockes les fichier sur un répertoires ils ont donc un vrai chemin ils peuvent ensuite être envoyés

    place à la suite l envoi du mail avec le champs mail de la personne filtré dans la boucle


    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Option Compare Database
    
    ' ---
    ' CREATION DE FICHES PDF
    ' ---
    '
    Sub CreerFichesInterlocuteurs()
        Dim strFichier As String
        Dim strFichierPDF As String
        Dim strEtat As String
        Dim strFiltre As String
        Dim rst As DAO.Recordset
        Dim astrFichiers(1 To 1) As String
        
        
        
        ' Nom de l'état à imprimer
        strEtat = "RequêteCDE12maitest"
        
        ' Nom de base du fichier PDF à créer
        strFichier = "c:\test\" & "CDE du 12 mai {0} - {1} {2}.pdf"
        
        
        ' Ouvrir la liste des personnes
        Set rst = CurrentDb.OpenRecordset("RequêteCDE12", dbOpenSnapshot)
        
        
        ' Parcourir toute la liste
        While Not rst.EOF
            ' Le nom du fichier varie en fonction de la personne
            strFichierPDF = StringFormat(strFichier, _
                Format(rst("EnsCode"), "000"), _
                rst("EnsNom"), _
                rst("EnsPrénom"))
                
            ' Construire le filtre
            strFiltre = "[EnsCode] = " & rst("EnsCode")
            
                                
            ' Imprimer l'état en le filtrant sur la personne concernée
             PrintAsPDF strFichierPDF, strEtat, strFiltre
             
            ' Le fichier PDF sera la pièce jointe
            astrFichiers(1) = strFichierPDF
                
            ' On expédie le message
             SendOLMail2 "monmail@mail.com", _
             "Quelques pièces jointes...", _
             "Salut," & vbCrLf & "Ci-joint, quelques fichiers pour tester..." _
             & vbCrLf & "-- giulian.", _
             False, _
             astrFichiers
                                       
            ' Personne suivante
            rst.MoveNext
        Wend
        
        ' Terminé !
        rst.Close
        Set rst = Nothing
        MsgBox "Opération terminée !", vbInformation
    End Sub

  20. #20
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2015
    Messages : 66
    Points : 10
    Points
    10
    Par défaut
    j'avance tranquillement

    Désormais je souhaite envoyer le mail à plusieurs destinataires comment pourrai je adapter la fonction SendOLmail2 ? j'ai vu un tuto ou une personne utilise le CC mais j'aimerai directement mettre tout le monde dans To

    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
    54
    55
    56
    57
    58
    59
    60
     
    Option Compare Database
     
    ' ---
    ' ENVOYER UN MAIL DEPUIS ACCESS, AVEC PIECES JOINTES
    ' ---
    ' Entrée : strEmail     <- Adresse e-mail du destinataire
    '          strObj       <- Objet du courrier
    '          strMsg       <- Corps du message
    '          blnEdit      <- True pour pouvoir modifier le courrier avant envoi
    '                          False pour expédier le courrier directement.
    '          astrFichiers <- Tableau des pièces jointes
     
    ' Remarques : Le mail est expédié via Microsoft Outlook
    '             plutôt que via SendObject.
     
    Public Sub SendOLMail2( _
      ByVal strEmail As String, _
      ByVal strObj As String, _
      ByVal strMsg As String, _
      ByVal blnEdit As Boolean, _
      Optional ByVal avarFichiers As Variant)
     
    Dim ol As Outlook.Application
    Dim mi As Outlook.MailItem
    Dim varPJ As Variant
     
    ' Créer une instance d'Outlook
    On Error GoTo OLMailErr
    Set ol = New Outlook.Application
     
    ' Créer un objet Email
    Set mi = ol.CreateItem(olMailItem)
     
    ' Paraméter le message
    With mi
      .To = strEmail
      .Subject = strObj
      .Body = strMsg
     
      ' Joindre les pièces, s'il y en a
      For Each varPJ In avarFichiers
        .Attachments.Add (varPJ)
      Next
     
      If blnEdit Then
        .Display
      Else
        .Send
      End If
    End With
     
    Set mi = Nothing
    Set ol = Nothing
    Exit Sub
     
    OLMailErr:
        MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
        Exit Sub
    End Sub
    EDIT:

    Trouver en faisant cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ' On expédie le message
             SendOLMail2 rst("MailEtabl1") & ";" & rst("MailEtabl2") & ";" rst("MailEtabl3"), _
             "Quelques pièces jointes...", _
             "Salut," & vbCrLf & "Ci-joint, quelques fichiers pour tester..." _
             & vbCrLf & "-- giulian.", _
             True, _
             astrFichiers

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Besoin d'aide pour traduire un code NASM en MASM
    Par popol03 dans le forum Assembleur
    Réponses: 2
    Dernier message: 21/05/2007, 18h06
  2. Besoin d'aide pour optimiser du code
    Par scaleo dans le forum Langage
    Réponses: 1
    Dernier message: 07/01/2007, 13h56
  3. [VB.NET] besoin d'aide pour déchiffrer un code
    Par pcdj dans le forum Windows Forms
    Réponses: 10
    Dernier message: 27/06/2006, 11h32
  4. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00
  5. Je besoin d'aide pour terminer mon code
    Par Paulinho dans le forum C++
    Réponses: 7
    Dernier message: 06/11/2005, 23h30

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