Macro pour insertion de ligne et copie de formule

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jps
Le #4614421
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" 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


Billylaroche
Le #4614391
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" 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







Billylaroche
Le #4614381
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" 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







jps
Le #4614371
de rien :-))))
jps

"Billylaroche" 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" 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









garnote
Le #4899551
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

jps
Le #4899501
:-)))))
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"
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




CAP2
Le #4899391
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
LSteph
Le #4899341
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!


LSteph
Le #4899321
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




CAP2
Le #4899301
Salut,

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

A bientôt !

CAP2
Publicité
Poster une réponse
Anonyme