Const sFeuil_From = "BD_NATIFS"
Const sFeuil_FromMaj = "BD_MAJ"
Const nColSite= 2
Const nColJob = 4
Const nColSiteMaj= 6
Const nColJobMaj = 7
'Le but de Code en ci-dessous sert à créer un nouveau classeur Excel
'Et ce classeur porte la meme nomination que l'IGG de L'utilisateur créer
Dim tablo(), tabloMaj()
tablo = oWs_From.Range(sFeuil_From)
tabloMaj = oWs_FromMaj.Range(sFeuil_FromMaj)
Dim oWs_From As Excel.Worksheet
Set oWs_From = ThisWorkbook.Worksheets(sFeuil_From)
Dim oWs_FromMaj As Excel.Worksheet
Set oWs_FromMaj = ThisWorkbook.Worksheets(sFeuil_FromMaj)
Dim MonNom, Nom As String
MonNom = TxB_IGG.Text
Workbooks.Add
ChDir "\\main.glb.corp.local\ep-cg$\Home\BIN\9\L1090289\Desktop" 'Voici le chemin du fichier d'origine(MASTER-CLASSEUR) à partir duquel se crée les fichiers des Utilisateurs
' ActiveWorkbook.SaveAs Filename:= _
' "\\main.glb.corp.local\ep-cg$\Home\BIN\9\L1090289\Desktop\Nouveau dossier\Users\" & Name & ".xlsm", FileFormat _
' :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 'Voici le chemin où part s'enregistrer le fichier User créer
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Users\" & MonNom & ".xlsm", FileFormat _
:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 'Voici le chemin où part s'enregistrer le fichier User créer
Nom = MonNom & ".xlsm"
'*******************************************************************************************
'*************La première Feuille avec pour nomination BD_NATIFS_UTILISATEUR****************
'*******************************************************************************************
'On lance les lignes de codes qui s'occuperont de la création de la feuille et de sa mise en Forme et
Workbooks(Nom).Activate
Workbooks(Nom).Sheets("Feuil1").Select
ActiveSheet.NAME = "BD_NATIFS_USERS"
Application.Run "Test.xlsm!MEF_BD_NATIFS_Users" 'Ici on lance la macro qui fait le remplissage des en-Tetes et leur mise en forme pour la feuille1
For n = 1 to 5
If Me.Controls("Site" & n)=True Then MySite = Me.Controls("Site" & n).Caption
Next n
For n 1 to 3
If Me.Controls("Métier" & n)=True Then MyJob = Me.Controls("Métier" & n).Caption
Next n
For nLig = LBound(tablo) to UBound(tablo)
If tablo(nLig, nColSite)= MySite and tablo(nLig,nColJob) = MyJob Then
nLigInc = nLigInc + 1
For nCol = LBound(tablo,2) to UBound(tablo,2)
ActiveSheet.Cells(nLigInc,nCol) = tablo(nLig,nCol)
Next nCol
End if
Next nLig
'Puis Ici on établie les conditions pour appliquer les macro de remplissage des cellules
If Fct1 Or Fct2 Or Fct4 Or Fct9.Value = True Then
Application.Run "Test.xlsm!Remplir_BD_NATIFS_USERS_Type1" 'Ici c'est pour dire que sur la feuille en cours(BD_NATIFS_USERS) lance la macro (Remplir_BD_NATIFS_USERS_Type1) élaboré depuis le classeur d'origine(Classeur père).
End If
'*************La deuxième Feuille avec pour nomination BD_MAJ_UTILISATEUR****************
'Meme logique qu'avec la feuille BD_NATIFS_UTILISATEUR donc on lance une macro
Workbooks(Nom).Sheets.Add After:=ActiveSheet
Workbooks(Nom).Sheets("Feuil2").Select
ActiveSheet.NAME = "BD_MAJ_USERS"
For nLig = LBound(tabloMaj) to UBound(tabloMaj)
If tabloMaj(nLig, nColSiteMaj)= MySite and tabloMaj(nLig,nColJobMaj) = MyJob Then
nLigIncMaj = nLigIncMaj + 1
For nCol = LBound(tabloMaj,2) to UBound(tabloMaj,2)
ActiveSheet.Cells(nLigIncMaj,nCol) = tabloMaj(nLig,nCol)
Next nCol
End if
Next nLig
Application.Run "Test.xlsm!MEF_BD_MAJ_Users" 'Ici on lance la macro qui fait le remplissage des en-Tetes et leur mise en forme pour la feuille2
'*************La troisième Feuille avec pour nomination BD_TRAITEMENT_UTILISATEUR**********************************
'On lance les lignes de code qui s'occuperont de la création puis la macro qui est chargé
'du remplisage des cellules de la troisième feuille en fonction bien évidemment de l'utisateur
'autrement dit son/ses sites et son/ses métiers
'******************************************************************************************************************
Workbooks(Nom).Sheets.Add After:=ActiveSheet
Workbooks(Nom).Sheets("Feuil3").Select
ActiveSheet.NAME = "BD_TRAITEMENT-DASHBOARD_USERS"
ActiveWorkbook.Save 'Pour enregistrer le classeur avec les actions lancer par les macros