Bonjour à tous,
Dans le cadre de mon boulot, j'essaie de mettre en place un code VBA me permet d'exporter des données provenant de cellules EXCEL vers des signets mis en place sur plusieurs documents words.
Les étapes du code sont les suivantes :
1) définir un emplacement de dossier et ouvrir tous les fichiers word de ce dossier (grâce à dir("*.docx"))
2) Exporter les données de mes cellules excel vers mes signets words
3) Enregistrer les documents ainsi modifiés vers un autre dossier
je vous mets le code en question ci-dessous
Sub ExtractionDonnees()
Dim Chemin As String, Fichier As String
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
'Définit le répertoire contenant les fichiers
Chemin = "C:\Users\julien\Documents\Travail JG\Fichiers\"
'Boucle sur tous les fichiers word du répertoire sur MAC
Fichier = Dir(Chemin & "*.docx")
Do While Len(Fichier) > 0
'écrit le résultat dans la fenêtre d'exécution (Ctrl+G).
Debug.Print Chemin & Fichier
Set WordApp = CreateObject("word.application")
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open(Chemin & Fichier)
'ouvre le document Word
If WordDoc.Bookmarks.Exists("NumerodeProcedure") = False Then
GoTo line1 'si la condition si est realisee, on se deplace a line1:
End If
WordDoc.Bookmarks("NumeroDeProcedure").Range.Text = Cells(1, 3)
line1:
WordDoc.SaveAs Filename:="C:\Users\julien\Documents\Travail JG\Fichiers modifiés\" & WordDoc.Name
WordDoc.Close
Fichier = Dir
Loop
WordApp.Application.Quit
Set WordApp = Nothing
End Sub
Le code a l'air de fonctionner à peu près sous windows. Le problème est que je dois aussi l'utiliser sur mon pc portable pro (masOS high Sierra version 10.13.6). Or, ce code ne fonctionne plus du tout sur mac.
Les principaux problèmes que j'ai repéré sont les suivants :
1) s'agissant de la fonction DIR, j'ai découvert que mac ne reconnaissait pas * pour les caractères génériques. J'ai essayé de contourner le problème avec DIR(MACID("W6BN") mais ça ne fonctionne pas du tout
2) La fonction CreateObject déconne aussi complètement à cause d 'un problème d'activeX sur mac si j'ai bien compris
Pour résoudre ces problèmes, j'ai cru comprendre qu'il allait falloir que j'insère un peu de code applescript dans mon code VBA. Pour information, je ne suis pas du tout développeur à la base (je suis juriste), et j'ai cravaché des heures pour sortir le code VBA que je vous ai joins ci-dessus. Le fait d'apprendre qu'il allait falloir que je commence à appréhender un nouveau langage de programmation m'a complètement démoralisé, d'autant que les informations sur applescript sont beaucoup plus difficile à trouver que pour la VBA.
C'est pourquoi je me permets de solliciter l'aide de ce forum.
Auriez-vous des pistes à me suggérer ?
Je vous remercie par avance
Dans le cadre de mon boulot, j'essaie de mettre en place un code VBA me permet d'exporter des données provenant de cellules EXCEL vers des signets mis en place sur plusieurs documents words.
Les étapes du code sont les suivantes :
1) définir un emplacement de dossier et ouvrir tous les fichiers word de ce dossier (grâce à dir("*.docx"))
2) Exporter les données de mes cellules excel vers mes signets words
3) Enregistrer les documents ainsi modifiés vers un autre dossier
je vous mets le code en question ci-dessous
Sub ExtractionDonnees()
Dim Chemin As String, Fichier As String
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
'Définit le répertoire contenant les fichiers
Chemin = "C:\Users\julien\Documents\Travail JG\Fichiers\"
'Boucle sur tous les fichiers word du répertoire sur MAC
Fichier = Dir(Chemin & "*.docx")
Do While Len(Fichier) > 0
'écrit le résultat dans la fenêtre d'exécution (Ctrl+G).
Debug.Print Chemin & Fichier
Set WordApp = CreateObject("word.application")
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open(Chemin & Fichier)
'ouvre le document Word
If WordDoc.Bookmarks.Exists("NumerodeProcedure") = False Then
GoTo line1 'si la condition si est realisee, on se deplace a line1:
End If
WordDoc.Bookmarks("NumeroDeProcedure").Range.Text = Cells(1, 3)
line1:
WordDoc.SaveAs Filename:="C:\Users\julien\Documents\Travail JG\Fichiers modifiés\" & WordDoc.Name
WordDoc.Close
Fichier = Dir
Loop
WordApp.Application.Quit
Set WordApp = Nothing
End Sub
Le code a l'air de fonctionner à peu près sous windows. Le problème est que je dois aussi l'utiliser sur mon pc portable pro (masOS high Sierra version 10.13.6). Or, ce code ne fonctionne plus du tout sur mac.
Les principaux problèmes que j'ai repéré sont les suivants :
1) s'agissant de la fonction DIR, j'ai découvert que mac ne reconnaissait pas * pour les caractères génériques. J'ai essayé de contourner le problème avec DIR(MACID("W6BN") mais ça ne fonctionne pas du tout
2) La fonction CreateObject déconne aussi complètement à cause d 'un problème d'activeX sur mac si j'ai bien compris
Pour résoudre ces problèmes, j'ai cru comprendre qu'il allait falloir que j'insère un peu de code applescript dans mon code VBA. Pour information, je ne suis pas du tout développeur à la base (je suis juriste), et j'ai cravaché des heures pour sortir le code VBA que je vous ai joins ci-dessus. Le fait d'apprendre qu'il allait falloir que je commence à appréhender un nouveau langage de programmation m'a complètement démoralisé, d'autant que les informations sur applescript sont beaucoup plus difficile à trouver que pour la VBA.
C'est pourquoi je me permets de solliciter l'aide de ce forum.
Auriez-vous des pistes à me suggérer ?
Je vous remercie par avance