Voici un code, (je ne connais pas l'auteur), qui permet=20
d'ajouter une ligne avec les formules,
il fonctionne tr=E8s bien, mais il faut imp=E9rativement=20
selectionner une cellule ou la ligne "au dessus" ce qui=20
occasionne une source d'erreur.
1 - Est-il possible de modifier la macro afin de=20
selectionner la ligne concern=E9e ?
exemple : j'ai besoin d'une ligne "x" alors je clique=20
sur "x"
2 - Est-il possible =E9galement d'annuler cette action en=20
cas d'erreur car la touche "annulation" d'excel ne=20
fonctionne pas une fois la macro ex=E9cut=E9e ?
Merci d'avance
Cordialement
Le rital
Sub NouvelleLigneEnDessous()
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert
ZtNumLig =3D ActiveCell.Row
ZtDerCol =3D ActiveCell.SpecialCells
(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1,=20
ZtDerCol))
Application.ScreenUpdating =3D False
For i =3D 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
Pascal Engelmajer
Salut,
1
Sub NouvelleLigneX() Dim ZtNumLig As Integer Dim ZtDerCol As Integer ZtNumLig = ActiveCell.Row noLigne = ActiveCell.Row ActiveSheet.Rows(ZtNumLig).Insert ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol)).Copy _ Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)) Application.ScreenUpdating = False For i = 1 To ZtDerCol If Not Cells(ZtNumLig, i).HasFormula Then Cells(ZtNumLig, i).ClearContents End If Next i ActiveCell.Range("A2").Select End Sub
2 Annuler cette action revient à supprimer la ligne inserrée
-- Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net/excel "Le rital" a écrit dans le message de news: 046a01c3cbc5$18272400$ Bonjour le forum,
Salut,
1
Sub NouvelleLigneX()
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ZtNumLig = ActiveCell.Row
noLigne = ActiveCell.Row
ActiveSheet.Rows(ZtNumLig).Insert
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol)).Copy _
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig, i).HasFormula Then
Cells(ZtNumLig, i).ClearContents
End If
Next i
ActiveCell.Range("A2").Select
End Sub
2
Annuler cette action revient à supprimer la ligne inserrée
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Le rital" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 046a01c3cbc5$18272400$a601280a@phx.gbl...
Bonjour le forum,
Sub NouvelleLigneX() Dim ZtNumLig As Integer Dim ZtDerCol As Integer ZtNumLig = ActiveCell.Row noLigne = ActiveCell.Row ActiveSheet.Rows(ZtNumLig).Insert ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol)).Copy _ Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)) Application.ScreenUpdating = False For i = 1 To ZtDerCol If Not Cells(ZtNumLig, i).HasFormula Then Cells(ZtNumLig, i).ClearContents End If Next i ActiveCell.Range("A2").Select End Sub
2 Annuler cette action revient à supprimer la ligne inserrée
-- Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net/excel "Le rital" a écrit dans le message de news: 046a01c3cbc5$18272400$ Bonjour le forum,