Extraction de données + transfert auto sur 1 autre feuille

Bonjour à tous,

Ce classeur de présence se peaufine grâce à vous et je vous en remercie encore.

Il me reste une chose à mettre en place et j'en suis incapable, malgré de nombreux essais, mais je n'ai pas la connaissance pour :

En colonne E (masquée) j'ai un "X" qui s'affiche lorsque des personnes arrivent en retard.

J'aimerais quotidiennement extraire ces retards et les reporter sur la feuille nommée "retard".

Avec le filtre avancé, ça ne fonctionne pas, peut-être à cause des colonnes masquées

Mais de toutes façons, j'aimerais éviter de devoir compiler les retard quotidien dans la feuille retard. On doit pouvoir automatiser ça non ? Une macro peut-être ?

Milles mercis pour votre aide

Avec mes meilleurs messages

Serji

38presence-test2.xlsx (22.56 Ko)

Bonjour, j'ai fais votre macro mais j'ai modifié un peu vos feuilles pour qu'elle puisse fonctionner. ctrl + q pour generer la liste des vilains retardataires !

Bonjour Force Rouge

Je suis impressionné avec quel aisance vous faites ça ! ça me décourage aussi un peu, parce que j'imagine bien la maitrise qu'il y a derrière et donc l'étude que ça demande. Et je ne suis pa convaincu d'y arriver un jour :-/

Les entêtes que j'ai mis vous gênent apparemment. Je peux faire sans, mais nous aimons bien les "en-tête" huhu

qu'est-ce que la colonne "2345" s'il vous plaît ?

En tout milles mercis pour votre précieuse aide. J'ai un cours macro mardi prochain, je vais demander à la prof si on peut étudier la votre (mais je pense que ce sera trop élaboré pour le programme des newbies que nous sommes )

Sincèrement

Serji

Salutation Sergi...Euh...pas tant d'éloge svp ! l'aisance s'acquiert avec le temps et la pratique...

colonne 2345 et l'autre à côté correspondent a vos colonnes E et F qui sont masquées. Avec excel-vba il faut éviter de laisser des champs vide dans les entêtes sa peu créer des incidents..

Ma macro est très simpliste donc ne vous inquiétez pas, votre professeur saura vous aider !

Simpliste ? Lorsque je l'a lis, je vois des idéogrammes chinois

Bien compris pour la colonne 2345.

J'ai passé la cinquantaine, je ne suis pa ssur d'avoir encore les facultés intellectuelles pour me mettre à fond dans excel quand je vois toutes ces formules

Encore merci à vous,

Tout de bon et au plaisir

oué j'suis d'accord avec vous, c'est plus de votre âge toutes ses bestioles là! Ceci dit, j'vais tenter au moins de vous faire comprendre la démarche globable avec les commentaires en vert...

Sub retard()
Application.ScreenUpdating = False
'annule la visibilité des vas et viens entre chaque feuille
Sheets("Retard").Range("a2:j65536").ClearContents
'j'éfface la feuille retard
    Dim dl&, i%, j%
    'je déclare les variable en spécifiant le type de données qu'elles vont contenir
    For j = 1 To Sheets.Count
    ' je dis que mon traitement va se faire de la feuille 1 au nombre de feuille présente dans le classeur (sheets.count compte le nombre de feuille)
        If Sheets(j).Name <> "Retard" Then
        'si le nom de la feuille que je selectionne est different de Retard alors
            Sheets(j).Activate
            'j'active la feuille au premier plan
            dl = Sheets(j).Range("a" & Rows.Count).End(xlUp).Row
            'je repère la dernière ligne non vide afin de ne pas travailler sur 272 000 ligne vide qui ne servirait à rien
            For i = 2 To dl
            'pour une valeur de i = 2 a i = dernière ligne non vide
                Sheets(j).Activate
                'ici j'ai fait une boulette car ma feuille j je l'ai déjà activé plus haut!
                If Sheets(j).Range("e" & i) <> "" Then
                'si sur ma feuille la cellule E2 (E2 car i = 2 donc Range("e" & i) se lit Range("e" & 2) soit Range("e2") est different de rien (donc s'il y a un x c'est different de rien) alors
                    Range("a" & i & ":j" & i).Copy
                    'je copie la plage a2:j2
                    Sheets("retard").Range("a" & Sheets("Retard").Range("a" & Rows.Count).End(xlUp).Row + 1) = Sheets(j).Name 'dans ma feuille retard, dans la permière ligne vide de la colonne A je colle le nom de la feuille que j'analyse qui est finalement la date de l'absence
                    Sheets("Retard").Range("b" & Sheets("Retard").Range("b" & Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlValues 'dans la première cellule vide de la colonne B je colle la plage que j'ai copié (Range("a" & i & ":j" & i).Copy)
                End If
                'fin de la condition si il y a un x dans la colonne E

            Next
            'j'ajoute 1 à la valeur de i. i était égale à 2 ( For i = 2 To dl) est maintenant i est égale à 3 pour que la boucle se répète et analyse chaque ligne consécutivement
        End If
        'fin de la condition si la feuille sur laquelle on travaille <> de retard
    Next
    ' j'augemente la valeur de j de 1 pour que la macro recommence avec la feuille d'après
    Sheets("Retard").Activate
    'j'active ma feuille retard pour voir le résultat
End Sub
'je clôture ma macro

La générosité de votre fichier en dit long sur votre caractère et reflète toute l'attention bienveillante que vous personnifié par votre avatar. J'apprécie infiniment le temps que vous prenez pour aider et pour faire comprendre. Très touché.

Je le montrerais mardi à la classe si ma prof le permet. Milles mercis. Peut-être pourrais-je un jour vous apporter mon aide pour concocter quelques gourmandises ; je suis cuisinier

Une très belle journée à vous et un excellent week-end aussi

Sincèrement

Serji

C'est pas obligatoire de gratifier car on fait de l'aide gratuite mais si vous y tenez réellement (ce que je peux comprendre car le plaisir de récompenser est aussi bénéfique que celui de recevoir, à l'occasion donnez moi des idées de repas TRES diététique avec vraiment un minimum de graisse saturée. Depuis...dirat-on "un accident de parcours" je dois faire attention à beaucoup de chose y compris mon alimentation

PAreilement, bon week-end !

Je vous ai envoyé un petit MP

Rechercher des sujets similaires à "extraction donnees transfert auto feuille"