Option Explicit
Sub OGGE()
'-----------------------------------'
' Dimensionnement des variables '
'-----------------------------------'
'Variables pour programme
'------------------------
'Variables de l'onglet Bilan CL
Dim LIG_CL As Integer
Dim Num_CL As String
Dim NOM_CL As String
Dim NOMREG_CL As String
Dim CRIT_CL As String
Dim GEN_CL As String
'Variables pour g?n?ration dans r?pertoires par r?gion
Dim CHEM_DOSSIER As String
Dim NOM_SDOSSIER As String
Dim NOM_COMPLET As String
'Variables pour suppression des formules dans grilles
Dim NOM_FICH As String
Dim CHEM_FICH As String
'Variable pour identification des grilles en doublon
Dim FICH_DOUBLON As String 'Comptage des doublons
'D?finition des variables
LIG_CL = 8 'On commence ? la ligne 8 de l'onglet Bilan
NOM_FICH = ThisWorkbook.Name
Num_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 1) 'Colonne 1
NOM_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 4)
NOMREG_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 6)
CRIT_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 11)
GEN_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 12)
CHEM_DOSSIER = "C:\Users\quentin.schultz\Documents\Documents\Documents Quentin\Documents Excel\2019_Romain L.- Crit?res CL\02. Tests 8\"
NOM_SDOSSIER = "Grilles Eval"
CHEM_FICH = ThisWorkbook.Path
'Modification des configurations pour am?lioration vitesse traitement
With Application
.ScreenUpdating = 0
.Calculation = xlCalculationManual
End With
'-----------------------------------'
' Programme - Selection Dossier '
'-----------------------------------'
'Activation du pop up pour patienter
Traitement.Show 0
'/Initialisation du programme
'----------------------------
Do While Not Num_CL = "" 'tant qu'un num?ro de CL est rempli
If CRIT_CL = "Faux" Or GEN_CL = "Oui" Then 'et que les crit?res sont remplis ("VRAI" et pas encore g?n?r?)
GoTo FinBoucle
Else: Workbooks(NOM_FICH).Sheets(2).Cells(4, 3) = Num_CL 'alors inscription du num?ro de CL dans la synth?se
Calculate
End If
'-----------------------------------------------------------'
' Programme - Gestion des erreurs '
'-----------------------------------------------------------'
'D?finition des variables pour gestion des doublons
NOM_COMPLET = CHEM_DOSSIER & NOMREG_CL & "\" & NOM_SDOSSIER 'initialisation du nom complet de sauvegarde - doit faire partie de la boucle pour incr?mentation des variables
FICH_DOUBLON = Dir(NOM_COMPLET & "\" & Num_CL & "_" & NOM_CL & "_OGGE" & ".xlsx") 'utile pour v?rifier si le fichier existe d?j? ou pas
If FICH_DOUBLON = "" Then 'si le fichier n'existe pas
Sheets(Array(2, 3, 4, 5, 6)).Copy 'copie des onglets
Sheets(1).Range("B1").CurrentRegion.Select
Sheets(5).Visible = 0
Else: GoTo FinBoucle 'sinon on va en fin de boucle
End If
'-----------------------------------------------------------'
' Programme - Sauvegarde '
'-----------------------------------------------------------'
'Sauvegarde nouveau classeur
'---------------------------
With ActiveWorkbook
'.BreakLink Name:=CHEM_FICH & "\" & NOM_FICH, Type:=xlExcelLinks 'suppression des formules
.SaveAs Filename:=NOM_COMPLET & "\" & Num_CL & "_" & NOM_CL & "_OGGE", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
.Close
End With
'Application des donn?es de contr?le
'-----------------------------------
Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 12) = "Oui"
Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 13) = Num_CL & "_" & NOM_CL & "_Trait? par OGGE"
Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 14) = Date
Workbooks(NOM_FICH).Sheets(1).Cells(1, 11) = Date
'Signet de la fin de boucle
FinBoucle:
Workbooks(NOM_FICH).Sheets(1).Select 'on revient sur le classeur d'origine
'Incr?mentation des variables
'----------------------------
LIG_CL = LIG_CL + 1 'On incr?mente Lig
CRIT_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 11)
Num_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 1)
NOM_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 4)
NOMREG_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 6)
GEN_CL = Workbooks(NOM_FICH).Sheets(1).Cells(LIG_CL, 12)
Loop 'et on boucle
'Modification des configurations pour am?lioration vitesse traitement
With Application
.ScreenUpdating = 1
.Calculation = xlCalculationAutomatic
End With
'Mise ? jour pop up
Unload Traitement
Termine.Show 0
End Sub