Macro pour passer des données dans un "filtre" et en extraire les résultats

Bonjour à tous,

J'aimerais automatiser un fichier à l'aide d'une macro.

Mon but est d'aller chercher les fichiers Stock et Extraction du même jour qui sont dans deux dossiers différents.

Ils ont ensuite chacun un onglet qui leur correspond dans un filtre, l'onglet "Extraction" et l'onglet "Stock".

Il y a ensuite un tas d'opération à faire que j'ai déjà automatisé à l'aide d'une macro que je collerai dans la boucle.

Je veux ensuite récupérer mes résultats obtenus avec le stock et l'extraction du jour pour faire un copier coller de valeur dans un autre fichier. Un onglet de ce fichier correspondrait alors à un jour donc un fichier stock et un fichier extraction.

Je voudrais donc pouvoir automatiser pour plusieurs jours de fichier Stock et Extraction.

Je vous joins ce que j'ai déjà pu produire.

Je bloque sur comment définir l'onglet sur lequel copier et coller les différentes valeurs.

Et comment copier les résultats et les coller dans un autre fichier tout un créant un nouvel onglet pour les résultats.

De plus, je ne suis pas sur que dans mon code les fichiers Stock et Extraction seront bien du même jour.

Merci d'avance !

Rebonjour,

Je me permets de faire remonter mon sujet étant donné que je n'ai pas eu de réponse.

Hello,

Commençons par le commencement. As tu testé ton code ?

Tu ne rentres pas dans ta boucle while avec ce code :

    chemin_stock = ThisWorkbook.Path & "\Stock\"
    chemin_extraction = ThisWorkbook.Path & "\Extraction\"
    chemin_bilan = ThisWorkbook.Path & "\"

    nomFichier_stock = Dir(chemin_stock & "*.csv*")
    nomFichier_extraction = Dir(chemin_extraction & "*.csv*")

    Do While Len(nomFichier_stock) > 0

donc avant :

Je bloque sur comment définir l'onglet sur lequel copier et coller les différentes valeurs.

Et comment copier les résultats et les coller dans un autre fichier tout un créant un nouvel onglet pour les résultats.

Reparons l'existant.

Si j'ai bien compris, tu veux ouvrir tous les fichiers des dossiers "STOCK" & "EXTRACTION", c'est bien ça ?

Si oui, tu as plusieurs façon de le faire, si je suis ton raisonnement, la + simple façon serait comme ceci :

    'Traitement du dossier STOCK
    chemin_stock = ThisWorkbook.Path & "\Stock\"
    nomFichier_stock = Dir(chemin_stock & "*.csv")
    Do While Len(nomFichier_stock) > 0
        ' Du code ici pour traitement des fichiers présents dans le dossier STOCK
        ' Du code ici pour traitement des fichiers présents dans le dossier STOCK
        ' Du code ici pour traitement des fichiers présents dans le dossier STOCK
        nomFichier_stock = Dir()
    Loop

    'Traitement du dossier EXTRACTION
    chemin_extraction = ThisWorkbook.Path & "\Extraction\"
    nomFichier_extraction = Dir(chemin_extraction & "*.csv")
    Do While Len(nomFichier_extraction) > 0
        ' Du code ici pour traitement des fichiers présents dans le dossier EXTRACTION
        ' Du code ici pour traitement des fichiers présents dans le dossier EXTRACTION
        ' Du code ici pour traitement des fichiers présents dans le dossier EXTRACTION
        nomFichier_extraction = Dir()
    Loop

Essaye d'adapter ton code avec ce code et si tu as d'autres soucis repost

Bonjour Rag,

Merci pour ta réponse.

J'ai réussi à entrer dans la boucle, mon problème est que le traitement de données ne peut pas se faire par fichier, je dois les associer pour les traiter. Il faudrait donc que je copie les données des stocks et de l'extraction des jours correspondants.

Sub recup_fichier_et_traitement()
'
' recup_fichier_et_traitement Macro
'

Dim CD As Workbook 'déclare la variable CD (Claseur Destination)
Dim OD_Stock As Worksheet 'déclare la variable OD (Onglet Destination) pour le stock
Dim OD_Extraction As Worksheet 'déclare la variable OD (Onglet Destination) pour l'extraction
Dim CA_Stock As String 'déclare la variable CA (Chemin d'Accès) pour le stock
Dim CA_Extraction As String 'déclare la variable CA (Chemin d'Accès) pour l'extraction
Dim F As String 'déclare la variable F (Fichiers)
Dim DR As Long 'déclare la variable DR (Date de Référence)
Dim DM As Long 'déclare la variable DM (Date Maximum)
Dim CS_Stock As Workbook 'déclare la variable CS (Classeur Source) pour le stock
Dim CS_Extraction As Workbook 'déclare la variable CS (Classeur Source) pour l'extraction
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim Somme As Integer

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD_Stock = CD.Sheets("Stock") 'définit l'onglet destination OD
Set OD_Extraction = CD.Sheets("Extraction")

CA_Stock = CD.Path & "\Stock\" 'définit le chemin d'accès CA pour le stock
CA_Extraction = CD.Path & "\Extraction\" 'définit le chemin d'accès CA pour l'extraction
CA_Final = CD.Path & "\Bilan\"

'Fichier_extraction = Dir(CA_Extraction & "*.csv")
'Fichier_final = Dir(CA_Final & "*.xlsx")
Fichier_Stock = Dir(CA_Stock & "*.csv") 'le dir prend en compte le dernier dir

Somme = 0

Do While Len(Fichier_Stock) > 0 'tant qu'il y a des fichiers dans le dossier on continue la boucle

    Sheets("Stock").Range("A:AH").Clear
    Sheets("Extraction").Range("A:AH").Clear
    'Code pour traitement des deux fichiers

    Fichier_Stock = Dir()

Loop
End Sub

Pour l'instant je suis là dessus mais je bloque sur le fait d'aller chercher dans 2 fichiers différents les données. Une fois que j'arriverais à pointer ces fichiers un simple copier coller me suffirait.

Hello,

je dois les associer pour les traiter. Il faudrait donc que je copie les données des stocks et de l'extraction des jours correspondants.

Pour faire quoi après ? Les 2 fichiers sont différents , je ne vois pas comment tu vas exploiter ça si tu "colles" les 2 tableaux les uns en dessous des autres.

Rechercher des sujets similaires à "macro passer donnees filtre extraire resultats"