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

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:

Dranreb

XLDnaute Barbatruc
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:

chris6999

XLDnaute Impliqué
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
 

Dranreb

XLDnaute Barbatruc
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:

Discussions similaires


Haut Bas