Macro Boite de dialogue pour chemin d'enregsitrement
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
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
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
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)
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
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
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ù?
re,
remplace la ligne
Debut = ActiveDocument.Bookmarks("Debut").Range.Text
par
Debut = Replace(ActiveDocument.Bookmarks("Debut").Range.Text, "/", "-")
@ 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
Bonjour Virginie,
il n'y a pas de macro dans le fichier que tu as joint
Cela ne fonctionne toujours pas chez mon collègue.
Il a activé l'onglet "Développeur", fait les modifs que tu as dit, mais toujours rien.
C'est comme si je n'avais pas affecté de macro à mon fichier Word, alors que chez moi ça fonctionne et visiblement chez toi aussi.
J'ai mis le bouton d'exécution de la macro dans le ruban et il n'est pas visible sur les autre PC, uniquement chez moi, pourquoi?
Est-ce que c'est parce que c'est un modèle Word en format formulaire.
Je suis vraiment perdue
J'ai mis le bouton d'exécution de la macro dans le ruban et il n'est pas visible sur les autre PC, uniquement chez moi, pourquoi?
pour le partager
Partager un ruban personnalisé avec un autre utilisateur ou un autre ordinateur
Vous pouvez partager votre ruban et les personnalisations de barre d’outils Accès rapide dans un fichier qui peut être importé et utilisé par un collègue ou sur un autre ordinateur.
Étape 1 : exporter votre ruban personnalisé:
Dans la fenêtre Personnaliser le ruban, cliquez sur Importer/Exporter.
Cliquez sur Exporter toutes les personnalisations.