Sub Fusion()
Dim chemin$, fichier$, fich$, fichformat%, n1%, Wb As Workbook, p%, q%, n2%, n%
chemin = ThisWorkbook.Path & "\"
fichier = "Fusion.xlsx"
fich = ThisWorkbook.Name
fichformat = ThisWorkbook.FileFormat
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveAs chemin & fichier, 51
ThisWorkbook.SaveAs chemin & fich, fichformat '56 ou 52
'---rouvre le fichier Fusion---
Workbooks.Open chemin & fichier
n1 = ThisWorkbook.Sheets.Count
'---ouvre le 2ème fichier---
Set Wb = Workbooks.Open(chemin & "INVENTAIRE SOURCE TEST.xlsx")
With Workbooks(fichier)
'---suppression des feuilles du 2ème fichier faisant doublon---
For p = Wb.Sheets.Count To 1 Step -1
For q = 1 To n1
If UCase(Wb.Sheets(p).Name) = UCase(.Sheets(q).Name) _
Then Wb.Sheets(p).Delete
Next q
Next p
n2 = Wb.Sheets.Count
'---ajoute les feuilles du 2ème fichier dans le 1er---
For n = 1 To n2
Wb.Sheets(n).Copy After:=.Sheets(.Sheets.Count)
Next n
.Sheets("Fusion des fichiers").Delete
n = .Sheets.Count
'---modification des liens---
.ChangeLink chemin & Wb.Name, fichier
'---tri alphabétique des onglets---
For p = 1 To n
For q = p + 1 To n
If .Sheets(q).Name < .Sheets(p).Name Then .Sheets(q).Move Before:=.Sheets(p)
Next q
Next p
.Sheets(1).Activate
'---fermeture des fichiers---
.Close True
Wb.Close False
End With
Application.ScreenUpdating = True
'---test de vérification---
If n = n1 + n2 - 1 Then MsgBox "Fusion réussie, voyez le fichier '" & fichier & "'..."
End Sub