Macro Boite de dialogue pour chemin d'enregsitrement Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 17 avril 2019, 12:36

Bonjour,

J'ai besoin de vos lumières.
Dans une de mes macro, je souhaite intégrer une boite de dialogue dans laquelle le personne pourra choisir le chemin d'enregistrement, mais le nom du fichier est défini par moi.
Je chercher sur les forum mais je ne trouve pas ce que je veux.
C'est sur Word.
Merci d'avance
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'713
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 17 avril 2019, 13:54

Bonjour,

à tester,
Sub ChoixRepertoire()
   Dim objShell As Object, objFolder As Object, oFolderItem As Object
    Dim Chemin As String
 
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
 
    On Error Resume Next
    Set oFolderItem = objFolder.Items.Item
    Chemin = oFolderItem.Path
 
    MsgBox Chemin
End Sub
Vive ces nouvelles saisons qui nous colorent.
isabelle
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 18 avril 2019, 11:14

Merci i20100,

Le codage est bon et fonctionne, mais je n'arrive pas à obtenir ce que je veux, je pense que c'est mon enchainement de codage qui n'est pas bien.
Je t'explique ce que je veux que la macro fasse:
1) Exportation ou enregistrement sous PDF de mon Word
2) nom d'enregistrement défini par moi (" texte en dure" + signet repris du formulaire Word + 2ème signet repris du formulaire Word)
3)Choix du chemin d'enregistrement par l'utilisateur via une boite de dialogue
4) Envoi par Outlook sur ma boite mail pro d'un mail avec le pdf en question rattaché

Voilà vous savez tout.

Ci-dessous ma macro, enfin, le champs de bataille

Sub Macro1()


Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String
Dim NFichier As String
Dim Nom As String
Dim Debut As String


Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un r?pertoire", &H1&)

Chemin = oFolderItem.Path
Nom = ActiveDocument.Bookmarks("Nom").Range.Text
Debut = ActiveDocument.Bookmarks("Debut").Range.Text
NFichier = "Demande CP/RTT " & Nom & " " & Debut & ".pdf" 'nom enregistrement ( nom salari? + d?but CP)


ActiveDocument.ExportAsFixedFormat outputFileName:=Chemin & NFichier, _
exportFormat:=wdExportFormatPDF ' enregistrement'
On Error Resume Next
Set oFolderItem = objFolder.Items.Item


MsgBox Chemin



Set OApp = CreateObject("Outlook.Application") ' envoi par mail outlook
Set OMail = OApp.CreateItem(0)

With OMail

.Display
.To = "vxxx@zzzz"
.Subject = "Demande CP/RTT"
.Attachments.Add Chemin & "/" & NFichier
.BodyFormat = olFormatRichText
.Body = "Tu trouveras ma feuille de CP/RTT pour le " & Debut
.Send
End With

End Sub
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'713
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 18 avril 2019, 14:19

re,

le caractère / est interdit dans le nom d'un fichier, essayer avec le tiret -
Les caractères suivants sont réservés pour des usages spéciaux et ne doivent pas être utilisés dans le nom d'un fichier, :

