Re : Recopie d'une formule lors d'une insertion ligne
Re-bonjour à tous,
c'est finalement dans les sites anglais que j'ai trouvé une presque réponse :
Insert Rows using a Macro
La macro qui s'applique bien à mon cas est la suivante : lors de l'insertion d'une nouvelle ligne
où que ce soit dans la feuille, elle copie uniquement les formules et laisse les champs qui avaient été remplis à la main vide (évite les doublons involontaires !).
Private Sub Worksheet_Change(ByVal Target As Range)
'David McRitchie, 2005-05-03 insrtrow.htm
'-- will copy more often than Extend Formulas and Format (tools option)
Dim lastrow As Long, rng As Range
If Target.Column <> 1 Then Exit Sub
If Target.row < 2 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
Set rng = Intersect(Target.EntireRow, Range("B:IV"))
If Application.Count(rng) > 0 Then Exit Sub
rng.Offset(-1).Copy
rng.Select
On Error GoTo abort_sub
Application.EnableEvents = False 'should be part of Change macro
ActiveSheet.Paste
Application.CutCopyMode = False
rng.SpecialCells(xlConstants).ClearContents
abort_sub:
Application.EnableEvents = True 'should be part of Change macro
End Sub
Cependant, l'auteur précise sur son site que cette macro n'est sensée se déclencher que lorsqu'on remplit la cellule de la colonne A uniquement. Bon, moi ça marche quand même sans, ce qui est nickel dans mon cas, mais c'est tout de même curieux !
Enfin, pour les novices comme moi qui ont cherché en vain une réponse, il suffit de
1. cliquer droit sur l'onglet concerné
2. choisir "Visualiser le code"
3. copier ce code TEL QUEL
4. enregistrer
5. penser à passer en mode sécurité moyenne !!!! (pour cela, Outil > Macro > Securité et choisir "Moyenne". Puis enregistrez et fermez tous les fichiers Excel ouverts. Enfin, rouvrez le fichier qui vous concerne).
A noter que si votre fichier est lourd et possède beaucoup de formules, il peut être intéressant de changer le mode de calcul du fichier pour éviter les lenteurs(choisissez manuel au lieu d'automatique dans Outils > Options > Calcul, et appuyez sur F9 quand vous voulez recalculer vos formules).
Si le fichier que vous développez est destiné à d'autres utilisateurs, pensez à leur signaler de passer en mode sécurité moyenne, sinon la macro ne marchera pas chez eux.