Problème d'assemblage de données

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

keychan

XLDnaute Nouveau
[Resolu]Problème d'assemblage de données

Bonjour,

Je découvre petit à petit excel et je me vois aujourd'hui confronté à un petit problème et je souhaite soliciter votre aide !!!


De manière générale
je souhaiterais récupérer des champs d'un premier fichier A selon certaines conditions,
récupérer d'autre données d'un 2ème fichier B sous d'autres conditions
et les réunir dans un 3ème fichier C.

Concrètement, dans mon exemple, je souhaiterai
Du fichier 1 : récupérer les champs decision id et data si et seulement si le statut est "valide"
Du fichier 2: récupérer le champ date uniquement pour les decision id récupérer précedemment ET avec un filtre sur la version la plus récente.​

Sur la pièce jointe j'ai mis les 2 premiers fichiers sous forme d'onglet mais dans mon cas ce sont des fichiers bien différents, appartenant à des workbooks bien différents.
De plus, j'ai mis en 3ème onglet le résultat que je souhaite obtenir.


En espérant que vous puissiez m'aider.

Merci encore !!!
 

Pièces jointes

Dernière édition:
Re : Problème d'assemblage de données

j'oublais ^^

pour la partie récuprération des données suivant la condition "valide" j'ai réussi à faire :

Code:
Sub test()
For Each cell In Range([B1], [B65356].End(xlUp))
If cell.Value = "valid" Then
r = cell.Row
c = cell.Column
cell.Offset(0, -1).Copy Sheets(3).Cells(r, c - 1)
End If

Next
For Each cell In Range([B1], [B65356].End(xlUp))
If cell.Value = "valid" Then
r = cell.Row
c = cell.Column
cell.Offset(0, 0).Copy Sheets(3).Cells(r, c)
End If

Next

For Each cell In Range([B1], [B65356].End(xlUp))
If cell.Value = "valid" Then
r = cell.Row
c = cell.Column
cell.Offset(0, 1).Copy Sheets(3).Cells(r, c + 1)
End If

Next
End Sub

mais j'ai vraiment besion de votre aide pour la 2eme partie ou il faut faire une reconnaissance de valeur suivi d'un max puis un offset...
Ca me parait simple mais je bloque au niveau de la reconnaissance des champs avant le max.
j'arrive à faire un max et un offset mais pas la condition pour définir le range
Code:
Set version = Range("[B]???[/B]")
v = Application.WorksheetFunction.Max(version)
        
For Each cell In Range([B1], [B65356].End(xlUp))
If cell.Value = v Then
r = cell.Row
c = cell.Column
cell.Offset(0, -1).Copy Sheets(3).Cells(r, c)
End If
        
Next

S'il vous plait aidez moi ^^
 
Re : Problème d'assemblage de données

Merci beaucoup pour ton aide !!! ca me permet d'avancer pas mal sur certains points!!!

Je suis toujours en train d'essayer d'adapter le code à mon exemple, une fois fini je préciserai que le problème a été résolu !
 
- 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

Réponses
1
Affichages
392
Réponses
16
Affichages
698
Retour