XL 2019 Variable du bureau dans l'envoie par Outlook Filename:= et .Attachments.Add

andrekn13

XLDnaute Occasionnel
Bonjour encore une fois !
J'ai déjà solutionné un soucis avec ce fil :

Décidément c'est bien prise de tête ce Vba, pour chaque code c'est des heures et des heures de recherche
pour le reprendre dans un autre contexte qui ne fonctionne pas pour ce cas de Outllok :
J'ai 2 ordi dont l'un est avec Windows 11 dont le bureau"Drive" a été remplacé par "bureau" et non "desktop" et l'autre avec Windows 10 qui lui se sert de "Desktop"
normalement pour
Filename:= et .Attachments.Add il suffit simplement de mettre le chemin puis "&" puis le nom du fichier
Hors, avec toutes les solutions, la variable du chemin complet si on ne commence pas par "C:\ ....." et on met une variable qui donne ce chemin ça ne fonctionne pas
- ni sur la création du fichier pdf
-ni sur Filename
-ni sur Attachements
je pourrais envoyé un fichier exemple mais il y a tellement de codes en vert qui n'ont pas fonctionnés que je ne vois pas trop l'intérêt
le seul qui fonctionne sur la création du pdf est de ne mettre aucun chemin , seulement , juste avant
chdir "répertoire voulu par défaut"
S'il fonctionnait également pour le "With" de la création du mail pour envoie de ce fichier ça m'aurait bien arrangé, et à la fin du code
chdir "répertoire par défaut"

ex:
phase 1) le chemin
Dim CheminBureau1 As String
CheminBureau1 = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Dim CheminBureau2 As Variant 'String
CheminBureau2 = CheminBureau1 & "\"
MsgBox "CheminBureau2 " & CheminBureau2
Dim DossierNouveau As String
Dim DossierNouveau2 As String
DossierNouveau = CheminBureau2 & w & " -FACTURE- " & V & " - " & x1 & "-" & Z & " € "
DossierNouveau2 = CheminBureau2 & w & " -FACTURE- " & V & " - " & x1 & "-" & Z & " € " & "\"
MsgBox "DossierNouveau2" & DossierNouveau2
donc je récupère les chemins nickels

phase2) je crée le dossier nouveau où je vais crée les pdf à envoyé
' DossierNouveau2 = CheminBureau1 & "\" & DossierNouveau
' MsgBox "DossierNouveau2 pour dossier est : " & DossierNouveau2
If Not Exist_Rep(DossierNouveau) Then MkDir DossierNouveau
'************************************************************************
ce code fonctionne nickel

Phase 3) je crée le pdf
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DossierNouveau2 & NomDuFichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, from:=1, To:=2, openAfterPublish:=False
là, ça ne fonctionne pas, il le considère comme le Nom du fichier, il ne le prend pas comme :
"C:\Users\LENOV\Bureau\20231004 -FACTURE- EMALEC - 1029088-436,8 € " & NomDuFichier

Phase 4) envoie de la pièce jointe
Même problème !!!

j'ai essayé avec la macro fonction : des code "H10 ect ...... c'est pis : me crée un dossier qui apparaît sur mon bureau et impossible de l'effacer, il "n'existe pas !!!"
(encore ce soucis à régler)
On Error GoTo TestErreur
Dim CheminBureau As String
CheminBureau = ObtenirCheminBureau() ' c'est la fonction appelée
MsgBox CheminBureau 'affiche le chemin vers le dossier Bureau
TestErreur:
MsgBox "Une erreur s'est produite..."

j'ai essayé avec avec d'autres ....lol
mon ancien code, qui fonctionnait sur un seul ordi était :
Filename:="C:\Users\" & Environ("username") & "\Desktop\" ; mais Desktop est faux dans le nouveau qui renvoie pas "Bureau"

Ma solution peut-etre serait que j'aille dans le registre et change par défaut le "Destop" ???
C'est fou que chaque détail soit si compliqué à ce point ....
Je suis preneur si, un petit génie connaît une solution ?
Dans les tutos de Microsoft, comme dab, je n'ai trouvé rien qui puisse me faire comprendre pourquoi une variable ne peut pas être fixée style
mavariableChemin.text par ex ou
mavariableChemin.path ou autre pour qu'il mette des guillemets : " mon chemin "
Voilà, voilà ......
 

andrekn13

XLDnaute Occasionnel

20231004 -FACTURE- xxxxxxxx - MARSEILLE CC Grand Littoral - DI N°942163 - CS450133 - 436,8 €​

c'est fou en effet j'ai un espace sur le fichier pdf avant le ".pdf"
alors que mon dossier, avec les mêmes variables enchaine directement entre "dossier" \"fichier"
c'est ce que tu veux dire ? je dois conserver le même format ?
 

fanch55

XLDnaute Barbatruc
Ce que je veux dire,
c'est que tu indiques qu'il faut créer un Dossier à partir de la variable DossierNouveau qui contient "20231004 -FACTURE- xxxxxxxx - MARSEILLE CC Grand Littoral - DI N°942163 - CS450133 - 436,8 € " ( avec un blanc/espace à la fin ),
le Mkdir le fait mais sans l'espace ( qui est du superflu dans l'absolu ) .
Après, tu aboutes un "\" à la variable DossierNouveau pour former la variable DossierNouveau2 :
"20231004 -FACTURE- xxxxxxxx - MARSEILLE CC Grand Littoral - DI N°942163 - CS450133 - 436,8 € \"
et tu essayes d'exporter en Pdf en lui indiquant un Filename composé de DossierNouveau2 et NomDuFichier, ce qui veut dire que tu demandes la création du fichier dans le dossier avec un blanc final, dossier qui n'existe pas et qui ne peut pas exister .
 

andrekn13

XLDnaute Occasionnel
Bon sang ............ je viens de faire pleins de tests qui renvoie tes dires
C'est dingue
Un trop grand merci , je cherchais dans les déclarations alors que c'est dans la syntaxe de variables
Ouuuuuufffff
J'aurais tourner des heures encore
si tu aurais un tuyau , avec mes essais, je pense avec appel des fonctions windows #10 , ça m'a crée un fichier impossible en enlever ...... lol
Merci énormément déjà pour m'avoir dépatouillé
 

Pièces jointes

  • bug fichier qui apparait sans pouvoir le supprimer.png
    bug fichier qui apparait sans pouvoir le supprimer.png
    45.6 KB · Affichages: 25

fanch55

XLDnaute Barbatruc
C'est un problème qui survient parfois sur tout ce qui se trouve sur le bureau.
L'explorateur ne "rafraichit" pas parfois parfaitement le dossier et ce qui est affiché sur l'écran de l'explorateur n'est plus synchrone avec le disque.
  • Il faut relancer l'explorateur, ce qui nécessite de bien connaitre comment manipuler le Gestionnaire de Taches .
  • Lancer un shell et supprimer le dossier avec les commandes basiques du shell, ce qui suppose une connaissance minimum des commande Dos .
  • Le plus simple: déconnecter et reconnecter la session Windows de l'utilisateur .
 

Discussions similaires

Réponses
6
Affichages
230
Réponses
2
Affichages
361
Réponses
2
Affichages
349

Statistiques des forums

Discussions
313 225
Messages
2 096 346
Membres
106 583
dernier inscrit
yasinus