Extraire données l'une liste

Nuage75

XLDnaute Nouveau
Bonjour à tous,

Je n'arrive pas à faire fonctionner un code d'extraction de données.

Je dispose d'une liste de données extraites de plusieurs documents (colonne AQ). Chaque article de cette liste concerne des lots.

exemple:
article 1 : Lot 2
article 1 : Lot 15
article 1 : Lot 6
article 2 : Lot 6
article 2 : Lot 16
article 2 : Lot 63

J'essaie de mettre au point un code qui, à partir de la colonne contenant lot x liste les données de la ligne entre les colonnes AN:AV afin de regrouper les articles de chaque lot x.

exemple :
Lot 2 : article 1
Total lot 2 :
Lot 6 : article 1
Lot 6 : article 2
Total lot 6 :
Lot ...
...
...

Les lots vont de 1 à 100

Pour ce faire, je repars de ce code (qui ne fonctionne pas):

Code:
Sub test()

Range("AY7").Select

Dim a
Dim L

a = a + 1
L = "Logistique" & a

    Set plage = ThisWorkbook.Sheets("Feuil2").Columns("AQ:AQ")

    Set re = plage.Find(L, LookIn:=xlValues, lookat:=xlPart, MatchCase:=True)

        If Not re Is Nothing Then
            Set fr = re
            Do
            ThisWorkbook.Sheets("Feuil2").Range(Cells(re.Row, 40), Cells(re.Row, 48)) = ThisWorkbook.Sheets("Feuil2").Range(Cells(re.Row, 50), Cells(re.Row, 58))
            
            Set re = plage.FindNext(re)
Loop Until re Is Nothing Or re = fr
a = 90
End If

End Sub
Merci d'avance pour votre aide
 

laetitia90

XLDnaute Barbatruc
Re : Extraire données l'une liste

BONJOUR Nuage75:)

le mieux mettre un fichier exemple avec resultat a attendre par macro ou formule ???? plus simple
 

Nuage75

XLDnaute Nouveau
Re : Extraire données l'une liste

Ci-joint votre demande, la colonne verte est la base de données et la colonne rouge la façon dont je veut que la macro me présente les données. Ce fichier contiens les 10 premiers devis mais en réalité il y en as plus de 460. Les lots vont de 01 à 90

Voir la pièce jointe extra par lots.xlsx

Merci pour votre aide
 

Nuage75

XLDnaute Nouveau
Re : Extraire données l'une liste

Bonjour,

Mon exemple vous convient ? Le code que j'ai imaginé est celui-ci mais bien sur il ne fonctionne pas :

Sub test()

Range("AY7").Select

Dim a
Dim L
a = 1
L = "Lot " & a

Set plage = ThisWorkbook.Sheets("Feuil2").Columns("AQ:AQ")
Set re = plage.Find(L, lookat:=xlWhole, MatchCase:=False) 'lookat:=xlPart

If Not re Is Nothing Then
Set fr = re
Do
ThisWorkbook.Sheets("Feuil2").Range(Cells(re.Row, 40), Cells(re.Row, 48)).Copy '= ThisWorkbook.Sheets("Feuil2").Range(Cells(re.Row, 50), Cells(re.Row, 58))

Set re = plage.FindNext(re)

Loop Until re Is Nothing Or re = fr

End If
a = a + "001"
End Sub
 

Nuage75

XLDnaute Nouveau
Re : Extraire données l'une liste

Bonjour,

Aucun problèmes, nous pouvons mettre des titres aux colonnes, ce serait (N°; Indice; Date; Désignation; Total; C; B; D)

Le fichier ci-joint est un extrait d'un fichier de 9Mo contenant 4 modules de macro.

Ces modules me permettent de parcourir un dossier, d'en extraire des informations et de les trier.

Le cinquième module que j'essaie de mettre au point avec votre aide me permettrais d'effectuer un nouveau trie.

Le code précédent me permet d'extraire des informations par fichier. Chaque numéro dans la première colonne correspond à un fichier. Chaque fichier est constitué de plusieurs Sous total par lots pour former à la fin un total par fichier (TOTAL HT et TOTAL Ramené à). J'aimerais que le code à crée parcours la colonne désignation et m'extrait les lignes lots par lot. Il devra parcourir la colonne Désignation (colonne 4) le lister les lignes qui font apparaître Lot 1 puis recommencer avec Lot 2 puis Lot 3...
Il me permettra de connaitre la quantité de fichiers concernés par chaque lots.

Est-ce plus clair ?
 

gosselien

XLDnaute Barbatruc
Re : Extraire données l'une liste

pas sûr de comprendre encore...

si on parcours la colonne désignation, comment trouver LOT1-Lot2 dans cette désignation ? etc... c'est le numéro de la colonne "n°" qui est le lot ?
dans le tableau vert, il faut déplacer dans un onglet les données de num 002-003 etc dans un onglet nommé 002 et un autre 003 ?
si tu exposais avec un court exemple de ce que tu veux au final, ça serait plus facile pour tous :)
 
Haut Bas