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

ldexplorer

XLDnaute Junior
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

  • CE_ela.xls
    46.5 KB · Affichages: 67
  • CE_ela.xls
    46.5 KB · Affichages: 74
  • CE_ela.xls
    46.5 KB · Affichages: 73

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Réponses
7
Affichages
334
Réponses
6
Affichages
142

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 516
dernier inscrit
René Rivoli Monin