Commenter du code (via une MACRO)
Bonjour,
J'ai trouvé ce sujet https://www.developpez.net/forums/d1...er-code-macro/ sur le forum qui permet de supprimer une partie définie d'un code.
J'aimerais une solution moins radicale qui permet d'avoir la possibilité de "commenter" certaines lignes de "ThisWorkbook" (ensuite la macro enregistre le fichier sous un emplacement de mon archive) puis dans un second temps un code permet de "décommenter" les procédures ciblées de "ThisWorkbook".
En fait, lors de la création de mon archive (le code permettant de créer le backup est déjà créé) j'aimerais que certains codes ne soient plus actifs car non nécessaires pour un fichier d'archive.
Par contre je ne sais pas si une telle chose est possible en VBA :?
Mon besoin est de figer une procédure dans Thisworkbook qui créé des fichiers temporaires dans un emplacement précis pour indiquer à n'importe quel utilisateur en lecture seule qui verrouille le fichier. Cette procédure ne sera plus utile pour un fichier d'archive.
Voici mon début de codage :
Code:
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
|
Sub Archiver()
Dim Nbr As Variant
Dim AdresseCell As Variant
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String, NomComplet As String
' ICI ON METTRA LE CODE QUI DESACTIVERA DES PROCEDURES DE THISWORKBOOK
'On fait une sauvegarde du fichier avant rénitialisation
'.xlsm = 5
'.xls = 4
wk = ActiveWorkbook.Name
LeNom = Left(wk, Len(wk) - 5) & " (copie de sauvegarde)" & ".xlsm" 'A adapter
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path
ActiveWorkbook.SaveCopyAs Chemin & "\" & LeNom 'à adapter
MsgBox "Le fichier va être rénitialisé"
' ICI ON METTRA LE CODE QUI REACTIVERA LES PROCEDURES DE THISWORKBOOK AVANT RENITIALISATION DU FICHIER
With Sheets("Suivi").Select
Nbr = Application.WorksheetFunction.CountA(Range(Cells(2, 2), Cells(Rows.Count, 2).End(xlUp)))
End With
'On ajoute 2 correspondant aux lignes utilisées pour l'header du document
AdresseCell = Nbr + 2
'On compte le nombre de cellules non vides du document
MsgBox "La dernière ligne utilisée est la ligne : " & AdresseCell
'On sélectionne toutes les lignes dont la colonne C contient des cellules non vides à partir de la ligne 4
Rows("4:" & AdresseCell).Select
'On supprime la sélection
Selection.Delete Shift:=xlUp
'Rénitialisation de la première ligne
Range("A3:M3").ClearContents
End Sub |
Merci d'avance pour votre aide,
Baptiste ;)