Exporter des fichiers Excel en fichiers Word pour les comparer
Bonjour,
Je dois faire de la comparaison de rapports (plusieurs versions de rapports). Mes rapports initiaux sont des fichiers Excel. L' analyse des versions de ces rapports se fait en word car l'outil de comparaison est plus simple et efficace.
J'ai mis en place 2 scripts vba:
Un en Excel qui permet de convertir les rapports excel en word:
Sub export_workbook_to_word()
Dim sheetName As String
Set obj = CreateObject("Word.Application")
obj.Visible = True
Set newobj = obj.Documents.Add
For Each ws In ActiveWorkbook.Sheets
sheetName = ws.Name
'Retrieve name of the Worksheet
newobj.ActiveWindow.Selection.TypeText sheetName
newobj.ActiveWindow.Selection.Style = ActiveDocument.Styles(-2)
newobj.ActiveWindow.Selection.TypeParagraph
ws.UsedRange.Copy
newobj.ActiveWindow.Selection.PasteExcelTable False, False, False
newobj.ActiveWindow.Selection.InsertBreak Type:=7
Next
newobj.ActiveWindow.Selection.TypeBackspace
newobj.ActiveWindow.Selection.TypeBackspace
obj.Activate
newobj.SaveAs Filename:=Application.ActiveWorkbook.Path & "\" & Split(ActiveWorkbook.Name, ".")(0)
End Sub
Un en Word pour comparer les rapport et créer un 3 eme rapport qui montre les différences entre les rapports avec l'outil de track changes
Sub CompareAllFiles()
Dim strFolderA As String
Dim strFolderB As String
Dim strFolderC As String
Dim strFileSpec As String
Dim strFileName As String
Dim objDocA As Word.Document
Dim objDocB As Word.Document
Dim objDocC As Word.Document
strFolderA = InputBox("Enter path to base documents:")
strFolderB = InputBox("Enter path to new documents:")
strFolderC = InputBox("Enter path for document comparisons to be saved:")
strFileSpec = "*.doc"
strFileName = Dir(strFolderA & strFileSpec)
Do While strFileName <> vbNullString
Set objDocA = Documents.Open(strFolderA & strFileName)
Set objDocB = Documents.Open(strFolderB & strFileName)
Application.CompareDocuments _
OriginalDocument:=objDocA, _
RevisedDocument:=objDocB, _
Destination:=wdCompareDestinationNew
objDocA.Close
objDocB.Close
Set objDocC = ActiveDocument
objDocC.SaveAs FileName:=strFolderC & strFileName
objDocC.Close SaveChanges:=False
strFileName = Dir
Loop
Set objDocA = Nothing
Set objDocB = Nothing
End Sub
Je voudrais réunir les 2 scripts en un seul script pour:
- exporter tous les fichiers Excel d'un dossier en fichier Word avec le 1er script (sur base du 2eme script pour choisir les dossiers d'origine et de destination)
- Comparer les documents Word (avec le 2eme script) et créer les fichiers de résultats
Pourriez-vous m'aider à faire cela?
Merci d'avance pour votre aide
bonjour
pas besoin de Word ni de VBA
il suffit de créer un fichier (ou un onglet qui contient =SI(A1dufichierA = A1dufichierB ; ""; "écart")
formule que tu étends à toute la plage nécessaire.
tu peux mettre une somme des "écarts" pour mieux quantifier le résultat.
J'ai malheureusement besoin d'avoir une structure identique (tableaux, données et mise en forme) pour comparer ligne par ligne si les champs ont été modifiés(valeurs différentes, ajout ou modification d'une ligne ou d'une colonne). Excel n'est pas assez efficace et surtout simple d'utilisation pour faire cela, sachant qu'en plus je souhaite automatiser le plus possible ces tâches et ne pas devoir aller dans chaque fichier pour faire les manipulations.
bonjour
pas besoin de Word ni de VBA
il suffit de créer un fichier (ou un onglet qui contient =SI(A1dufichierA = A1dufichierB ; ""; "écart")
formule que tu étends à toute la plage nécessaire.
tu peux mettre une somme des "écarts" pour mieux quantifier le résultat.
Merci pour la réponse,
J'ai malheureusement besoin d'avoir une structure identique (tableaux, données et mise en forme) pour comparer ligne par ligne si les champs ont été modifiés(valeurs différentes, ajout modification ou suppression d'une ligne ou d'une colonne). Excel n'est pas assez efficace et surtout simple d'utilisation pour faire cela, sachant qu'en plus je souhaite automatiser le plus possible ces tâches et ne pas devoir aller dans chaque fichier pour faire les manipulations. D'ou la solution que j'avais pensé avec Word et son outil de comparaison.