MACRO pour recopier les formats et formules de la ligne précédente

  • Initiateur de la discussion Initiateur de la discussion chris6999
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chris6999

XLDnaute Impliqué
Bonjour le FORUM

Pour éviter de charger ma feuille, je souhaiterais mettre en place une macro sur un Private Sub Worksheet_Change dans la colonne 1.
A chaque fois que l'utilisateur saisit une nouvelle donnée dans la colonne 1 la macro recopie le format et les formules de la ligne active sur la prochaine ligne vide.

Pour le "coller" l'enregistreur me donne ça :
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


Pour le "copier" je pensais faire un truc du type
Rows(ActiveCell.Row).copy


Mais comment lui dire prochaine ligne vide...


J'ai essayé ceci mais cela ne donne rien

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
If cell <> "" Then

Rows(ActiveCell.Row).Copy
Set Plage_Destination = _
ActiveSheet.Range("A" & [A20000].End(xlUp).Row + 1)
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
End If
End Sub


Si vous avez une idée, elle sera la bien venue
Merci d'avance
 
Dernière édition:
Re : MACRO pour recopier les formats et formules de la ligne précédente

Bonjour
Ben remplacez Selection par Plage_Destination.EntireRow

P.S ou par Plage_Destination en faisant d'abord
VB:
Set Plage_Destination = ActiveSheet.[A20000].End(xlUp).Offset(1).EntireRow
Cordialement
 
Dernière édition:
Re : MACRO pour recopier les formats et formules de la ligne précédente

Merci Dranreb

J'ai testé ta proposition mais je me retrouve avec une erreur 1004.

J'ai peut-etre mal compris.

Mon code est le suivant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 1 Then
If cell <> "" Then
End If
Else
Rows(ActiveCell.Row).Copy
Set Plage_Destination = ActiveSheet.[A20000].End(xlUp).Offset(1).EntireRow
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If

End Sub


Merci


Bonjour
Ben remplacez Selection par Plage_Destination.EntireRow

P.S ou par Plage_Destination en faisant d'abord
VB:
Set Plage_Destination = ActiveSheet.[A20000].End(xlUp).Offset(1).EntireRow
Cordialement
 
Re : MACRO pour recopier les formats et formules de la ligne précédente

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage_Destination As Range
If Target.Column <> 1 Then Exit Sub
If Target.Value <> "" Then Exit Sub
Target.EntireRow.Copy
Set Plage_Destination = Me.[A20000].End(xlUp).Offset(1).EntireRow
Plage_Destination.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Plage_Destination.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
Mais si vous copiez les lormules et les formats vous copiez tout il me semble. Alors pourquoi pas
VB:
Target.EntireRow.Copy Destination:=Me.[A20000].End(xlUp).Offset(1).EntireRow
À +
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
455
Réponses
18
Affichages
134
Réponses
2
Affichages
214
Réponses
17
Affichages
877
Retour