Copier coller selon occurrence

Bonjour à tous,

Un nouveau projet que je souhaiterais automatiser. Je vous joins un fichier d'exemple.

En colonne A il y a un certain nombre de lignes comportant le même référence, puis on passe à la référence suivante . En colonne B, il y a pour chaque référence un numéro trié en ordre "descendant" ou des lignes vides.

Je souhaiterais copier la première ligne de chaque référence et les coller à la suite les unes des autres dans l'onglet "résultats". Cela me permettra de connaitre à quelle étape d'avancement chaque référence se trouve.

J'ai essayé beaucoup de choses mais je cale.

7progression.xlsm (19.13 Ko)

Merci de votre aide

Bonsoir Caro curieuse,

Un essai via une macro. Le code est dans le module de code de la feuille "Résultats".

Le code s'exécute automatiquement quand on sélectionne la feuille "Résultats".

Le tableau source de la la feuille "Données" n'a pas besoin d'être trié. La macro se charge de le faire sur la feuille "Résultats".

Private Sub Worksheet_Activate()
Dim der&
   Application.ScreenUpdating = False
   der = Sheets("Données").UsedRange.Row + Sheets("Données").UsedRange.Rows.Count - 1
   Range("a2:c" & Rows.Count).Clear
   Range("a2:c" & der) = Sheets("Données").Range("a2:c" & der).Value
   Range("b:c").Insert
   On Error GoTo Err001
   Range("b3").FormulaR1C1 = "=LEFT(RC[-1],SEARCH(""-"",RC[-1])-1)"
   Range("b3").AutoFill Destination:=Range("b3:b" & der)
   Range("c3").FormulaR1C1 = "=MID(RC[-2],SEARCH(""-"",RC[-2])+1,99)"
   Range("c3").AutoFill Destination:=Range("c3:c" & der)
   Range("b3:c" & der) = Range("b3:c" & der).Value
   Range("a2:e" & der).Sort key1:=[b2], order1:=xlDescending, key2:=[c2], order2:=xlAscending, _
                            key3:=[d2], order3:=xlDescending, MatchCase:=False, Header:=xlYes
   Range("a2:e" & der).RemoveDuplicates Columns:=1
   Range("a2:e" & Cells(Rows.Count, "a").End(xlUp).Row).Borders.LineStyle = xlContinuous
Err001:
   Columns("b:c").Delete
End Sub

Merci pour ce code. Je viens de tester et malheureusement ce n'est pas ce que je cherche.

L'onglet Données doit rester inchangé et les résultats être inclus dans l'onglet Résultats afin d'être exploités différemment.

Bonne soirée

Hello,

Une proposition PowerQuery,

Clic droit puis actualiser sur le tableau de résultat

@+

6progression.xlsm (27.75 Ko)

Bonsoir à tous,

Un essai par formules....matricielles...

2progression.xlsm (20.00 Ko)

Cordialement,

Re,

Je viens de tester et malheureusement ce n'est pas ce que je cherche.
L'onglet Données doit rester inchangé et les résultats être inclus dans l'onglet Résultats afin d'être exploités différemment

Donc vous n'avez pas testé convenablement. Le tableau de la feuille "données" n'est absolument pas modifié !

Dans l'exemple fourni, j'ai volontairement "mélangé" le tableau source pour montrer que cela n’influençait pas le résultat.

Bien entendu si le tableau source est trié alors il restera. Voir le classeur joint n (code identique à la v1)

Merci à tous pour vos solutions.

Soirée où j'aurai appris plein de méthodes différentes que je vais garder en mémoire.

@MaFraise, désolée, en effet j'avais mal testé. Je vais l'adapter à mon fichier final.

Bonne soirée à vous tous.

Bonsoir à tous,

J'ai vraiment honte de revenir sur ce post. J'ai adopté la solution de @MaFraise en pensant pouvoir l'adapter à mes besoins. Evidemment cela ne marche pas.

En fait au réel, il y a plusieurs onglets avec une année différente à coller les unes derrière les autres dans l'onglet "Résultats". Malgré de nombreux tests, cela ne me prend que la dernière année.

Je vous joins le nouveau fichier avec un test : Range("A" & Rows.count).End(xlUp).Row + 1

Merci encore pour votre aide

Bonne soirée

Bonsoir à tous,

Un essai...à partir d'une macro de l'excellent ThauTheme que j'avais en stock, adaptée à ton cas...
La macro s'exécute à l'activation de la feuille Résultats.


[Source]
: https://www.developpez.net/forums/d2045710/logiciels/microsoft-office/excel/macros-vba-excel/trouver...

Cordialement,

Merci xorsankukai. C'est super et exactement ce que je cherchais.

Une belle soirée à tous

Bonjour à tous,

J’ai adapté à mes fichiers la macro envoyée par @xorsankukai. Cela m'a fait gagné un temps fou.

Maintenant il m'a été demandé de récupérer la plus petite valeur de chaque série de chaque feuille avec la date de création du dossier. J'ai fait une très mauvaise macro qui intégre les données dans l'onglet "Datecré"

Pourriez vous m'aider ?

Je joins le nouveau fichier

Bonsoir Caro curieuse, le forum,

il m'a été demandé de récupérer la plus petite valeur de chaque série de chaque feuille avec la date de création du dossier.

En supposant que l'étape 1 correspond à la création du dossier:

Cordialement,

Rechercher des sujets similaires à "copier coller occurrence"