Modification d'une macro

Bonjour a tous,

J'ai 1 code permettant de rajouter une ligne avec les formules , le voici :

Sub NouvelleLigneEnDessous3()
 ' Insère une ligne sous la ligne qui contient la cellule active
 ' et y recopie les formules qu'elle contient
 Dim ZtNumLig As Integer
 Dim ZtDerCol As Integer
 Dim I
  ActiveCell.Range("B12").EntireRow.Insert
  ZtNumLig = ActiveCell.Row
  ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
  Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
    Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
  Application.ScreenUpdating = False
  For I = 1 To ZtDerCol
    If Not Cells(ZtNumLig + 1, I).HasFormula Then
      Cells(ZtNumLig + 1, I).ClearContents
    End If
  Next I
  ActiveCell.Range("A2").Select
 End Sub

Mais au lieu d'1 ligne ( c'est un peu long ) , j'aimerai en faire au minimum 10

Je vois pas ou je peux changer ca .

Merci de votre aide

Bonjour

Pas sur que ta macro insères une ligne en dessous

Pour 10 lignes essayes

Sub Insere10LignesEnDessous()
' Insère 10 ligne sous la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient

  Application.ScreenUpdating = False
  Rows(ActiveCell.Row).Copy
  Rows(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 10).Insert
  On Error Resume Next
  Rows(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 10).SpecialCells(xlCellTypeConstants).ClearContents
  ActiveCell.Range("A2").Select
 End Sub

Slt,

Si si ma macro insère 1 ligne , je viens d'essayer ta macro , pour enlever le surbrillant de la ligne qui a servir de copy , il y a moyen ou pas ?

Bonjour

Désolé pour cet oubli

Sub Insere10LignesEnDessous()

' Insère 10 ligne sous la ligne qui contient la cellule active

' et y recopie les formules qu'elle contient

Application.ScreenUpdating = False

Rows(ActiveCell.Row).Copy

Rows(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 10).Insert

Application.CutCopyMode = False

On Error Resume Next

Rows(ActiveCell.Row + 1 & ":" & ActiveCell.Row + 10).SpecialCells(xlCellTypeConstants).ClearContents

ActiveCell.Range("A2").Select

End Sub

francky62000 a écrit :

Si si ma macro insère 1 ligne

ActiveCell.Range("B12").EntireRow.Insert

Cette instruction insère une ligne .... 11 lignes en dessous

B12 , c'est la ligne de référence , pas d'insertion au dessus de cette ligne


En tout cas ta macro fonctionne , et est bien plus rapide que la mienne

Encore merci

Rechercher des sujets similaires à "modification macro"