Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro pour insertion de ligne et copie de formule

17 réponses
Avatar
Billylaroche
Bonjour,

Sur la ligne A34, je fais mes entrées de données. Par la suite, je veux que
cette ligne descende d'une ligne, soit en A35 pour pouvoir toujours me
permettre de faire mes nouvelles entrées sur la ligne A34 et ainsi conserver
l'historique de mes entrées. J'ai créer la macro ci-bas pour me permettre
l'ajout de cette ligne. Mon problème est que je n'arrive pas à trouver la
procédure qui me permettrait de conserver mes formules de A34 (maintenant
descendu à A35).

Sub Macro5()

Range("A34:S34").Insert xlShiftDown

End Sub

Je suis désolée, c'est peut-être une procédure très simple mais je suis
débutante en VBA. Merci de votre aide.

--
Billy

10 réponses

1 2
Avatar
jps
bonjour billy (ou billie puisque désolée?)
essaie cette macro
HTH
jps

Sub NouvelleLigneAuDessus() 'icône MAJ
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
' Spéciale JPS
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.insert
ActiveCell.Range("A2").Select
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).Clear 'Contents(pour que s'annulent aussi
les commentaires)
End If
Next i
Cells(ActiveCell.Row - 1, 1).Select
End Sub


"Billylaroche" a écrit dans le
message de news:
Bonjour,

Sur la ligne A34, je fais mes entrées de données. Par la suite, je veux
que
cette ligne descende d'une ligne, soit en A35 pour pouvoir toujours me
permettre de faire mes nouvelles entrées sur la ligne A34 et ainsi
conserver
l'historique de mes entrées. J'ai créer la macro ci-bas pour me permettre
l'ajout de cette ligne. Mon problème est que je n'arrive pas à trouver la
procédure qui me permettrait de conserver mes formules de A34 (maintenant
descendu à A35).

Sub Macro5()

Range("A34:S34").Insert xlShiftDown

End Sub

Je suis désolée, c'est peut-être une procédure très simple mais je suis
débutante en VBA. Merci de votre aide.

--
Billy


Avatar
Billylaroche
Bonjour JPS,

SUPER!!! Ça Fonctionne parfaitement!

Merci beaucoup!
--
Billy..."ie" :)



bonjour billy (ou billie puisque désolée?)
essaie cette macro
HTH
jps

Sub NouvelleLigneAuDessus() 'icône MAJ
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
' Spéciale JPS
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.insert
ActiveCell.Range("A2").Select
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).Clear 'Contents(pour que s'annulent aussi
les commentaires)
End If
Next i
Cells(ActiveCell.Row - 1, 1).Select
End Sub


"Billylaroche" a écrit dans le
message de news:
Bonjour,

Sur la ligne A34, je fais mes entrées de données. Par la suite, je veux
que
cette ligne descende d'une ligne, soit en A35 pour pouvoir toujours me
permettre de faire mes nouvelles entrées sur la ligne A34 et ainsi
conserver
l'historique de mes entrées. J'ai créer la macro ci-bas pour me permettre
l'ajout de cette ligne. Mon problème est que je n'arrive pas à trouver la
procédure qui me permettrait de conserver mes formules de A34 (maintenant
descendu à A35).

Sub Macro5()

Range("A34:S34").Insert xlShiftDown

End Sub

Je suis désolée, c'est peut-être une procédure très simple mais je suis
débutante en VBA. Merci de votre aide.

--
Billy







Avatar
Billylaroche
Bonjour,

Mon dernier petit souci est qu'il faudrait de la colonne "A" à "S" que mes
cellules conservent leur mise en forme. Actuellement, avec la procédure
ci-bas, il n'y a que les cellules de la colonne "S" qui demeurent avec leur
bordure.

Merci!
--
Billie



bonjour billy (ou billie puisque désolée?)
essaie cette macro
HTH
jps

Sub NouvelleLigneAuDessus() 'icône MAJ
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
' Spéciale JPS
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.insert
ActiveCell.Range("A2").Select
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).Clear 'Contents(pour que s'annulent aussi
les commentaires)
End If
Next i
Cells(ActiveCell.Row - 1, 1).Select
End Sub


"Billylaroche" a écrit dans le
message de news:
Bonjour,

Sur la ligne A34, je fais mes entrées de données. Par la suite, je veux
que
cette ligne descende d'une ligne, soit en A35 pour pouvoir toujours me
permettre de faire mes nouvelles entrées sur la ligne A34 et ainsi
conserver
l'historique de mes entrées. J'ai créer la macro ci-bas pour me permettre
l'ajout de cette ligne. Mon problème est que je n'arrive pas à trouver la
procédure qui me permettrait de conserver mes formules de A34 (maintenant
descendu à A35).

Sub Macro5()

Range("A34:S34").Insert xlShiftDown

End Sub

Je suis désolée, c'est peut-être une procédure très simple mais je suis
débutante en VBA. Merci de votre aide.

--
Billy







