Sub Preco_Change()
'Déclaration des variables
Dim myPath As String, myFile As String, mySheet As String, Plg As Range, MSG As Long
myPath = "C:\Users\xx\Desktop\Source"
'Permet de récupérer le nom des fichiers du répertoire et défini l'onglet
myFile = Dir(myPath & "\*.xlsm")
mySheet = "Gamme"
'Données fichier source
With Workbooks("Macro_PrecoFT.xlsm")
.Sheets("Gamme").Range("L:AP").Copy
End With
Application.AskToUpdateLinks = False
'Boucle sur l'ensemble des fichiers du répertoire
Do While myFile <> ""
'On appelle la fonction "BookOpen" définie plus bas : elle permet de vérifier si le classeur est ouvert du répertoire. Sinon, cette fonction ouvre le classeur.
Call BookOpen(myPath & "\" & myFile)
'Avec le classeur ouvert
With Workbooks(myFile)
With Sheets(mySheet)
Columns("L:AC").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
Application.DisplayAlerts = False
.Save
.Close
End With
'Et on passe au suivant
myFile = Dir()
Loop
Application.DisplayAlerts = True
End Sub
Function BookOpen(NomFich)
On Error Resume Next
Workbooks(NomFich).Activate
If Err <> 0 Then Workbooks.Open Filename:=NomFich
On Error GoTo 0
End Function