Filtrer les données selon un numéro de semaine

Bonjour à tous,

Je suis dans une impasse avec mon tableau de stats.

Je souhaiterai filtrer une séries de données selon un Numéro de semaine.

L'idée étant d'obtenir le nombres de m² confectionnés selon le numéro de semaine indiqué.

Vous trouverez le fichier type en pièce jointe.(

9fichier-test.xlsx (528.77 Ko)

)

Merci d'avance pour votre aide.

Bonne journée.

Cordialement.

Bonjour,

Ce serait tellement plus simple de faire la gestion sur un seul onglet pour pouvoir faire des Tableaux croisés dynamiques à des fins de statistiques.

12fichier-test-1.xlsx (302.68 Ko)

Merci pour votre retour rapide.

L'idée est là merci beaucoup, j'ai juste une problématique, c'est que chaque opérateurs possèdent son propre classeur (Fichier Excel).

Comment puis-je récupérer les informations des deux classeurs sur une même feuille?

Cordialement.

Bonjour,

D'accord avec Xmenpl bien sûr !

Maintenant le sujet est un peu différent !

Option Explicit

    Dim wbk1 As Workbook, wbk2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim rng1 As Range, rng2 As Range

    Dim chemin$, monFichier$, onglet$

Sub collecter()

    ' à modifier ...
    chemin = ThisWorkbook.Path & "\opé\"

    Set wbk1 = ThisWorkbook
    Set ws1 = ActiveSheet
    ws1.Cells(1).CurrentRegion.Offset(3, 0).ClearContents
    monFichier = Dir(chemin & "*.xlsx")

    Do While monFichier <> ""
        Set wbk2 = Workbooks.Open(chemin & monFichier)
        Set ws2 = ActiveSheet
        Set rng2 = ws2.Cells(1).CurrentRegion
        rng2.Offset(3).Resize(rng2.Rows.Count - 1, rng2.Columns.Count).Copy
        Set rng1 = ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        rng1.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        Set rng1 = rng1.Resize(rng2.Rows.Count - 1, 1).Offset(0, rng2.Columns.Count)
        rng1 = wbk2.Name
        Application.CutCopyMode = False
        wbk2.Close False
        monFichier = Dir
    Loop

    ws1.Cells(1).CurrentRegion.Offset(Cells(Rows.Count, 1).End(xlUp).Row, 0).ClearContents
    ws1.Columns(10).Replace What:=".xlsx", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    ws1.Cells(1).Select

End Sub
3zkaw.zip (311.75 Ko)

Bonjour,

Merci beaucoup pour cette réponse qui est pour un novice comme moi extraordinaire soyons franc.

J'ai adapté le code à mon fichier final, cependant lorsque je clique sur IMPORTER, les infos arrivent par petit bout, je suis obligé de cliquer plusieurs fois dessus pour avoir l'ensemble de mes données. Y'a t'il un moyen de filtrer tout d'un seul coup?

Autre question, l'import supprime toutes les données précédemment obtenues, est il possible de garder en mémoire les données importées la première fois et d'ajouter dans le tableau seulement les nouvelles?

Merci pour votre retour.

J'ai adapté le code à mon fichier final, cependant lorsque je clique sur IMPORTER, les infos arrivent par petit bout, je suis obligé de cliquer plusieurs fois dessus pour avoir l'ensemble de mes données. Y'a t'il un moyen de filtrer tout d'un seul coup?

étonnant !! est-ce que c'était le cas chez toi avec le fichier zip que j'avais posté ?

et tu cliques sur quoi ?

Autre question, l'import supprime toutes les données précédemment obtenues, est il possible de garder en mémoire les données importées la première fois et d'ajouter dans le tableau seulement les nouvelles?

oui c'est possible, il suffit d'enlever l'instruction
ws1.Cells(1).CurrentRegion.Offset(3, 0).ClearContents

Bonjour,

Non effectivement sur ton fichier je n'avais pas le même problème, c'était fluide est instantané.

Voici ton fichier que j'ai modifié pour l'adapté à mon lien ainsi que les fichiers des opérateurs.

4zkaw.rar (848.10 Ko)

Merci d'avance.

Le problème est que le n° d'affaire n'est pas toujours renseigné !

Je n'ai pas à cliquer entre temps !

Par contre je n'avais pas toutes les infos car il manquait des n° f'affaire.

Change la macro par ceci. Remets à jour ton chemin chemin = "C:\Users\Michel\Downloads\zkaw\zkaw\zkaw\FJC\"

Option Explicit

    Dim wbk1 As Workbook, wbk2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim rng1 As Range, rng2 As Range

    Dim chemin$, monFichier$, onglet$

Sub collecter()

    ' à modifier ...
    chemin = "C:\Users\Michel\Downloads\zkaw\zkaw\zkaw\FJC\"

    Set wbk1 = ThisWorkbook
    Set ws1 = ActiveSheet

    monFichier = Dir(chemin & "*.xlsx")

    Application.ScreenUpdating = False
    Do While monFichier <> ""
        Set wbk2 = Workbooks.Open(chemin & monFichier)
        Set ws2 = ActiveSheet
        Set rng2 = ws2.Cells(Rows.Count, 2).End(xlUp).CurrentRegion
        rng2.Offset(1, 0).Resize(rng2.Rows.Count - 1, rng2.Columns.Count).Copy
        Set rng1 = ws1.Cells(Rows.Count, 2).End(xlUp).Offset(1, -1)
        rng1.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        Set rng1 = rng1.Resize(rng2.Rows.Count - 1, 1).Offset(0, rng2.Columns.Count)
        rng1 = wbk2.Name
        Application.CutCopyMode = False
        wbk2.Close False
        monFichier = Dir
    Loop
    Application.ScreenUpdating = True

    ws1.Cells(1).CurrentRegion.Offset(Cells(Rows.Count, 1).End(xlUp).Row, 0).ClearContents
    ws1.Columns(10).Replace What:=".xlsx", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    ws1.Cells(1).Select

End Sub

Merci beaucoup pour ton aide.

Cordialement.

de rien ...

Bonjour,

Après utilisation, j'ai juste le même problème de données qui se cumulent dans le tableau après chaque "IMPORTER"

Par rapport au derniers code que tu m'as transmis y'a t'il une ligne particulière en enlever pour éviter ça?

Merci pour ton retour.

Cordialement.

Après utilisation, j'ai juste le même problème de données qui se cumulent dans le tableau après chaque "IMPORTER"

Par rapport au derniers code que tu m'as transmis y'a t'il une ligne particulière en enlever pour éviter ça?

je pensais que c'est ce que t avais demandé ici :

Autre question, l'import supprime toutes les données précédemment obtenues, est il possible de garder en mémoire les données importées la première fois et d'ajouter dans le tableau seulement les nouvelles?

mais j'avais mal compris ...

je pense que le mieux est de refaire la compilation de tous en repartant de zéro ?

ajoute dans ce cas

ws1.Cells(1).CurrentRegion.Offset(3, 0).ClearContents

juste avant

monFichier = Dir(chemin & "*.xlsx")

maintenant s'il fallait conserver des données déjà importées et modifiées dans la compilation, cela va être beaucoup plus complexe !

Rechercher des sujets similaires à "filtrer donnees numero semaine"