XL 2016 Copier et ne coller que les 12 dernières lignes

  • Initiateur de la discussion Initiateur de la discussion Collins
  • 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 !

Collins

XLDnaute Occasionnel
Bonjour à tous

J'ai un tableau qui comportent des milliers de lignes et je voudrais ne copier/coller chaque fois que les 12 dernières lignes d'un tableau sur un autre fichier.
j'ai mis en exemple 2 fichiers avec les explications.
Et comme ce tableau évolue chaque jour, je suis bloqué. 🙁
Je vous remercie pour l'aide que vous pourrez m'apporter.
 

Pièces jointes

Bonjour Chris

Merci pour ta réponse
J'ai ouvert le fichier Classeur1 ou il y a le tableau
Et dans source il me dit : DataSource.Error : Impossible de trouver une partie du chemin d'accès 'T:\TEMP\Classeur1.xlsx'.
Pour essayé j'ai enlevé \TEMP.
La je ne sais plus quoi faire.
N'as tu pas une solution par macro?
 
RE

Il suffit d'indiquer le chemin complet sur ton PC...

Tu sembles ne pas avoir lu attentivement mon post...

VB:
Adapter la cellule en jaune puis Données, Actualiser Tout

Ce serait du reste le même problème en VBA...
 
Dernière édition:
Bonjour Collins, chris,

Une solution VBA avec cette macro affectée au bouton :
VB:
Sub Transfert()
Dim nlig&, fichier$, P As Range
nlig = 12 'modifiable
fichier = ThisWorkbook.Path & "\Destination.xlsx" 'chemin à adapter
Set P = [A1].CurrentRegion
If P.Rows.Count > nlig + 1 Then Set P = Union(P.Rows(1), P.Rows(P.Rows.Count - nlig + 1).Resize(nlig))
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier a déjà été créé
With Workbooks.Add(xlWBATWorksheet) 'nouveau document
    P.Copy Sheets(1).[A1] 'copier-coller
    .SaveAs fichier, 51 'format .xlsx
    .Close
End With
MsgBox "Transfert effectué..."
End Sub
Le tableau source doit avoir une ligne d'en-têtes, copiée elle aussi.

A+
 

Pièces jointes

Bonjour Job75

Merci beaucoup pour cette méthode VBA.
Mais pour adapter à un fichier réel que je vais créer : j'aurai 3 tableaux dans ce fichier sur 3 onglets (par exemple) dans : "Source1", "Source2" et "Source3".
Serait il possible que j'ai les 12 dernières lignes de ces 3 tableaux sur 3 feuilles différentes dans ton fichier "destination" qui se crée automatiquement.
Je voudrai regrouper les valeurs sur 1 fichier pour m'éviter d'en avoir 3.
 
On peut traiter autant de feuilles que l'on veut :
VB:
Sub Transfert()
Dim nlig&, fichier$, a, n%, P As Range
nlig = 12 'modifiable
fichier = ThisWorkbook.Path & "\Destination.xlsx" 'chemin à adapter
a = Array("Source1", "Source2", "Source3") 'noms des feuilles à copier
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier a déjà été créé
With Workbooks.Add(xlWBATWorksheet) 'nouveau document
    For n = 0 To UBound(a)
        If n Then .Sheets.Add After:=.Sheets(n)
        .Sheets(n + 1).Name = a(n)
        Set P = ThisWorkbook.Sheets(a(n)).[A1].CurrentRegion
        If P.Rows.Count > nlig + 1 Then Set P = Union(P.Rows(1), P.Rows(P.Rows.Count - nlig + 1).Resize(nlig))
        P.Copy .Sheets(n + 1).[A1] 'copier-coller
    Next
    .Sheets(1).Activate
    .SaveAs fichier, 51 'format .xlsx
    .Close
End With
MsgBox "Transfert effectué..."
End Sub
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 Insertion de photo
Réponses
14
Affichages
437
Réponses
10
Affichages
365
Retour