1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| Sub DiffuserMAJVariables()
Dim AdresseClasseurImporte, ClasseurImporte, Motdepassefichier As String
Call InitialisationVariables 'Initialise toutes les variables dont j'ai besoin pour plusieurs modules
If MsgBox("Tous les fichiers de suivi sont-ils fermés?", vbYesNo) = vbYes Then
If MsgBox("Cette Opération va mettre à jour tous les fichiers", vbYesNo) = vbYes Then
'Exporte les Modules & Userforms indiqués dans la feuille Variables vers le dossier Tampon
modulei = 44
Do While Worksheets("Variables").Cells(modulei, 2) <> ""
modulenom = CStr(Worksheets("Variables").Cells(modulei, 3))
moduleext = CStr(Worksheets("Variables").Cells(modulei, 4))
moduleversion = CStr(Worksheets("Variables").Cells(modulei, 5))
ThisWorkbook.VBProject.VBComponents(modulenom).Export AdresseTAMPON & modulenom & moduleversion & moduleext
modulei = modulei + 1
Loop
'Recherche nombre de Packageurs inscrits dans la feuille Légendes
testnbpack = 2
Do While Worksheets("Légendes").Cells(testnbpack - 1, 20) <> 0
NbrePackageurs = Worksheets("Légendes").Cells(testnbpack - 1, 20)
testnbpack = testnbpack + 1
Loop
'Déploiement des MAJ pour chaque User
For Packageuri = 1 To NbrePackageurs
ClasseurImporte = "Suivi Projets " & CStr(Worksheets("Légendes").Cells(Packageuri + 1, 21)) & ".xlsm"
Motdepassefichier = CStr(Worksheets("Légendes").Cells(Packageuri + 1, 22))
AdresseClasseurImporte = Adressedessuivis & "\" & ClasseurImporte
If ClasseurImporte <> NOM Then 'Ici NOM est le nom du tableau actif cette
Excel.Workbooks.Open Filename:=AdresseClasseurImporte, Password:=Motdepassefichier, WriteResPassword:=Motdepassefichier
NOMfichierMAJ = ActiveWorkbook.Name
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'Supprime les alertes de copie
SupprimerTousModules (ClasseurImporte) 'Fonction qui supprime tous les modules du tableur "ClasseurImporte"
'Importe tous les fichiers du dossier tampon dans le fichier à mettre à jour
modulei = 44
Do While Workbooks(NOM).Worksheets("Variables").Cells(modulei, 2) <> ""
modulenom = CStr(Workbooks(NOM).Worksheets("Variables").Cells(modulei, 3))
moduleext = CStr(Workbooks(NOM).Worksheets("Variables").Cells(modulei, 4))
moduleversion = CStr(Workbooks(NOM).Worksheets("Variables").Cells(modulei, 5))
moduleglobal = AdresseTAMPON & modulenom & moduleversion & moduleext
Workbooks(ClasseurImporte).VBProject.VBComponents.Import moduleglobal
modulei = modulei + 1
Loop
'Supprime la feuille contenant toutes mes valeurs initiales des variables
Windows(NOMfichierMAJ).Activate
Sheets(Array("Variables")).Select
ActiveWindow.SelectedSheets.Delete
Windows(NOM).Activate
Sheets(Array("Variables")).Select
Sheets("Variables").Activate
Sheets(Array("Variables")).Copy Before:=Workbooks(NOMfichierMAJ).Sheets(5)
Application.ScreenUpdating = True
Application.DisplayAlerts = True 'Active les alertes de copie
'Application.ShowWindowsInTaskbar = True
Workbooks(ClasseurImporte).Save
Workbooks(ClasseurImporte).Close
End If
MsgBox ("Mise à jour déployée pour le tableau " & NOMfichierMAJ)
Next Packageuri
MsgBox ("Mise à jour déployée")
End If
End If
End Sub |
Partager