Collage dernière ligne non vide +1

Bonjour à toutes et à tous,

Ma macro sert à trouver plusieurs données au milieu d'autres. Ce que je veux faire, c'est trouver la dernière ligne de chaque critère et copier cette ligne tout à la fin de mon tableau de données. Mon problème est que j'arrive à faire tout cela sauf la dernière partie, coller cette ligne dans la dernière ligne non vide + 1 (donc dernière ligne vide). Je pensais à mettre un +1 sur ma ligne (Sheets("BDD").Range("A" & Rows.Count).End(xlUp).PasteSpecial) mais ça ne fonctionne pas.

Merci d'avance,

Sub prcopieimportation()

'***Macro servant à dupliquer la dernière ligne de chaque presse en fin d'équipe***

'*** Bouton utilisé : Fin d'équipe de l'onglet formulaire_cuisson***

'fonction pour optimiser la macro

Application.ScreenUpdating = False 'Désactiver l'affichage à l'écran

Dim numpresse As String, c As Range, celpresse As Range, cel As Range

For Each celpresse In Sheets("Source").Range("Y2:Y58") 'début de la boucle qui fait la duplication de toutes les dernières lignes de chaque presse

numpresse = celpresse.Value

Set c = Sheets("BDD").Range("B:B").Find(numpresse, LookIn:=xlValues, lookat:=xlWhole, SearchDirection:=xlPrevious) 'on vient chercher la dernière valeur du numéro de la presse dans la colonne B de l'onglet BDD

If Not c Is Nothing Then

Sheets("BDD").Range("A" & c.Row & ":P" & c.Row).Copy 'copie de la ligne supérieur de la colonne B à P

Sheets("BDD").Range("A" & Rows.Count).End(xlUp).PasteSpecial 'collage de la ligne supérieur dans la ligne vierge

Application.CutCopyMode = False 'désactive le mode copier/coller

End If

Next celpresse 'fin boucle

MsgBox ("Transfert terminé"), vbOKOnly, "Fenêtre de transfert fin d'équipe"

Application.ScreenUpdating = True 'réactivation de toutes les fonctions

'ActiveWorkbook.Save 'enregistre automatiquement le fichier

End Sub

Bonjour,

peut-être en décomposant:

.../...
Lig = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row  '<= N° dernière ligne occupée

For Each celpresse In Sheets("Source").Range("Y2:Y58") 'début de la boucle qui fait la duplication d...
     numpresse = celpresse.Value
     Set c = Sheets("BDD").Range("B:B").Find(numpresse, LookIn:=xlValues, lookat:=xlWhole, SearchDirection:=xlPrevious) 'on vient chercher la dernière valeur du numéro de la presse dans la colonne B de l'onglet BDD

     If Not c Is Nothing Then
          Sheets("BDD").Range("A" & c.Row & ":P" & c.Row).Copy 'copie de la ligne supérieur de la colonne B à P
          Lig = Lig + 1  '<= N° première ligne vide
          Sheets("BDD").Range("A" & Lig).PasteSpecial 'collage de la ligne supérieur dans la ligne vierge
          Application.CutCopyMode = False 'désactive le mode copier/coller
     End If
Next celpresse 'fin boucle
.../...

A+

Bonjour,

peut-être en décomposant:

.../...
Lig = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row  '<= N° dernière ligne occupée

For Each celpresse In Sheets("Source").Range("Y2:Y58") 'début de la boucle qui fait la duplication d...
     numpresse = celpresse.Value
     Set c = Sheets("BDD").Range("B:B").Find(numpresse, LookIn:=xlValues, lookat:=xlWhole, SearchDirection:=xlPrevious) 'on vient chercher la dernière valeur du numéro de la presse dans la colonne B de l'onglet BDD

     If Not c Is Nothing Then
          Sheets("BDD").Range("A" & c.Row & ":P" & c.Row).Copy 'copie de la ligne supérieur de la colonne B à P
          Lig = Lig + 1  '<= N° première ligne vide
          Sheets("BDD").Range("A" & Lig).PasteSpecial 'collage de la ligne supérieur dans la ligne vierge
          Application.CutCopyMode = False 'désactive le mode copier/coller
     End If
Next celpresse 'fin boucle
.../...

A+

Merci mais j'avais trouvé. Il suffisait de mettre .Offset(1,0) après le End(xlup) et avant le PasteSpecial

Rechercher des sujets similaires à "collage derniere ligne vide"