Ouverture d'un dossier spécifique depuis un document word en vba
Résolu
jujuetd63
-
jujuetd63 -
jujuetd63 -
bonjour,
J'ai un document WORD dans lequel j'ai une macro qui fait l'assemblage de plusieurs autres documents WORD.
voici la macro:
à la ligne:
ChDir "D:\COMPTE.R\test macro\assemblage\"
Set dlgFile = Application.FileDialog(msoFileDialogFilePicker)
une boite de dialogue s'ouvre pour me permettre de choisir les documents.
Cette fenêtre m'oblige à rechercher le dossier ou se trouve mes documents (mon dossier s'appel "assemblage")et de sélectionner les documents à la main.
je voudrai remplacer cette commande par une qui me donne accès directement au contenu du dossier "assemblage". la sélection des documents peut resté manuelle cela me convient.
j' ai essayé avec unique la ligne "set...…" mes le fonctionnement est le même.
j'ai aussi essayé avec unique la ligne "ChDir……." mais il ne se passe rien, le code ne se fait pas et je n'ai pas d'erreur.
Pouvez vous m'aider?
Cordialement
J'ai un document WORD dans lequel j'ai une macro qui fait l'assemblage de plusieurs autres documents WORD.
voici la macro:
Sub assemblageDoc() Dim dlgFile As FileDialog Dim nTotalFiles As Integer Dim nEachSelectedFile As Integer ChDir "D:\COMPTE.R\test macro\assemblage\" Set dlgFile = Application.FileDialog(msoFileDialogFilePicker) With dlgFile .AllowMultiSelect = True If .Show <> -1 Then Exit Sub Else nTotalFiles = .SelectedItems.Count End If End With For nEachSelectedFile = 1 To nTotalFiles Selection.InsertFile dlgFile.SelectedItems.Item(nEachSelectedFile) If nEachSelectedFile < nTotalFiles Then Selection.InsertBreak Type:=wdPageBreak Else If nEachSelectedFile = nTotalFiles Then Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With With ActiveDocument .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _ True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _ LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _ UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _ True .TablesOfContents(1).TabLeader = wdTabLeaderDots .TablesOfContents.Format = wdIndexIndent End With Exit Sub End If End If Next nEachSelectedFile End Sub
à la ligne:
ChDir "D:\COMPTE.R\test macro\assemblage\"
Set dlgFile = Application.FileDialog(msoFileDialogFilePicker)
une boite de dialogue s'ouvre pour me permettre de choisir les documents.
Cette fenêtre m'oblige à rechercher le dossier ou se trouve mes documents (mon dossier s'appel "assemblage")et de sélectionner les documents à la main.
je voudrai remplacer cette commande par une qui me donne accès directement au contenu du dossier "assemblage". la sélection des documents peut resté manuelle cela me convient.
j' ai essayé avec unique la ligne "set...…" mes le fonctionnement est le même.
j'ai aussi essayé avec unique la ligne "ChDir……." mais il ne se passe rien, le code ne se fait pas et je n'ai pas d'erreur.
Pouvez vous m'aider?
Cordialement
A voir également:
- Ouverture d'un dossier spécifique depuis un document word en vba
- Word 2013 - Télécharger - Traitement de texte
- Signer un document word - Guide
- Comment reduire la taille d'un document - Guide
- Comment supprimer une page dans un document word - Guide
- Faire un organigramme sur word - Guide
5 réponses
Bonjour,
Pour word, il me semble que tu peux faire un truc du genre avant d'ouvrir la fenêtre
https://docs.microsoft.com/fr-fr/office/vba/api/word.options.defaultfilepath
Pour word, il me semble que tu peux faire un truc du genre avant d'ouvrir la fenêtre
https://docs.microsoft.com/fr-fr/office/vba/api/word.options.defaultfilepath
Application.Options.DefaultFilePath(wdDocumentsPath) = "D:\COMPTE.R\test macro\assemblage\"
je viens de faire plusieurs tests mais la fenêtre s'ouvre toujours sur "c:\......." la fenêtre par défaut que j'avais avant.
je sais que j'ai besoin de la variable "dlgFile" pour suite du code.
est il possible que les 3 lignes de code se perturbent l'une l'autre.
Application.Options.DefaultFilePath(wdDocumentsPath) = "D:\COMPTE.R\test macro\assemblage\"
ChDir "D:\COMPTE.R\test macro\assemblage\"
Set dlgFile = Application.FileDialog(msoFileDialogFilePicker)
je sais que j'ai besoin de la variable "dlgFile" pour suite du code.
est il possible que les 3 lignes de code se perturbent l'une l'autre.
Application.Options.DefaultFilePath(wdDocumentsPath) = "D:\COMPTE.R\test macro\assemblage\"
ChDir "D:\COMPTE.R\test macro\assemblage\"
Set dlgFile = Application.FileDialog(msoFileDialogFilePicker)
je ne suis pas sure de tout comprendre dans l'exemple donné.
Mais je pense qu'il faut remplacer les 3 lignes citées plus haut par une versions modifie et adapté du code exemple.
Je me demande si cela fonctionnera avec le reste du code qui utile la même variable: Dim dlgFile As FileDialog.
je ne voudrai pas détruire le code que j'ai si j'ai mal compris l'exemple donnée.
Pouvez vous me confirmer que j'ai bien compris l'exemple merci.
Pour info, je débute sur VBA et je ne suis pas sure d'avoir toutes les bases pour tout comprendre en une foi.
Mais je pense qu'il faut remplacer les 3 lignes citées plus haut par une versions modifie et adapté du code exemple.
Je me demande si cela fonctionnera avec le reste du code qui utile la même variable: Dim dlgFile As FileDialog.
je ne voudrai pas détruire le code que j'ai si j'ai mal compris l'exemple donnée.
Pouvez vous me confirmer que j'ai bien compris l'exemple merci.
Pour info, je débute sur VBA et je ne suis pas sure d'avoir toutes les bases pour tout comprendre en une foi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai poursuivi mes test et j'ai obtenu un code qui fonctionne.
le voici:
merci pour votre aide bonne journée
le voici:
Sub assemblageDoc() Dim dlgFile As FileDialog Dim nTotalFiles As Integer Dim nEachSelectedFile As Integer Set dlgFile = Application.FileDialog(msoFileDialogFilePicker) With dlgFile .InitialFileName = "D:\COMPTE.R\test macro\assemblage\" .AllowMultiSelect = True If .Show <> -1 Then Exit Sub Else nTotalFiles = .SelectedItems.Count End If End With For nEachSelectedFile = 1 To nTotalFiles Selection.InsertFile dlgFile.SelectedItems.Item(nEachSelectedFile) If nEachSelectedFile < nTotalFiles Then Selection.InsertBreak Type:=wdPageBreak Else If nEachSelectedFile = nTotalFiles Then Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2" Selection.Find.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With With ActiveDocument .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _ True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _ LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _ UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _ True .TablesOfContents(1).TabLeader = wdTabLeaderDots .TablesOfContents.Format = wdIndexIndent End With Exit Sub End If End If Next nEachSelectedFile End Sub
merci pour votre aide bonne journée