Joindre des fichiers par mail à partir de chemins dans des cellules

Bonjour à tous,

J'ai quelques notion en algorithme et je découvre depuis peu le VBA,

Pour contextualiser mon problème, je dispose d'un fichier Excel sur lequel se trouve les adresses mail (colonne B) ainsi que les chemins des fichiers correspondants à envoyer à chacun (colonne C)

Cette macro fonctionne lorsque dans Visual basics je remplace la valeur de "pj" par un chemin unique du genre "C:\Users\...", le problème survient lorsque je veux aller récupérer les chemins des cellules C qui sont obligatoirement différents pour chaque lignes.

J'ai déjà lu beaucoup de forum à propos de ce sujet mais je ne trouve pas la solution à mon problème, j'ai l'impression que cela vient soit de ma variable "pj" qui pour moi prend bien la valeur de la cellule demandé ou au niveau de "attachement.Add",

Je laisse ci-dessous le code utilisé :

Sub Macro_mail()
'
' Macro_mail Macro

Dim N As Long

N = Application.WorksheetFunction.CountA(Range("B:B"))

Dim Mail As Variant

Set Mail = CreateObject("Outlook.Application")

For ligne = 1 To N

    With Mail.CreateItem(olMailItem)
        .Subject = " DETAIL "
        .To = Range("b" & ligne)
        .Body = " Bonjour, ci-joint le fichier"

    Dim pj
        pj = Sheets("MAIL").Range("c" & ligne)
        .Attachments.Add pj

       .Display

    End With

Next ligne

End Sub

En vous remerciant d'avance !

Bonjour, étrange quand je regarde ce que excel trouve comme valeur de Pj

On remarque un point d'interrogation devant. pourquoi ?

Du coup peut-être en supprimant de le premier caractère pour récupérer l'adresse correcte.

pj = Right(Sheets("MAIL").Range("c" & ligne), Len(Sheets("MAIL").Range("c" & ligne)) - 1)

Bonjour Xmenpl,

En effet la ligne que vous avez suggéré correspond parfaitement, merci beaucoup 😄😄,

J'aimerais bien savoir quelle manipulation vous avez effectué pour trouver la valeur de pj,

Merci d'avance !

En fait dans un premier temps j'ai ajouté une msgbox avec la valeur de pj.

Ce qui m'a permis de voir le "?" en trop. j'aurai pu utiliser un code pour remplacer le "?" mais n'étant pas sur ni de la raison de sa présence ni du caractère ;

il me semblait plus simple de conserver tous les caractères sauf le premier.

Ceci c'est votre chaine de caractère avec le ? en trop trouvé par excel :
Sheets("MAIL").Range("c" & ligne)

On compte le nombre de caractères de la chaine et on retire 1 pour ne pas garder le "?" : 
Len(Sheets("MAIL").Range("c" & ligne)) - 1)

Il ne reste plus qu'à partir de la droite conserver le nombre de caractères trouvé précédemment. 

pj = Right(Sheets("MAIL").Range("c" & ligne), Len(Sheets("MAIL").Range("c" & ligne)) - 1)

D'accord je vois, merci encore pour les explications 😄

Rechercher des sujets similaires à "joindre fichiers mail partir chemins"