< (plus petit que; less than)
> (plus grand que; greater than)
: (deux points; colon)
" (double appostrophe; double quote)
/ (slash; barre de fraction; forward slash)
(antislash; backslash)
| (barre verticale; vertical bar; pipe)
? (point d'interrogation; question mark)
* (astérisque; asterisk)
Vive ces nouvelles saisons qui nous colorent.
isabelle
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 18 avril 2019, 15:14

Merci pour l'info, mais cela ne fonctionnement pas, je pense que c'est la compilation qui n'est pas forcément juste bonne.
J'ai rajouter un "With" suite à un message d'erreur, mais ce n'est toujours pas ça.

Sub Macro1()


Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String
Dim NFichier As String
Dim Nom As String
Dim Debut As String


Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un r?pertoire d'enregistrement pour archivage personnel", &H1&)

With objFolder

Chemin = oFolderItem.Path
Nom = ActiveDocument.Bookmarks("Nom").Range.Text
Debut = ActiveDocument.Bookmarks("Debut").Range.Text
NFichier = "Demande CP-RTT " & Nom & " " & Debut & ".pdf" 'nom enregistrement ( nom salari? + d?but CP)


ActiveDocument.ExportAsFixedFormat outputFileName:=Chemin & NFichier, _
exportFormat:=wdExportFormatPDF ' enregistrement'

On Error Resume Next
Set oFolderItem = objFolder.Items.Item


MsgBox Chemin

End With


Set OApp = CreateObject("Outlook.Application") ' envoi par mail outlook
Set OMail = OApp.CreateItem(0)

With OMail

.Display
.To = "vwagentrutz@capitalgrandest.eu"
.Subject = "Demande CP/RTT"
.Attachments.Add Chemin & "/" & NFichier
.BodyFormat = olFormatRichText
.Body = "Tu trouveras ma feuille de CP/RTT pour le " & Debut
.Send
End With

End Sub
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'713
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 18 avril 2019, 15:28

re,

à tester,
Sub Macro1()
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String
Dim NFichier As String
Dim Nom As String
Dim Debut As String

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path
    
Nom = ActiveDocument.Bookmarks("Nom").Range.Text
Debut = ActiveDocument.Bookmarks("Debut").Range.Text
NFichier = "Demande CP-RTT " & Nom & " " & Debut & ".pdf" 'nom enregistrement ( nom salari? + d?but CP)

ActiveDocument.ExportAsFixedFormat outputFileName:=Chemin & "/" & NFichier, _
exportFormat:=wdExportFormatPDF ' enregistrement'

Set OApp = CreateObject("Outlook.Application") ' envoi par mail outlook
Set OMail = OApp.CreateItem(0)

With OMail

.Display
.To = "vwagentrutz@capitalgrandest.eu"
.Subject = "Demande CP/RTT"
.Attachments.Add Chemin & "/" & NFichier
.BodyFormat = olFormatRichText
.Body = "Tu trouveras ma feuille de CP/RTT pour le " & Debut
.Send
End With
End Sub
Vive ces nouvelles saisons qui nous colorent.
isabelle
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 18 avril 2019, 15:41

La macro s'exécute, mais le fichier Word n'est pas exporter en pdf, ni enregistrer selon le chemin demandé et donc pas rattaché dans le mail.
Je te joins le fichier, au cas où?
Demande de congés.docm
(263.75 Kio) Téléchargé 4 fois
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'713
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 18 avril 2019, 15:48

re,

remplace la ligne
Debut = ActiveDocument.Bookmarks("Debut").Range.Text
par
Debut = Replace(ActiveDocument.Bookmarks("Debut").Range.Text, "/", "-")
Vive ces nouvelles saisons qui nous colorent.
isabelle
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 18 avril 2019, 16:02

UN GRAND MERCI :mrgreen:
V
Virg1511
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 28 mars 2019
Version d'Excel : 2010

Message par Virg1511 » 26 avril 2019, 11:31

@ i20100, j'ai encore besoin de ton aide

Après des semaines de travail sur 2 macros, elles sont enfin prêtes à mettre en production.
Trop contente, c'est mes 1ères et elles fonctionnent depuis mon PC.
Je la diffuse à mes collègues, et c'est le drame, ça ne fonctionnent pas chez eux .
1-J'ai créé le bouton de la macro dans la barre d'outil --> elle n'est pas visible chez eux, alors que chez moi, je les vois bien. Pourquoi?
2- Lorsqu'ils lancent une des macros, il y a un message d'erreur que je n'ai pas chez moi.
La macro s'exécute parfaitement chez moi, mais rien ne ce fait chez eux et il y a ce message d'erreur qui me dit qu'il y a une problème de format dans le code ci-dessous:
--> NFichier = "Feuille pr?sence " & ActiveSheet.Name & Format(Now, " yyyy ") & Range(" B15").Value & ".pdf"
Et plus particulièrement à -->Format(Now, " yyyy ")
Je l'ai supprimé (pas vraiment utile), mais ça ne fonctionne toujours pas, alors que chez moi si.
Lors de la création des macro, j'ai dû m'ouvrir des accès que les autres n'ont pas, mais à part le "Développeur", je ne vois pas quoi. Après j'ai tellement trifouillé, que je ne sais plus.

HELP!

Merci d'avance
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message