Demande aide pour finalisation projet

harkoko

XLDnaute Nouveau
Bonjour,
J’ai besoin d’aide pour finaliser ma macro. Le principe est le suivant :
• J’ouvre un Fichier « Fl1 » (tableur Excel). Sur la « feuil1 » de ce fichier il y a des informations que je récupère, copie et colle dans une zone de la « feuil2 ». Je supprime ensuite les doublons. Il en résulte une colonne de N données chacune différente. Pour la compréhension je vais appeler ces données « résa ». Il peut y avoir un nombre important (1000) de ces « résa ».
• J’ouvre un fichier « Fl2 » (Tableur Excel) dans lequel je faire une recherche de chacune de ces résa, ce qui me renvoi à une ligne, et extraire une information qui se trouve dans une des cellules de cette ligne. Je vais appeler cette information « RF »
• Je récupère cette information et la colle dans le fichier « FL1 » à coté de mon numéro de résa

Ce que je n’arrive pas à faire:
• Etant donné que j’ai deux fenêtres ouverte et que ces fenêtre peuvent porter n’importe qu’elle nom, je souhaite que ma macro associe le nom du premier fichier ouvert à « FL1 » et le nom du deuxième fichier ouvert à « FL2 ». Ainsi ma macro s’adapte à n’importe quel nom de fichier et je peux mettre en place ma boucle pour la recherche.
• Pour faire la recherche je souhaite mettre en place une boucle car je n’arrive pas à mettre en place un filtre personnalisé avec un grand nombre de donnée. J’ai toujours le problème de renvoi entre les deux fichiers et je ne sais pas comment faire étant donné que ce que je recherche dans Fl2 peut prendre n’importe quelle valeur.

A suivre ma MACRO. Merci par avance pour votre aide


Sub Macro1_Test()

'Macro1_Test Macro
Dim DLig As Long, Sht1 As String, Sht2 As String, Fl1 As String, Fl2 As String

'Initialiser les variables
Sht1 = "Feuil1": Sht2 = "Feuil2"

'Va chercher le fichier à trier Fl1 = Extraction 018
fileToOpen = Application.GetOpenFilename()
Workbooks.OpenText Filename:=fileToOpen

Selection.AutoFilter

'Trouver le numéro de la dernière ligne utilisée
DLig = Sheets(Sht1).Range("A" & Rows.Count).End(xlUp).Row

'Filtrage de la colonne 8 (Colonne N° Articl) en gardant uniquement les cases remplient
Sheets(Sht1).Range("$A$1:$AA$" & DLig).AutoFilter Field:=8, Criteria1:="<>"
Sheets.Add After:=Sheets(Sheets.Count)
'Compte le nombre de ligne de la FEUIL1 après filtrage et SANS LES DOUBLONS et écrit le résultat (Nrb Article) dans la case C6
Sheets(Sht2).Range("C6").Value = _
Application.Evaluate("SUMPRODUCT(1/COUNTIF(" & Sht1 & "!H2:H" & DLig & "," & Sht1 & "!H2:H" & DLig & "))") - 1

'RECUP NUMERO COMMANDE CLIENT CODES ROUGES
'Tri de la colonne 2 en gardant toutes les cases en R10 et R20 !!! DONC NE TENT PAS COMPTE DES R99!!
Sheets(Sht1).Range("$A$1:$AA$" & DLig).AutoFilter Field:=2, Criteria1:="R10", Operator:=xlOr, Criteria2:="R20*"

'Afficher la feuille 1 si on le souhaite
Sheets(Sht1).Activate

'copier les lignes ET SUPPRESSION DES DOUBLONS
Sheets(Sht1).Range("$A$1:$B$1" & DLig).Select
Selection.Copy
Sheets(Sht2).Select
Range("H2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Range("$H$2:$I$2" & DLig).RemoveDuplicates Columns:=Array(1, 2), Header _
:=xlYes

'Appel de la fontion pour retirer les anciens filtres
Call Enlever_Filtrage

'Va chercher le fichier à trier Fl2 = OCTL
fileToOpen = Application.GetOpenFilename()
Workbooks.OpenText Filename:=fileToOpen

'Appel de la fontion pour retirer les anciens filtres
Call Enlever_Filtrage

'Trouver le numéro de la dernière ligne utilisée
DLig = Sheets(Sht1).Range("A" & Rows.Count).End(xlUp).Row

'OCTL Tri de la colonne U (NUMERO COMMANDE CLIENT) gardant toutes les cases qui commence F
Sheets(Sht1).Range("$A$1:$AA$" & DLig).AutoFilter Field:=21, Criteria1:="F*"

'Selection de la première fenêtre ouverte soit la fenêtre FL1 <---- BESOIN AIDE ICI. Comment faire en sorte que la fenêtre active soit la première fenêtre ouverte soit Fl1



'Selection Première cellule et copie de la valeur de la cellule <---- BESOIN AIDE ICI
'Trouver le numéro de la dernière ligne utilisée
DLig = Sheets(Sht2).Range("H" & Rows.Count).End(xlUp).Row

'DEBUT BOUCLE <--- BESOIN AIDE ICI. Première valeur en H3. Dernière Valeur en DLig. Comment faire la boucle ?
Range("H3").Select
Selection.Copy
Windows(Fl2).Activate '<---- en réalité ma fenêtre ne sappel pas FL2..
Cells.Find(What:="F200028363", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("C210").Select
Selection.Copy
Windows(Fl1). _
Activate '<---- en réalité ma fenêtre ne sappel pas FL1..
Range("J3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
'FIN BOUCLE

End Sub
Private Function Enlever_Filtrage()
Dim Sh As Worksheet

For Each Sh In Sheets
With Sh
If .FilterMode Then
.ShowAllData
End If
End With
Next Sh

End Function
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Demande aide pour finalisation projet

Bonjour harkoko,

Pour augmenter vos chances de réponse, il est fortement recommandé de fournir un fichier exemple:
  • Non pas un fichier complet mais un "petit" fichier extrait de votre fichier de travail en ne conservant que quelques lignes par feuille.
  • Fichier expurgé de toutes données nominatives et confidentielles.
  • Avec une feuille montrant le résultat souhaité et avec les explications qui vont bien.

Pour joindre un fichier:
Quand vous rédigez un nouveau message ou quand vous modifiez un de vos messages, passez en mode avancé et cliquez sur 'Gérer les pièces jointes' ou bien cliquez directement sur l'icone 'Trombone'.
Choisissez vos fichiers (boutons Choisir un fichier), cliquez sur envoyer (bouton envoyer) pour les charger, quand ils sont chargés (les noms des fichiers s'affichent en couleur) refermez la fenêtre (bouton Fermer cette fenêtre) puis cliquez sur 'envoyez...' ou 'enregistrer les changements'.

NB: dans votre cas, deux fichiers (un de chaque type) seraient les bienvenus (avec les codes).
 

harkoko

XLDnaute Nouveau
Re : Demande aide pour finalisation projet

Je mets en PJ les 3 fichiers à savoir la Macro à finaliser et les fichier Fl1 et Fl2 sur lesquels je souhaite récupérer des informations.
 

Pièces jointes

  • Maco Test Recup RF.xlsm
    20.2 KB · Affichages: 52
  • Fl2.xlsm
    375.3 KB · Affichages: 53
  • Fl1.xls
    467.5 KB · Affichages: 57
Dernière édition:

Discussions similaires