Avatar
jps
de rien :-))))
jps

"Billylaroche" a écrit dans le
message de news:
Bonjour JPS,

SUPER!!! Ça Fonctionne parfaitement!

Merci beaucoup!
--
Billy..."ie" :)



bonjour billy (ou billie puisque désolée?)
essaie cette macro
HTH
jps

Sub NouvelleLigneAuDessus() 'icône MAJ
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
' Spéciale JPS
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.insert
ActiveCell.Range("A2").Select
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).Clear 'Contents(pour que s'annulent
aussi
les commentaires)
End If
Next i
Cells(ActiveCell.Row - 1, 1).Select
End Sub


"Billylaroche" a écrit dans le
message de news:
Bonjour,

Sur la ligne A34, je fais mes entrées de données. Par la suite, je veux
que
cette ligne descende d'une ligne, soit en A35 pour pouvoir toujours me
permettre de faire mes nouvelles entrées sur la ligne A34 et ainsi
conserver
l'historique de mes entrées. J'ai créer la macro ci-bas pour me
permettre
l'ajout de cette ligne. Mon problème est que je n'arrive pas à trouver
la
procédure qui me permettrait de conserver mes formules de A34
(maintenant
descendu à A35).

Sub Macro5()

Range("A34:S34").Insert xlShiftDown

End Sub

Je suis désolée, c'est peut-être une procédure très simple mais je suis
débutante en VBA. Merci de votre aide.

--
Billy









Avatar
garnote
Bonjour,
Mon dernier petit souci est qu'il faudrait de la colonne "A" à "S" que mes
Enfin quelqu'un qui n'écrit pas « un souci » avec deux « s » ;-)


Serge

Avatar
jps
:-)))))
mais tu ferais mieux, serge, de répondre à billie car je ne vois pas comment
copier, en plus des formules (ça, ça marche), les formats de la ligne en
question
je ne comprends même pas pourquoi lesdits formats subsistent dans la colonne
S
désolé, billie, il faut qu'un crack se penche sur ton berceau
jps

"garnote" a écrit dans le message de news:

Bonjour,
Mon dernier petit souci est qu'il faudrait de la colonne "A" à "S" que
mes
Enfin quelqu'un qui n'écrit pas « un souci » avec deux « s » ;-)


Serge




Avatar
CAP2
Salut,

j'ai peut-être (sûrement) loupé un truc, mais pourquoi développer tout ce
code ?

Si tu as une version assez récente d'excel, tu insères ta ligne, les formats
sont de toute façon mis en place, et si dans Outils --> Options --> Etendre
les formules et formats de liste est bien cochée, ça devrait suffire... Non
?

Pour info, je te copie/colle l'aide l'excel :
***********************************************************************************************************

Étendre les formules et formats de liste Activez cette option pour appliquer
automatiquement le format de la liste aux nouveaux éléments ajoutés en fin
de liste. Les formules répétées à chaque ligne sont également copiées. Pour
être étendus, les formats et les formules doivent apparaître dans au moins
trois des cinq lignes de la liste qui précèdent la nouvelle ligne.

***********************************************************************************************************

Ca marche ?

CAP2
Avatar
LSteph
Bonjour,

Sub ausuivant()
With [a34:s34]
.Copy
.Insert Shift:=xlDown
End With
[a34:s34].SpecialCells(xlCellTypeConstants, 23).ClearContents
End sub

'Cordialement
'lSteph



Bonjour,

Mon dernier petit souci est qu'il faudrait de la colonne "A" à "S" que mes
cellules conservent leur mise en forme. Actuellement, avec la procédure
ci-bas, il n'y a que les cellules de la colonne "S" qui demeurent avec leur
bordure.

Merci!


Avatar
LSteph
Bonjour,

Tout à fait d'accord, je me suis posé exactement la même question
et en ai déduis qu'il suffisait d'ajouter une ligne pour nettoyer
les constantes.

Le but doit être une sorte de ligne avec un bouton pour valider.

Cordialement.

lSteph


Salut,

j'ai peut-être (sûrement) loupé un truc, mais pourquoi développer tout ce
code ?

Si tu as une version assez récente d'excel, tu insères ta ligne, les formats
sont de toute façon mis en place, et si dans Outils --> Options --> Etendre
les formules et formats de liste est bien cochée, ça devrait suffire... Non
?

Pour info, je te copie/colle l'aide l'excel :
***********************************************************************************************************

Étendre les formules et formats de liste Activez cette option pour appliquer
automatiquement le format de la liste aux nouveaux éléments ajoutés en fin
de liste. Les formules répétées à chaque ligne sont également copiées. Pour
être étendus, les formats et les formules doivent apparaître dans au moins
trois des cinq lignes de la liste qui précèdent la nouvelle ligne.

***********************************************************************************************************

Ca marche ?

CAP2




Avatar
CAP2
Salut,

certainement, et dans ce cas ton code fera à coup sûr le bonheur de
BillyLaRoche ;o)

A bientôt !

CAP2
1 2