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
| Sub forecast_insert()
'Cette macro permet d'insérer une ligne dans le document
' Ci après, nous définissons 3 variables :
' Soit la dernière ligne du tableau ("DernièreLigne")
' Soit "x", la ligne de la cellule active
' Soit "y", qui renvoie à la cellule située dans la première colonne de la ligne sélectionnée par l'utilisateur
Dim DernièreLigne As Long
Dim x As Long
Dim y As String
' Définition de la zone cible, càd, la plage dans laquelle peut être inserée une ligne
' Note : la dernière ligne est définie comme étant la dernière ligne non-vide, pour obtenir une ligne non vide, j'ai saisi "MSF" dans la cellule choisie.
x = ActiveCell.Row
y = Cells(x, 1)
DernièreLigne = ActiveSheet.Range("AQ9").End(xlDown).Row
' Si l'utilisateur lance la commande en dehors de cette plage (ligne 9 à "dernière ligne"), la commande s'arrête
' Note : "MSF" est saisi dans la colonne "AQ", la formule est donc appliquée sur cette colonne
If Not ((x > 9) And (x < DernièreLigne)) Then
Exit Sub
End If
' Si l'utilisateur lance la commande dans une ligne dont la première colonne n'e contient pas "***", la commande s'arrête
If Not (y = "") Then
Exit Sub
End If
'Une fois ces deux conditions validées, la commande est lancée
'Déprotection de la feuille dont le mot de passe est "MSF"
ActiveSheet.Unprotect Password:="MSF"
' Insère une nouvelle ligne en-dessous de celle qui est sélectionnée (format numérique, cellule dévérouillée)
ActiveCell(2).EntireRow.Insert
ActiveCell(1).EntireRow.Copy ActiveCell(2).EntireRow
If Not ActiveCell(2).EntireRow.Locked = False Then
ActiveCell(2).EntireRow.ClearContents
End If
'ActiveCell(2).EntireRow.NumberFormat = "#,##0.00"
'ActiveCell(2).EntireRow.Locked = False
'Protection de la feuille dont le mot de passe est "MSF"
ActiveSheet.Protect UserInterfaceOnly:=True, Password:="MSF", DrawingObjects:=True, Contents:=True, Scenarios:=False _
, AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True, AllowFormattingColumns:=False, _
AllowFormattingRows:=False
End Sub |
Partager