Bonjour,
Je souhaiterais écrire une macro qui puisse m'insérer une ligne sous une
cellule sélectionnée dans un tableau complexe, tout en reconstituant les
formules et le formatge existant.
J'ai essayé plusieurs macros dont celle-ci (de l'un d'entre vous, il y a
plusieurs mois) mais elle provoque des erreurs dans les formules et suivant
les cas me renvoie une erreur d'exécution 1004:
Sub NouvelleLigneEnDessous()
' 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("A2").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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ange Ounis
A essayer (une de plus !) :
Sub InsereAvecFormules() Dim i As Long ActiveCell.EntireRow.Insert i = ActiveCell.Row Range("A" & i - 1 & ":IV" & i).FillDown End Sub
Attention : les erreurs dans les formules peuvent être tout à fait normales dans la mesure où les références relatives peuvent, après copie, renvoyer à des cellules vides, par exemple.
---------- Ange Ounis ----------
Bonjour, Je souhaiterais écrire une macro qui puisse m'insérer une ligne sous une cellule sélectionnée dans un tableau complexe, tout en reconstituant les formules et le formatge existant. J'ai essayé plusieurs macros dont celle-ci (de l'un d'entre vous, il y a plusieurs mois) mais elle provoque des erreurs dans les formules et suivant les cas me renvoie une erreur d'exécution 1004:
Sub NouvelleLigneEnDessous() ' 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("A2").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
Merci pour le coup de main Michel
A essayer (une de plus !) :
Sub InsereAvecFormules()
Dim i As Long
ActiveCell.EntireRow.Insert
i = ActiveCell.Row
Range("A" & i - 1 & ":IV" & i).FillDown
End Sub
Attention : les erreurs dans les formules peuvent être tout à fait normales dans
la mesure où les références relatives peuvent, après copie, renvoyer à des
cellules vides, par exemple.
----------
Ange Ounis
----------
Bonjour,
Je souhaiterais écrire une macro qui puisse m'insérer une ligne sous une
cellule sélectionnée dans un tableau complexe, tout en reconstituant les
formules et le formatge existant.
J'ai essayé plusieurs macros dont celle-ci (de l'un d'entre vous, il y a
plusieurs mois) mais elle provoque des erreurs dans les formules et suivant
les cas me renvoie une erreur d'exécution 1004:
Sub NouvelleLigneEnDessous()
' 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("A2").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
Sub InsereAvecFormules() Dim i As Long ActiveCell.EntireRow.Insert i = ActiveCell.Row Range("A" & i - 1 & ":IV" & i).FillDown End Sub
Attention : les erreurs dans les formules peuvent être tout à fait normales dans la mesure où les références relatives peuvent, après copie, renvoyer à des cellules vides, par exemple.
---------- Ange Ounis ----------
Bonjour, Je souhaiterais écrire une macro qui puisse m'insérer une ligne sous une cellule sélectionnée dans un tableau complexe, tout en reconstituant les formules et le formatge existant. J'ai essayé plusieurs macros dont celle-ci (de l'un d'entre vous, il y a plusieurs mois) mais elle provoque des erreurs dans les formules et suivant les cas me renvoie une erreur d'exécution 1004:
Sub NouvelleLigneEnDessous() ' 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("A2").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