Microsoft 365 Bizarrerie sur fichier joint par mail

Lolote83

XLDnaute Barbatruc
Bonjour à toutes et à tous.

Au bureau, j'utilise un fichier ou j'envoie très régulièrement par mail des PJ (le plus souvent des PDF)
Le code marche super bien et je ne rencontre pas de problème.
Le fichier joint pour test est très basique et j'ai donc simplement voulu reproduire l'envoi de mail mais depuis la maison.
Si le fichier XL et le PDF sont déposés sur mon espace DropBox, tout se passe bien (voir copie ci-dessous)

Exemple sur un fichier basique
1679411283402.png


Par contre, si le fichier XL et le PDF sont déposés sur un ONEDRIVE, le contenu du fichier joint est OK mais son nom est parsemé de %20 (ce qui correspond à des espaces je crois).

Même mail mais tentative depuis OneDrive.

1679411570204.png


Bref, et en résumé.
Au bureau sur reseau interne = le fichier joint est bien Pour FORUM - Test mail au 2023-03-20.pdf
A la maison, sur ma DropBox = le fichier joint est bien Pour FORUM - Test mail au 2023-03-20.pdf
A la maison, sur le OneDrive = le fichier joint est BON, mais renommé en Pour%20FORUM%20-%20Test%20mail%20au%202023-03-20.pdf

Question :
- Savez-vous le phénomène qui implique ce changement de nom en fonction d’où est placé le fichier ?
- Est-ce lié à la version d'XL ? (32 bits - 64 bits - 365 ou autre ?)

Je vous joint également le fichier XL et PDF (très basique) pour test.
Merci pour vos retours et explications s'il y a

Cordialement
Lolote83
 

Pièces jointes

  • Pour FORUM - Test mail au 2023-03-20.pdf
    29.4 KB · Affichages: 6
  • Pour Forum - Envoyer un mail.xlsm
    21.4 KB · Affichages: 4
Dernière édition:

Lolote83

XLDnaute Barbatruc
Bonjour @BrunoM45 ,
Je te remercie pour ta réponse. Je pense effectivement que cela est dû à OneDrive.

En fait, que j'utilise la fonction =CELLULE("nomfichier"), le chemin retourné est celui-ci
https://PPPP-my.sharepoint.com/personal/yvanPPPP/Documents/Inspé Drag/Mission/Test Envoi Mail/[Pour Forum - Envoyer un mail.xlsm]MAIL
Puis, delà, j'extrais la partie gauche pour n'avoir que le chemin ou que j'utilise la fonction ThisWorkBook.path en VBA, j'ai la même chose

Par contre, si je passe par l'explorateur et que je copie le chemin, j'ai
C:\Users\Yvan\OneDrive - PPPP\Inspé Drag\Mission\Test Envoi Mail
Du coup, dans le premier cas, le fichier joint est composé des %20, et pas dans l'autre cas.
Saurais tu comment palier au fait que j'ai des %20 ?

A bientôt de te lire
@+ Lolote83
 

fanch55

XLDnaute Barbatruc
Bonjour,
Il ne faut pas confondre OneDrive, DropBox et Sharepoint .
Onedrive, DropBox, Gdrive et autres clouds même combat ...
Sharepoint, c'est particulier, c'est généralement un Intranet, et comme tout serveur web réseau, les fichiers sont aux normes "Url" donc %20 = espace et autres caractères spécifiques à une langue = combinaison de code %...
Il doit surement y avoir un contournement,
mais je ne peux pas vous aider, n'étant pas sous Office 365 et n'ayant pas de serveur Sharepoint .
 

Lolote83

XLDnaute Barbatruc
Re bonjour.
@xUpsilon, j'ai testé en enlevant comme tu le préconises au post#5 https://. Le mail se rédige bien mais pas de fichier joint.
Du coup, je pense avoir trouvé une parade qui en fait reste du bidouillage.
1) Je fais une copie du fichier PDF sur mon DD, ou ma DropBox
2) Je joins donc la copie du fichier PDF (puisque placée à un autre endroit que OneDrive, je n'ai pas les problèmes de %20)
3) Je supprime la copie du fichier PDF et ainsi je garde l'original dans le dossier de sauvegarde comme initialement prévu.
Dans tous les cas, merci à tous de vous être penché sur le problème.
Je vous souhaite un très bon WE.
@+ Lolote83
 

Lolote83

XLDnaute Barbatruc
Re bonjour à tous.
En voulant me lancer sur la copie du fichier PDF sur un autre endroit, je me suis confronté au problème de copie.
En effet, le chemin commençant par https://???-my.sharepoint.com/personal/........... le simple code de copie ne fonctionne pas.
VB:
Sub Copie()
    'copier fichier (nom reste le même, emplacement différent)
    Dim FichierOriginal As String
    Dim FichierCopie As String
    
    xFichier = "Pour FORUM - Test mail au 2023-03-20.pdf"
    FichierOriginal = ThisWorkbook.Path & "\" & xFichier
    
    FichierCopie = "C:\Users\Yvan\Documents\" & xFichier
    
    FileCopy FichierOriginal, FichierCopie
End Sub

Du coup, j'ai trouvé une alternative ici https://excel-malin.com/codes-sources-vba/copier-fichier-sharepoint-vba/

Et ce code, me copie bien le fichier PDF (Du OneDrive - Sharepoint) dans un autre dossier

Code:
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias _
                                           "URLDownloadToFileA" ( _
                                           ByVal pCaller As Long, _
                                           ByVal szURL As String, _
                                           ByVal szFileName As String, _
                                           ByVal dwReserved As Long, _
                                           ByVal lpfnCB As Long) As Long

Sub CopierFichierDeSharepoint()
    'Source = https://excel-malin.com/codes-sources-vba/copier-fichier-sharepoint-vba/

    Dim CheminDestination As String
    Dim ValeurRetour As Long
    Dim xChem As String
    Dim xFich As String
    
    
    'l'adresse url du fichier sur Sharepoint
    xChem = ThisWorkbook.Path
    xFich = "Pour FORUM - Test mail au 2023-03-20.pdf"
    
    URLSharePoint = xChem & "/" & xFich
    
    'chemin et le nom de la destination
    CheminDestination = "C:\Users\Yvan\Documents\" & xFich
    
    'lance le téléchargement
    ValeurRetour = URLDownloadToFile(0, URLSharePoint, CheminDestination, 0, 0)
End Sub

Du coup, je joins au mail la copie puis supprime la copie.
C'est juste pour partager cette information pour tous ceux et celles qui en auraient besoin
@+ Lolote83
 

Discussions similaires

Statistiques des forums

Discussions
314 781
Messages
2 112 905
Membres
111 693
dernier inscrit
Gastons