Insertion ligne supplémentaire avec formule

Bonjour,

Je cherche à insérer une ligne après la dernière ligne utilisé sur un fichier excel verrouillé contenant des informations (formules) dans certaines cases.

Actuellement j'arrive a insérer les lignes après la dernière ligne utilisé, cependant je voudrais ajouter sur la cellule D de la ligne insérée une formule, et idem en N.

je pense qu'il faut reprendre la valeur de ligne détéctée par le code suivant :

Range("A" & Rows.Count).End(xlUp) 

Mais je n'arrive pas a l'utiliser pour insérer une formule dans les cellules qui m'interressent.

Avez vous des idées ?

Sub Insertion()
ActiveSheet.Unprotect ("Motdepasse")
Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row - 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 1).ClearContents
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 2).ClearContents

ActiveSheet.Protect Password:="Motdepasse", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End Sub

Cordialement.

Ch@p'

Bonjour,

Avec ce code, je recopie bien les formules de la dernière ligne avec RAZ des constantes

Sub insertion()

    With ActiveSheet
        .Unprotect ("Motdepasse")
        With .UsedRange
            i = .Row + .Rows.Count      'indice première ligne vide
        End With
        .Rows(i - 1).Copy .Rows(i)
        .Rows(i).SpecialCells(xlCellTypeConstants).ClearContents
        .Protect Password:="Motdepasse", DrawingObjects:=True, Contents:=True, Scenarios:=True, _
            AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True
        .EnableSelection = xlUnlockedCells
    End With

End Sub

Merci Thev pour cette réponse,

C'est exactement ce qu'il fais, sauf que je souhaiterais insérer des formules dans certaines cellules du tableau.

Les utilisateurs du fichier peuvent modifier certaines cellules contenant initialement des formules (aides a la saisie) par des constantes. Le problème c'est que dans ce cas, je perd la formule sur la nouvelle ligne.

J'ai essayé de bricoler avec une fonction "indirect" mais je n'arrive pas a mes fin.

Une idée ?

Le plus simple est d'utiliser l'enregistreur de macro :

1- enregistrer une macro

2- sélectionner la cellule avec la formule et appuyer sur Entrée

3- arrêter l'enregistrement

Recopier la formule (exemple addition) pour la colonne D comme ceci :

Sub insertion()

    With ActiveSheet
        .Unprotect ("Motdepasse")
        With .UsedRange
            i = .Row + .Rows.Count      'indice première ligne vide
        End With
        .Rows(i - 1).Copy Rows(i)
        .Rows(i).SpecialCells(xlCellTypeConstants).ClearContents
        .Rows(i).Columns("D").FormulaR1C1 = "=RC[-2]+RC[-1]"
        .Protect Password:="Motdepasse", DrawingObjects:=True, Contents:=True, Scenarios:=True, _
            AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True
        .EnableSelection = xlUnlockedCells
    End With

End Sub

Génial !!!

Ca marche !

Merci beaucoup.

Cordialement.

Ch@p'

Rechercher des sujets similaires à "insertion ligne supplementaire formule"