koblicandy
XLDnaute Nouveau
Bonjour,
J'ai un soucis. Je suis en train d'écrire une macro qui doit ajouter des pièces jointes .PDF dans un mail. Il faut donc que la ou les pièces soient trouvés facilement.
Ma difficulté réside dans le fait que le numéro de facture dans mon tableau, que je peux mettre à jour chaque fois et dans lequel je sélectionne les compagnies auxquels je dois envoyer un mail, est différent de celui sur le serveur.
exemple.
dans mon tableau je peux avoir ceci: Facture 12.13.145.1265 et sur le serveur c'est plutôt Facture 12 13 145 1265 (sans les points). ou encore
dans le tableau: Facture FA15121785 et sur le serveur Facture 15121785.
Je ne sais pas comment gérer ça avec VBA.
J'essaie de chercher sur les forums, mais je ne trouve rien pour le moment. Si vous avez des pistes ca serait cool.
Je vous donne le bout de code sur lequel je travaille
'-----------------Pièces jointes------------------------------------------------------------------------------------------------------
p = UD.Cells(Rows.Count, "E").End(xlUp).Row - 2
For l = 2 To p
fichierpdf = UD.Range("e" & l).Value
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder("S:\PARIS-VAT\VATSystems_PRODUCTION\PROCESS_ACTIVITY\CLIENTS\")
z = dossier.SubFolders.Count
nomdossier = UCase(UD.Range("A2").Value)
Worksheets("Recipients CC").Range("G:K").Clear
Set dossiercompany = fso.GetFolder("S:\PARIS-VAT\VATSystems_PRODUCTION\PROCESS_ACTIVITY\CLIENTS\" & nomdossier & "\" & UCase("Invoicing"))
Debug.Print dossiercompany
' MsgBox nomdossier
For Each sousdossiercompany In dossiercompany.SubFolders
m = sousdossiercompany.Name
lngrow = lngrow + 1
If IsNumeric(m) And m <> "Trams" Then
Worksheets("Recipients CC").Range("G" & lngrow).Value = CInt(m)
End If
Next sousdossiercompany
derlng = Worksheets("Recipients CC").Cells(Rows.Count, "G").End(xlUp).Row
If Worksheets("Recipients CC").Range("G" & derlng).Value > Worksheets("Recipients CC").Range("G" & derlng - 1).Value Then
ssdossier = CStr(Worksheets("Recipients CC").Range("G" & derlng).Value)
End If
Dim mesfichiers, t()
chemin = dossiercompany & "\" & ssdossier ' racine pour la recherche
Debug.Print chemin
exT = ".pdf" ' extention de fichiers recherchés
argmt1 = fichierpdf ' partie du nom de fichiers recherchés
mesfichiers = cherche(chemin, exT, argmt1) ' ||mesfichiers|| deviendra un tableau de nom de fichiers selon les condition précédemment énumérée
If UBound(mesfichiers) > 0 Then
'MsgBox Join(mesfichiers, vbCrLf)
i = i + 1
UD.Range("M" & i).Value = mesfichiers
End If
Next l
PieceJointe = PieceJointe
For u = 2 To UD.Range("M65536").End(xlUp).Row - 1
PieceJointe = PieceJointe & "; " & UD.Range("M" & u).Value
Debug.Print PieceJointe
Next
Merci
J'ai un soucis. Je suis en train d'écrire une macro qui doit ajouter des pièces jointes .PDF dans un mail. Il faut donc que la ou les pièces soient trouvés facilement.
Ma difficulté réside dans le fait que le numéro de facture dans mon tableau, que je peux mettre à jour chaque fois et dans lequel je sélectionne les compagnies auxquels je dois envoyer un mail, est différent de celui sur le serveur.
exemple.
dans mon tableau je peux avoir ceci: Facture 12.13.145.1265 et sur le serveur c'est plutôt Facture 12 13 145 1265 (sans les points). ou encore
dans le tableau: Facture FA15121785 et sur le serveur Facture 15121785.
Je ne sais pas comment gérer ça avec VBA.
J'essaie de chercher sur les forums, mais je ne trouve rien pour le moment. Si vous avez des pistes ca serait cool.
Je vous donne le bout de code sur lequel je travaille
'-----------------Pièces jointes------------------------------------------------------------------------------------------------------
p = UD.Cells(Rows.Count, "E").End(xlUp).Row - 2
For l = 2 To p
fichierpdf = UD.Range("e" & l).Value
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder("S:\PARIS-VAT\VATSystems_PRODUCTION\PROCESS_ACTIVITY\CLIENTS\")
z = dossier.SubFolders.Count
nomdossier = UCase(UD.Range("A2").Value)
Worksheets("Recipients CC").Range("G:K").Clear
Set dossiercompany = fso.GetFolder("S:\PARIS-VAT\VATSystems_PRODUCTION\PROCESS_ACTIVITY\CLIENTS\" & nomdossier & "\" & UCase("Invoicing"))
Debug.Print dossiercompany
' MsgBox nomdossier
For Each sousdossiercompany In dossiercompany.SubFolders
m = sousdossiercompany.Name
lngrow = lngrow + 1
If IsNumeric(m) And m <> "Trams" Then
Worksheets("Recipients CC").Range("G" & lngrow).Value = CInt(m)
End If
Next sousdossiercompany
derlng = Worksheets("Recipients CC").Cells(Rows.Count, "G").End(xlUp).Row
If Worksheets("Recipients CC").Range("G" & derlng).Value > Worksheets("Recipients CC").Range("G" & derlng - 1).Value Then
ssdossier = CStr(Worksheets("Recipients CC").Range("G" & derlng).Value)
End If
Dim mesfichiers, t()
chemin = dossiercompany & "\" & ssdossier ' racine pour la recherche
Debug.Print chemin
exT = ".pdf" ' extention de fichiers recherchés
argmt1 = fichierpdf ' partie du nom de fichiers recherchés
mesfichiers = cherche(chemin, exT, argmt1) ' ||mesfichiers|| deviendra un tableau de nom de fichiers selon les condition précédemment énumérée
If UBound(mesfichiers) > 0 Then
'MsgBox Join(mesfichiers, vbCrLf)
i = i + 1
UD.Range("M" & i).Value = mesfichiers
End If
Next l
PieceJointe = PieceJointe
For u = 2 To UD.Range("M65536").End(xlUp).Row - 1
PieceJointe = PieceJointe & "; " & UD.Range("M" & u).Value
Debug.Print PieceJointe
Next
Merci