Bonjour a tous,
voila, j'ai une base de données des employés sous Excel 2021 et j'aimerais obtenir un document word qui m'affiche la liste des employés selon la fac ou ils travails
cette fois je me suis cassé la tête et donc j'ai pondu le code suivant qui fait le gros du travail.
seul souci est il m'affiche qu'un seul employé au lieu de 10. je n'arrive pas savoir où mettre la boucle pour qu'il m'affiche les 10 employés a la suite
voila le code:
Sub sendWord()
Dim wd As Word.Application
Dim wddoc As Word.Document
Set wd = New Word.Application ' création du document word
Dim FrRow, LastRow As Long
LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
For FrRow = 3 To LastRow
Set wddoc = wd.Documents.Open(ThisWorkbook.Path & "\borderauxfac.docx")
wd.Visible = False
' Transfere de données
wd.Selection.GoTo what:=wdGoToBookmark, Name:="StructureName" ' (doyen, recteur,...)
wd.Selection.TypeText Text:=Feuil1.Cells(FrRow, "N")
wd.Selection.GoTo what:=wdGoToBookmark, Name:="Faculte" ' nom de la faculté
wd.Selection.TypeText Text:=Feuil1.Cells(FrRow, "O")
wd.Selection.GoTo what:=wdGoToBookmark, Name:="NomATS" ' nom des employés
wd.Selection.TypeText Text:=Feuil1.Cells(FrRow, "B")
' Effacer les Signets en cas d'erreur
On Error Resume Next
wddoc.Bookmarks("StructureName").Delete
wddoc.Bookmarks("Faculte").Delete
'sauvegarde du document
wddoc.SaveAs2 ThisWorkbook.Path & "\" & Feuil1.Cells(FrRow, "O").Value & ".docx"
wddoc.Close
Set wddoc = Nothing
Next FrRow
MsgBox "Vos fichiers ont été Sauvegardés avec succès", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "Confirmation"
End Sub
voici un exemple de résultat bien sur simplifier avec le problème :
voila, j'ai une base de données des employés sous Excel 2021 et j'aimerais obtenir un document word qui m'affiche la liste des employés selon la fac ou ils travails
cette fois je me suis cassé la tête et donc j'ai pondu le code suivant qui fait le gros du travail.
seul souci est il m'affiche qu'un seul employé au lieu de 10. je n'arrive pas savoir où mettre la boucle pour qu'il m'affiche les 10 employés a la suite
voila le code:
Sub sendWord()
Dim wd As Word.Application
Dim wddoc As Word.Document
Set wd = New Word.Application ' création du document word
Dim FrRow, LastRow As Long
LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
For FrRow = 3 To LastRow
Set wddoc = wd.Documents.Open(ThisWorkbook.Path & "\borderauxfac.docx")
wd.Visible = False
' Transfere de données
wd.Selection.GoTo what:=wdGoToBookmark, Name:="StructureName" ' (doyen, recteur,...)
wd.Selection.TypeText Text:=Feuil1.Cells(FrRow, "N")
wd.Selection.GoTo what:=wdGoToBookmark, Name:="Faculte" ' nom de la faculté
wd.Selection.TypeText Text:=Feuil1.Cells(FrRow, "O")
wd.Selection.GoTo what:=wdGoToBookmark, Name:="NomATS" ' nom des employés
wd.Selection.TypeText Text:=Feuil1.Cells(FrRow, "B")
' Effacer les Signets en cas d'erreur
On Error Resume Next
wddoc.Bookmarks("StructureName").Delete
wddoc.Bookmarks("Faculte").Delete
'sauvegarde du document
wddoc.SaveAs2 ThisWorkbook.Path & "\" & Feuil1.Cells(FrRow, "O").Value & ".docx"
wddoc.Close
Set wddoc = Nothing
Next FrRow
MsgBox "Vos fichiers ont été Sauvegardés avec succès", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "Confirmation"
End Sub
voici un exemple de résultat bien sur simplifier avec le problème :
Dernière édition: