Bonsoir Massari59264,
Pour répondre à
Je souhaiterais 5 macros (une pour la classe 1, une pour la classe 2… jusqu'a la classe 5)
Classe 1 concernera les onglets A et B,la classe 2 les onglets C,D,E et F …
La macro créera un ou plusieurs nouveaux fichiers dont le nom est indiqué dans la colonne AK
Il pourra donc y avoir un ou plusieurs fichiers par classe à créer en fonction du nom de celui-ci
(exemple: classe 3 un seul fichier car un seul nom,classe 4 4 fichiers a créer)
Une condition supplémentaire, la macro de chaque classe ne s'éxecutera que si tout les onglets de la classe ont le statut validés,
Pour il y a besoin d'un seul bouton et d'un seul code qui gère toutes les créations
Voici le code créé, que j'ai testé et qui semble fonctionner
Option Explicit
Dim TabSht()
Sub CréerFichiers()
Dim dLig As Long, Ind As Integer, Lig As Long
Dim sPath As String, sNomFic As String
Dim sClasse As String, NbClasse As Integer
' Définir le chemin d'enregistrement
sPath = ThisWorkbook.Path & "\"
' Avec la feuille
With ThisWorkbook.Sheets("EN TETE")
Lig = 1
dLig = Range("IMPORT_ONGLET[ONGLET]").Rows.Count
Do While Lig <= dLig
' Si pas validé on passe à la ligne suivante
If Range("IMPORT_ONGLET[VALIDÉ]").Cells(Lig) <> "OK" Then GoTo SuiteLig
' Sinon on traite
sClasse = Range("IMPORT_ONGLET[CLASSE]").Cells(Lig)
sNomFic = Range("IMPORT_ONGLET[NOM FICHIER]").Cells(Lig)
'NbClasse = Application.WorksheetFunction.CountIf(Range("IMPORT_ONGLET[CLASSE]"), sClasse)
Do While Range("IMPORT_ONGLET[CLASSE]").Cells(Lig) = sClasse And _
Range("IMPORT_ONGLET[NOM FICHIER]").Cells(Lig) = sNomFic
ReDim Preserve TabSht(Ind)
TabSht(Ind) = Range("IMPORT_ONGLET[ONGLET]").Cells(Lig).Value
Ind = Ind + 1: Lig = Lig + 1
Loop
Lig = Lig - 1
Application.EnableEvents = False
Application.DisplayAlerts = False
' Copier la/les feuilles dans un nouveau classeur
Sheets(TabSht).Copy
With ActiveWorkbook
.SaveAs sPath & sNomFic, FileFormat:=xlOpenXMLStrictWorkbook
.Close SaveChanges:=False
End With
Erase TabSht: Ind = 0
SuiteLig:
Lig = Lig + 1
Loop
End With
End Sub
Cette partie là je ne l'ai pas traitée, mais apparemment plus besoin
Il faudrait donc créer un copie des onglets concerné par le fichier, puis éliminer les formules par un copier collage valeurs au même emplacement, supprimer les noms crées par
A+