Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier la dernière ligne d'un tableau à un emplacement précis

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

L

ldexplorer

Guest
Bonjour à vous tous,

Merci de l'aide que vous m'avez apporté jusqu'ici.

Je rencontre le problème suivant. Je fais une petite base de donnée qui me sert à recenser les interventions que nous faisons pour les usagers du centre ou je travaille. Chaque usager a une feuille avec son nom, la date d'entrée et le listing des actes par date, heure ... .
Je souhaite qu'en tout début de la base, une feuille Recap mette en avant le dernière acte fait pour chacun des usagers.
J'ai le code suivant qui me copie le dernier acte dans la feuille recap, mais il 'additionne' les actes. Il les mets les uns derrière les autres. Or je voudrais que chaque usager est une ligne et que ce soit à cette ligne précise que soit copié ce dernier acte. J'espère que je suis clair !!! pas sûr !

Je vous envoie le classeur épuré en pièce jointe. Vous y verrez la feuille 'Alain' et la feuille Recap.(il y a également la macro)

Merci à tous de m'aider.

Ci-dessous le bout de code qui me permet de faire la copie du dernier acte dans la feuille recap .

Code:
Sub IRecap()
Dim nom As String
nom = Range("B5").Value
Rows(Range("B65536").End(xlUp).Row).Copy
Application.Goto Sheets("Recap").Range("A65536").End(xlUp)(2)
ActiveSheet.Paste
Cells(Range("A65536").End(xlUp)(2).Row, 1).Value = nom
End Sub
 

Pièces jointes

Re : Copier la dernière ligne d'un tableau à un emplacement précis

Bonjour Idexplorer, bonjour le forum,

Si j'ai bien compris, je te propose cette macro (la tienne modifiée) :

Code:
Sub IRecap()
 
Dim nom As String 'déclare la variable nom
Dim li As Integer 'déclare la variable li
Dim dest As Range 'déclare la variable dest
 
nom = ActiveSheet.Range("B5").Value  'définit la variable nom
li = ActiveSheet.Range("B65536").End(xlUp).Row 'définit la variable li
With Sheets("Recap") 'prend en compte l'onglet Recap"
 
    'boucle sur toutes les cellules éditées de la colonne A (en partant de A13)
 
    For Each cel In .Range("A13:A" & .Range("A65536").End(xlUp).Row)
 
        If cel.Value = nom Then 'condition : si la valeur de la cellule est egale à nom
            Set dest = cel 'définit la variable dest
            GoTo suite 'va à la balise suite
        End If 'fin de la condition
 
    Next cel 'prochaine cellule de la plage
 
Set dest = .Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest
dest.Value = nom 'place le nom dans la première cellule vide rencontrée
 
End With
 
suite: 'balise
ActiveSheet.Range(Cells(li, 2), Cells(li, 6)).Copy Destination:=dest.Offset(0, 1) 'copie la ligne
End Sub
 
Re : Copier la dernière ligne d'un tableau à un emplacement précis

Merci ROBERT,

Tu as parfaitement compris mon propos. Ta proposition marche à merveille. C'est exactement cela que je recherchais. Merci beaucoup.

A+
Lionel
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
786
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
740
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…