J'ai des formules de la lignes 1 à 10 sur mes cellules, et je souhaite en
inserant une ligne entre la ligne 1 à 10, conserver les formules sur la ligne
inséré.
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
ChrisV
Bonjour Kamel,
La macro suivante ajoute une commande supplémentaire au menu contextuel associé aux cellules, et permet d'insérer une ligne au dessus de la cellule active en reportant l'ensemble des formules uniquement (pas les constantes), de la ligne précédente.
dans un module du classeur:
Sub zaza() Dim r As Long Application.ScreenUpdating = False On Error Resume Next ActiveCell.EntireRow.Insert r = ActiveCell.Row Range("A" & r - 1).Select Rows(r - 1).Copy Destination:=Rows(r) Rows(ActiveCell(3)).SpecialCells(xlCellTypeConstants, 23) _ .ClearContents Range("A" & r).Select End Sub
dans la feuille de code de l'onglet concerné:
Private Sub Worksheet_Activate() With Application.CommandBars("Cell").Controls.Add(msoControlButton) .Caption = "Insérer une ligne au dessus avec recopie de formule(s)" .BeginGroup = True .FaceId = 134 .OnAction = "zaza" End With End Sub
Private Sub Worksheet_Deactivate() Application.CommandBars("Cell").Reset End Sub
ChrisV
"kamel" a écrit dans le message de news:
Bonsoir,
J'ai des formules de la lignes 1 à 10 sur mes cellules, et je souhaite en inserant une ligne entre la ligne 1 à 10, conserver les formules sur la ligne inséré.
est ce possible, si oui comment faire.
d'avance merci
Bonjour Kamel,
La macro suivante ajoute une commande supplémentaire au menu contextuel
associé aux cellules, et permet d'insérer une ligne au dessus de la cellule
active en reportant l'ensemble des formules uniquement (pas les constantes),
de la ligne précédente.
dans un module du classeur:
Sub zaza()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
ActiveCell.EntireRow.Insert
r = ActiveCell.Row
Range("A" & r - 1).Select
Rows(r - 1).Copy Destination:=Rows(r)
Rows(ActiveCell(3)).SpecialCells(xlCellTypeConstants, 23) _
.ClearContents
Range("A" & r).Select
End Sub
dans la feuille de code de l'onglet concerné:
Private Sub Worksheet_Activate()
With Application.CommandBars("Cell").Controls.Add(msoControlButton)
.Caption = "Insérer une ligne au dessus avec recopie de formule(s)"
.BeginGroup = True
.FaceId = 134
.OnAction = "zaza"
End With
End Sub
Private Sub Worksheet_Deactivate()
Application.CommandBars("Cell").Reset
End Sub
ChrisV
"kamel" <kamel@discussions.microsoft.com> a écrit dans le message de news:
59C5E4FF-7B70-41EE-965F-7F58202BC21C@microsoft.com...
Bonsoir,
J'ai des formules de la lignes 1 à 10 sur mes cellules, et je souhaite en
inserant une ligne entre la ligne 1 à 10, conserver les formules sur la
ligne
inséré.
La macro suivante ajoute une commande supplémentaire au menu contextuel associé aux cellules, et permet d'insérer une ligne au dessus de la cellule active en reportant l'ensemble des formules uniquement (pas les constantes), de la ligne précédente.
dans un module du classeur:
Sub zaza() Dim r As Long Application.ScreenUpdating = False On Error Resume Next ActiveCell.EntireRow.Insert r = ActiveCell.Row Range("A" & r - 1).Select Rows(r - 1).Copy Destination:=Rows(r) Rows(ActiveCell(3)).SpecialCells(xlCellTypeConstants, 23) _ .ClearContents Range("A" & r).Select End Sub
dans la feuille de code de l'onglet concerné:
Private Sub Worksheet_Activate() With Application.CommandBars("Cell").Controls.Add(msoControlButton) .Caption = "Insérer une ligne au dessus avec recopie de formule(s)" .BeginGroup = True .FaceId = 134 .OnAction = "zaza" End With End Sub
Private Sub Worksheet_Deactivate() Application.CommandBars("Cell").Reset End Sub
ChrisV
"kamel" a écrit dans le message de news:
Bonsoir,
J'ai des formules de la lignes 1 à 10 sur mes cellules, et je souhaite en inserant une ligne entre la ligne 1 à 10, conserver les formules sur la ligne inséré.
est ce possible, si oui comment faire.
d'avance merci
JB
Bonjour,
http://cjoint.com/?mjgD0EYkyJ
Sub InsèreCopieLigne() ActiveCell.EntireRow.Insert Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row) On Error Resume Next Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents End Sub
Cordialement JB
Bonjour,
http://cjoint.com/?mjgD0EYkyJ
Sub InsèreCopieLigne()
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants,
23).ClearContents
End Sub
Sub InsèreCopieLigne() ActiveCell.EntireRow.Insert Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row) On Error Resume Next Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents End Sub