Le code avec quelques explications
Sub génère()
'définition d'un tableau avec la liste des site et se terminant par fin
'Ce tableau pourrait être généré autrement
listesite = Array("SITE 1", "SITE 2", "SITE 3", "fin")
'définition du chemin du répertoire dans lequel tu travailes
chemin = ThisWorkbook.Path & "\"
'pour chaque site
For n = 0 To UBound(listesite) - 1
'Ouverture du modèle comprenant les 12 feuillses
Set fichier = Workbooks.Open(chemin & "modèle.xls")
'Pour chaque feuille du planning général
For Each feuille In ThisWorkbook.Sheets
'définition de la zone concernant le site
deb = feuille.Columns(1).Find(listesite(n)).Row + 1
fin = feuille.Columns(1).Find(listesite(n + 1)).Row - 1
Set zone = feuille.Rows(deb & ":" & fin)
'définition du mois, du nom du site, et de la zone commune (zone de titre)
mois = feuille.Name
site = listesite(n)
Set zonetitre = feuille.Rows("2:4")
Set zone1 = Union(zonetitre, zone)
'insertion des données dans le modèle en fonction du mois (choix de la feuille du modèle
zone1.Copy (fichier.Sheets(mois).Rows(2))
fichier.Sheets(mois).Range("b1") = mois
fichier.Sheets(mois).Range("a4") = site
'suppression des messages d'alertes disant que tu vas effacer un fichier existant
Application.DisplayAlerts = False
Next
'sauvegarde et dermeture du fichier
fichier.SaveAs (chemin & site & ".xls")
fichier.Close
Next