XL 2013 Derniere ligne d'un tableau comportant une mise en forme

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 !

gregos123

XLDnaute Nouveau
Bonjour

Je souhaite copier une mise en forme d'une ligne, et la coller a la fin de mon tableau excel avec cellule vide, mais cette ligne va varier.

Je suis arrivé à faire le code ci dessous, cependant j'arrive pas à que sa se répète et qu'a chaque fois ça me créer une nouvelle ligne a l'endroit de la dernière ligne de mon tableau (vide ou non vide peu importe).



Code:
   Private Sub CommandButton1_Click()
    With Worksheets(Sheets.Count)
    Range("A10:L10").Select
    Selection.Copy
    End With
    With Worksheets(Sheets.Count)
    Dim derlig As Integer
    derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Range("A" & derlig + 1).Select

    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    End With
    End Sub

Cordialement

@+
 
Re : Derniere ligne d'un tableau comportant une mise en forme

Bonjour à tous__________________EDITION: Bonjour PMO2

Bienvenue sur XLD, gregos123

Puisque tu disposes d'Excel 2013,tu aurais tout avantage à utiliser l'objet Tableau
(voir Ce lien n'existe plus entre autres pour un tutoriel réalisé par Misange, membre d'XLD)

Et si tu veux utiliser le VBA, voir Ce lien n'existe plus. (toujours mitonné par Misange)

EDITION: Sinon pour info ton code VBA de ton premier message peut s'écrire plus simplement
VB:
Private Sub CommandButton1_Click()
With Worksheets(Sheets.Count)
.Range("A10:L10").Copy    
.Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial Paste:=xlPasteFormats
End With
Application.CutCopyMode = False
End Sub




 
Dernière édition:
Re : Derniere ligne d'un tableau comportant une mise en forme

Bonjour,

C'est normal car l'instruction
Code:
derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
va trouver toujours la même ligne (rien n'a été renseigné).

Mettre un espace (ou autre) dans la nouvelle ligne pour que l'action de la macro puisse continuer
Code:
 Private Sub CommandButton1_Click()
    With Worksheets(Sheets.Count)
    Range("A10:L10").Select
    Selection.Copy
    End With
    With Worksheets(Sheets.Count)
    Dim derlig As Integer
    derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Range("A" & derlig + 1).Select

    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    
 Selection = Space(1)   '///grosse bidouille
  
    End With
    End Sub
 
- 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
7
Affichages
285
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
10
Affichages
655
Réponses
2
Affichages
345
Réponses
8
Affichages
712
Retour