Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de feuilles
(toutes les feuilles ne contiennent pas les mêmes formules, mais je
cherche à insérer une ligne au même endroit dans tout le groupe, sans
recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de feuilles
(toutes les feuilles ne contiennent pas les mêmes formules, mais je
cherche à insérer une ligne au même endroit dans tout le groupe, sans
recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de feuilles
(toutes les feuilles ne contiennent pas les mêmes formules, mais je
cherche à insérer une ligne au même endroit dans tout le groupe, sans
recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" a écrit dans le message de
news:%Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" <allezvoir@yeur.fr> a écrit dans le message de
news:%23j827DZDKHA.5092@TK2MSFTNGP03.phx.gbl...
Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" a écrit dans le message de
news:%Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" a écrit dans le message de
news:%Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" <allezvoir@yeur.fr> a écrit dans le message de
news:%23j827DZDKHA.5092@TK2MSFTNGP03.phx.gbl...
Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" a écrit dans le message de
news:%Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bien sûr ce n'est pas ton adaptation, qui ne fonctionne pas, c'est ma
macro initiale :-)
Si tu as une idée ...
encore merci
J@@
Charabeuh a écrit :Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" a écrit dans le message de
news:%Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de feuilles
(toutes les feuilles ne contiennent pas les mêmes formules, mais je
cherche à insérer une ligne au même endroit dans tout le groupe, sans
recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bien sûr ce n'est pas ton adaptation, qui ne fonctionne pas, c'est ma
macro initiale :-)
Si tu as une idée ...
encore merci
J@@
Charabeuh a écrit :
Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" <allezvoir@yeur.fr> a écrit dans le message de
news:%23j827DZDKHA.5092@TK2MSFTNGP03.phx.gbl...
Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de feuilles
(toutes les feuilles ne contiennent pas les mêmes formules, mais je
cherche à insérer une ligne au même endroit dans tout le groupe, sans
recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bien sûr ce n'est pas ton adaptation, qui ne fonctionne pas, c'est ma
macro initiale :-)
Si tu as une idée ...
encore merci
J@@
Charabeuh a écrit :Bjr,
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@" a écrit dans le message de
news:%Bonjour à tous
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de feuilles
(toutes les feuilles ne contiennent pas les mêmes formules, mais je
cherche à insérer une ligne au même endroit dans tout le groupe, sans
recopier les constantes)?
Merci pour l'aide.
J@@
'****
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
'****
Bonjour,
Si tu sélectionnes la 1ière feuille dans ton groupe, les formules ayant
une référence vers une autre feuille sont modifiées :
1) si tu insères une ligne sur la première feuille.
2) si tu insères une ligne sur la feuille référencée.
C'est le fonctionnement normal d'Excel qui conserve les références
vers les autres feuilles.
Une piste :
1) exécuter la macro sur les feuilles sélectionnées
(en ne sélectionnant pas ta première feuille dans ton groupe)
2) exécuter la macro sur les feuilles sélectionnées
(en ne sélectionnant que ta première feuille)
Qu'en est il ?
Bien sûr ce n'est pas ton adaptation, qui ne fonctionne pas, c'est ma
macro initiale :-)
Charabeuh a écrit :devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@"J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
'****
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
'****
Bonjour,
Si tu sélectionnes la 1ière feuille dans ton groupe, les formules ayant
une référence vers une autre feuille sont modifiées :
1) si tu insères une ligne sur la première feuille.
2) si tu insères une ligne sur la feuille référencée.
C'est le fonctionnement normal d'Excel qui conserve les références
vers les autres feuilles.
Une piste :
1) exécuter la macro sur les feuilles sélectionnées
(en ne sélectionnant pas ta première feuille dans ton groupe)
2) exécuter la macro sur les feuilles sélectionnées
(en ne sélectionnant que ta première feuille)
Qu'en est il ?
Bien sûr ce n'est pas ton adaptation, qui ne fonctionne pas, c'est ma
macro initiale :-)
Charabeuh a écrit :
devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@"
J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
'****
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
'****
Bonjour,
Si tu sélectionnes la 1ière feuille dans ton groupe, les formules ayant
une référence vers une autre feuille sont modifiées :
1) si tu insères une ligne sur la première feuille.
2) si tu insères une ligne sur la feuille référencée.
C'est le fonctionnement normal d'Excel qui conserve les références
vers les autres feuilles.
Une piste :
1) exécuter la macro sur les feuilles sélectionnées
(en ne sélectionnant pas ta première feuille dans ton groupe)
2) exécuter la macro sur les feuilles sélectionnées
(en ne sélectionnant que ta première feuille)
Qu'en est il ?
Bien sûr ce n'est pas ton adaptation, qui ne fonctionne pas, c'est ma
macro initiale :-)
Charabeuh a écrit :devrait fonctionner sur un groupe de feuilles sélectionnées.
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
Dim Feuilles As Sheets, Ws
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
Ws.Select True
'on fait ce qu'on a à faire
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
Next Ws
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
"J@@"J'ai un code (merci à l'auteur) qui insère une ligne sous la cellule
active et y recopie les formules qu'elle contient.
SVP, comment faire pour réaliser cette action sur un groupe de
feuilles (toutes les feuilles ne contiennent pas les mêmes formules,
mais je cherche à insérer une ligne au même endroit dans tout le
groupe, sans recopier les constantes)?
'****
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
'****
Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
Par la macro ci-dessous
(mettre dans la variable 'NomPremFeuil' le nom
de la ière feuille)
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
Dim Feuilles As Sheets, Ws, NomPremFeuil As String
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées sauf 1ière
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
'on teste si la feuille courante est la 1ière
If Ws.Name <> NomPremFeuil Then
Ws.Select True
'on fait ce qu'on a à faire
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 If
Next Ws
'On traite la 1ière feuille
Sheets(NomPremFeuil).Select True
'on fait ce qu'on a à faire
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
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
CharAbeuh
"J@@" a écrit dans le message de news:
%Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
'****
Par la macro ci-dessous
(mettre dans la variable 'NomPremFeuil' le nom
de la ière feuille)
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
Dim Feuilles As Sheets, Ws, NomPremFeuil As String
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées sauf 1ière
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
'on teste si la feuille courante est la 1ière
If Ws.Name <> NomPremFeuil Then
Ws.Select True
'on fait ce qu'on a à faire
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 If
Next Ws
'On traite la 1ière feuille
Sheets(NomPremFeuil).Select True
'on fait ce qu'on a à faire
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
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
CharAbeuh
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23ieAJpcDKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
'****
Par la macro ci-dessous
(mettre dans la variable 'NomPremFeuil' le nom
de la ière feuille)
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
Dim Feuilles As Sheets, Ws, NomPremFeuil As String
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées sauf 1ière
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
'on teste si la feuille courante est la 1ière
If Ws.Name <> NomPremFeuil Then
Ws.Select True
'on fait ce qu'on a à faire
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 If
Next Ws
'On traite la 1ière feuille
Sheets(NomPremFeuil).Select True
'on fait ce qu'on a à faire
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
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
CharAbeuh
"J@@" a écrit dans le message de news:
%Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
'****
Bonjour Charabeuh
Merci pour ta réponse,
mais cela ne fonctionne pas.
Je dois - faire pleins de bêtises, - et/ou avoir mal expliqué.
Peux-tu, stp, jeter un œil sur le fichier mis sur cjoint?
http://cjoint.com/?hAsVxCdSYx
PS : mes réponses sont un peu tardives, car il est 06h50 dimanche, ici. Ça
décale.
Merci
@+
J@@
charabeuh a écrit :Par la macro ci-dessous
(mettre dans la variable 'NomPremFeuil' le nom
de la ière feuille)
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
Dim Feuilles As Sheets, Ws, NomPremFeuil As String
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées sauf 1ière
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
'on teste si la feuille courante est la 1ière
If Ws.Name <> NomPremFeuil Then
Ws.Select True
'on fait ce qu'on a à faire
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 If
Next Ws
'On traite la 1ière feuille
Sheets(NomPremFeuil).Select True
'on fait ce qu'on a à faire
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
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
CharAbeuh
"J@@" a écrit dans le message de news:
%Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
'****
Bonjour Charabeuh
Merci pour ta réponse,
mais cela ne fonctionne pas.
Je dois - faire pleins de bêtises, - et/ou avoir mal expliqué.
Peux-tu, stp, jeter un œil sur le fichier mis sur cjoint?
http://cjoint.com/?hAsVxCdSYx
PS : mes réponses sont un peu tardives, car il est 06h50 dimanche, ici. Ça
décale.
Merci
@+
J@@
charabeuh a écrit :
Par la macro ci-dessous
(mettre dans la variable 'NomPremFeuil' le nom
de la ière feuille)
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
Dim Feuilles As Sheets, Ws, NomPremFeuil As String
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées sauf 1ière
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
'on teste si la feuille courante est la 1ière
If Ws.Name <> NomPremFeuil Then
Ws.Select True
'on fait ce qu'on a à faire
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 If
Next Ws
'On traite la 1ière feuille
Sheets(NomPremFeuil).Select True
'on fait ce qu'on a à faire
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
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
CharAbeuh
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23ieAJpcDKHA.1380@TK2MSFTNGP02.phx.gbl...
Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
'****
Bonjour Charabeuh
Merci pour ta réponse,
mais cela ne fonctionne pas.
Je dois - faire pleins de bêtises, - et/ou avoir mal expliqué.
Peux-tu, stp, jeter un œil sur le fichier mis sur cjoint?
http://cjoint.com/?hAsVxCdSYx
PS : mes réponses sont un peu tardives, car il est 06h50 dimanche, ici. Ça
décale.
Merci
@+
J@@
charabeuh a écrit :Par la macro ci-dessous
(mettre dans la variable 'NomPremFeuil' le nom
de la ière feuille)
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
Dim Feuilles As Sheets, Ws, NomPremFeuil As String
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
'sauvegarde les feuilles sélectionnées
Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
'Boucle sur les feuilles sélectionnées sauf 1ière
For Each Ws In Feuilles
'on sélectionne la feuille courante uniquement
'on teste si la feuille courante est la 1ière
If Ws.Name <> NomPremFeuil Then
Ws.Select True
'on fait ce qu'on a à faire
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 If
Next Ws
'On traite la 1ière feuille
Sheets(NomPremFeuil).Select True
'on fait ce qu'on a à faire
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
'on re-selectionne les feuilles comme au départ
For Each Ws In Feuilles
Ws.Select False
Next Ws
Set Feuilles = Nothing
End Sub
CharAbeuh
"J@@" a écrit dans le message de news:
%Bonjour
Ta proposition fonctionne très bien, en 2 temps
Mais comment modifier le code pour que l'utilisateur sélectionne dans la
feuille 1 et que s'exécute les 2 opérations successives ??
J'ai essayé, en vain..
' Set Feuilles = Application.ActiveWorkbook.Windows(1).SelectedSheets
Set Feuilles = Sheets(Array("AA", "BB", "CC", "DD", "EE", "FF", "GG"))
ne fonctionne pas
'****
Bonjour (du matin donc!)
Dans la macro, il y a les deux lignes suivantes:
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
Si dans la macro on remplace "Feuil1" par le nom de la
feuille récap inventaire, ça doit marcher. Les deux lignes
de la macro deviennent:
'Nom de la 1ière feuille
NomPremFeuil = "Commandes_inv"
voir fichier joint : http://cjoint.com/?hAuwjccypg
Charabeuh.
Bonjour (du matin donc!)
Dans la macro, il y a les deux lignes suivantes:
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
Si dans la macro on remplace "Feuil1" par le nom de la
feuille récap inventaire, ça doit marcher. Les deux lignes
de la macro deviennent:
'Nom de la 1ière feuille
NomPremFeuil = "Commandes_inv"
voir fichier joint : http://cjoint.com/?hAuwjccypg
Charabeuh.
Bonjour (du matin donc!)
Dans la macro, il y a les deux lignes suivantes:
'Nom de la 1ière feuille
NomPremFeuil = "Feuil1"
Si dans la macro on remplace "Feuil1" par le nom de la
feuille récap inventaire, ça doit marcher. Les deux lignes
de la macro deviennent:
'Nom de la 1ière feuille
NomPremFeuil = "Commandes_inv"
voir fichier joint : http://cjoint.com/?hAuwjccypg
Charabeuh.