Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Bus77
  • 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 !

B

Bus77

Guest
Bonjour à tous,


Je suis débutant et pour commencer j'ai essayé de manipuler et de rechercher sur internet et sur ce forum des solutions sans succès jusqu'à présent, c'est pourquoi j'en appelle à votre solidarité.

Pour faire simple, j'aimerai une macro qui quand je clique dessus me demande une date, je la rentre et il me sort, sur un nouveau fichier excel, un extract de ma base principale avec toute les personnes commençant leur mission à cette date précise. Même démarche mais pour un mois en entier.

Est-ce possible ? Merci à tous, je suis dispo pour plus d'infos 😉!
 
Re : Macro Filtre

Bonsoir bus77 et bienvenue sur le forum.

Pour répondre à ta question : OUI, c'est possible !

Mais si tu veux que quelqu'un t'aide, il faut que tu nous mette ne ligne un fichier exemple de ce que tu souhaite avec la structure de ta base de données et des données non confidentielles.

A+
 
Re : Macro Filtre

Fred0o mais c'est exactement sa !

Mais je suis incapable de décrypter comment tu as fais...

Je vais essayer d'analyser le fichier un plus demain et je reviendrai vers toi pour te poser des questions plus précises 🙂, je veux apprendre 🙁! et pour te dire si sa marche en l'appliquant à ma base.

Un grand merci à toi, je vérifie sa demain si j'arrive à m'en sortir...cette étape fais partie d'un tout donc je vais voir si j'arrive à coller tout mes besoins par rapport à ma futur base^^🙄

Bus77.


EDIT: c'est possible de faire un autre macro mais de demander toute les embauches d'un mois précis au lieu d'une date d'arrivé spécifique ?
 
Dernière modification par un modérateur:
Re : Macro Filtre

Bon j'ai essayé de l'appliquer à une autre base et je n'y suis pas arrivé.

Comme je n'y connais rien, quel son les éléments variables dans le code ci-dessous (ce que je vais devoir changer d'une base à l'autre) et si j'ai juste une macro à créer avec ce code où si tu as fait autre chose (et oui je ne sais pas le voir sa 🙄...**honte**)

Option Explicit

Sub Extract()
Application.ScreenUpdating = False
Dim LaDate, i, OK, wbo, wbe
LaDate = CDate(InputBox("Date d'embauche :", "Date d'extraction"))
i = 2
OK = False
wbo = ActiveWorkbook.Name
While Range("D" & i) <> ""
If Range("D" & i) = LaDate Then
If Not OK Then
Rows("1:1").Copy
Workbooks.Add
wbe = ActiveWorkbook.Name
ActiveSheet.Paste
OK = True
ActiveCell.Offset(1, 0).Select
Windows(wbo).Activate
End If
Rows(i).Copy
Windows(wbe).Activate
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Windows(wbo).Activate
End If
i = i + 1
Wend
Application.CutCopyMode = False
Windows(wbe).Activate
Application.ScreenUpdating = True
End Sub

sa bloque sur Windows(wbe).Activate
-----

Fred0o, en plus de faire la même chose mais pour le mois (sélectionner toute les entrée du mois x), j'aimerai faire apparaitre un message d'erreur lorsque la date demandé ou le mois n'est pas référencée (à la place de la boite qui apparait de débogage)
Je ne sais pas si c'est possible et où le placer dans ton code...à la fin :s ?

Désolé de vous embêter, j'essai de comprendre pour me débrouiller tout seul mais comme je ne comprends pas ce que tu as fais ou plutôt à quoi chaque étape correpond dans ta macro....c'est dur 😱

Je te remercie pour tes éclaircissements maître Fred0o, puis-je être ton padawan😉^^?

@+Bus77
 
Dernière modification par un modérateur:
Re : Macro Filtre

Bonjour Bus77,

Je te fais une réponse rapide avant de repartir au boulot. J'ai pris en compte la gestion d'erreur sur les dates qui n'en sont pas et les dates n'existant pas dans ta base. J'ai aussi commencé à commenter la macro.

Si ça te convient, je continuerais ce soir.

A+
 

Pièces jointes

Re : Macro Filtre

merci pour ton aide de qualité Fred0o, sa me fais vraiment plaisir de savoir que l'entraide sur le forum marche bien 🙂...

J'ai regardé pour les erreurs ou les dates introuvables c'est parfait !! (mise à par qu'il faut automatiquement mettre une date pour sortir de la boite de dialogue dans le cas où j'ai cliquer sur la macro par erreur mais bon je vais pas faire le difficile vu dans l'état de détresse dans lequel je suis😀).

Pour ce qui est de la saisie d'un mois spécifique, je n'arrive pas à obtenir le résultat escompté peut être car je ne sais pas quoi mettre dans la boite pour indiquer le mois (j'ai changé une des dates 01/01/2011 en 15/01/2011 pour voir si sa marche pour janvier).

Sinon si tu as un peu de temps, mon principal problème est que je n'arrive pas à l'adapter à ma base réelle. J'ai lu tes commentaires mais c'est pas facile.

J'ai un petit projet de base excel, et voulant apprendre je me suis lancé dedans mais bon...c'est pas donné à tous 🙄, j'en suis qu'au début mais si j'arrive au bout de mon objectif, je devrais t'offrir des chocolats en cette période de fête^^😛...

Bus77.
 
Dernière modification par un modérateur:
Re : Macro Filtre

Bonsoir Bus77,

J'ai fait des modifs pour prendre en compte le recherche sur 1 mois mais c'est plus compliqué car il faut faire appel à des UserForms (USF) et de a gestion de dates. Dans cet exemple, je n'ai pas géré les années bissextiles.

Regardes si ça te convient et je t'expliquerais dans une prochaine étape.

Pour ce qui est de l'adaptation à ta base réelle, expliques-moi clairement ce qui te bloque pour l'adapter ou bien poste moi ta base réelle en enlevant les données confidentielles.

Bonne soirée.
 

Pièces jointes

Re : Macro Filtre

Fred0o je vais bientôt devoir ériger une statue à ton nom 😱 !

C'est vraiment dans l'esprit de ce que je souhaitais obtenir 🙄.

Concernant ces deux fonctionnalités, plus que deux choses:
1/ Réussir à les appliquer à ma vrai base.
2/ Est-ce possible dans la base V2 pour la macro par date spécifique, lorsque l'on clique sur le bouton de la macro et que la boite apparait que le bouton "annuler" fonctionne et ferme la boite ?

Pour ce qui est du 1er point, le mieux serait de me mettre en rouge (dans les codes) ce qui va être à modifier par rapport à mon autre base car pour l'instant je ne peux pas la joindre mais sinon de quoi aurais tu besoin au minimum pour travailler ? (Des titres des colonnes et de quelques données factices ? Au final je vais avoir plus de 1200 lignes d'après mes estimations sa change qqch dans les codes ?)

En gros ne comprenant pas grand chose, si je copie colle le code dans une macro de mon autre base bien sur, cela ne marche pas...
Par exemple, dis moi si je me trompe si mes données commencent à la ligne 5, je devrais mettre i = 5 au lieux de i = 2 c'est ca ?

Ou alors tu as mis:
If Range("D" & i) >= DateDeb And Range("D" & i) <= DateFin Then

Si ma colonne de date est en colonne P alors je fais:
If Range("P" & i) >= DateDeb And Range("P" & i) <= DateFin Then

C'est sa =s ?

En fait j'aimerai avoir en rouge tout ce qui va devoir s'adapter à ma nouvelle base...
Mais il y a des choses que je comprends pas, la macro bug sur:
Windows(wbe).Activate, c'est quoi sa ? wbe/wbo ??

On y est presque 😉 !!!!

Merci beaucoup pour ton dévouement !

Bus77
 
Re : Macro Filtre

Bonsoir Bus77,

Pour commencer, pas besoin de m'ériger une statue 😀. Je ne fais pas cela pour la gloire mais juste pour venir en aide à des EXCELnautes en difficulté.

Ensuite tu trouveras ci-dessous, la version V2Bis qui comporte ce que tu demandes dans le point 2.

Puis, je vois que tu commences à bien décrypter le code car en effet la valeur d'initialisation de i correspond à la première ligne de la base de données. et Range("D" & i) fait référence à la cellule "D2" pour le premier passage dans la boucle puisque i est initialisé à 2.

Je vais te commenter dans un autre post, le code pour te donner le plus d'éléments possibles.

Par contre, je ne comprends pas pourquoi chez toi ça plante sur Windows(wbe).Activate acr comme tu le vois dans ces lignes :
VB:
    wbo = ActiveWorkbook.Name           ' La variable wbo prend le nom du classeur actuel
...
...
   wbe = ActiveWorkbook.Name
les variables prennent le nom du classeur dans lequel tu te trouves : nom de ta vraie base pour wbo (WorkBookOrigine) et nom du nouveau classeur dans lequel on copie les lignes extraites poue wbe (WorkBookExtrait).

A+

Edit : En 2° pièce jointe le fichier V3_Commenté qui comme son nom l'indique comporte le code entièrement commenté, pour te permettre de l'adapter à ta vraie base de données.

A+
 

Pièces jointes

Dernière édition:
Re : Macro Filtre

J'ai testé la demande N°2 et sa marche parfaitement !!

Demain je me fais une petite cession pour voir si je peux tout adapter =) !

Je te tiens au courant sur la suite pour voir s'y j'y arrive.
Je pense vraiment que cela peut aider pas mal de monde, je n'ai pas trouvé d'aide similaire sur internet !!

Je sais qu'il ne faut pas abuser des bonnes choses mais en attendant de faire mes tests d'adaptation, j'aimerai te poser une autre question pour ne pas avoir à créer un autre topic pour l'instant:

Pour ma future base est-ce possible de faire un onglet stats où j'utilise une fonction (ou autre chose) pour obtenir des nombres.
(Je sais faire sa mais là ou je bloque c'est pour cumuler les conditions).

Situation:
Imaginons une colonne Cadre/Non Cadre....2 entreprises différentes...et des dates d'embauches...

Est-ce possible d'alimenter un tableau au mois avec comme condition "je veux le nombre de Cadres dans l'entreprise 1 embauchés au mois de janvier ?

Je te fais un petit Excel sur 2 onglets pour visualiser basiquement.

Au début je pensais à la fonction NB.SI ou NB.PROD mais je sais pas comment les cumuler. Et même si on peut, je ne pense pas que ce soit possible d'utiliser une variable qui est le mois.....et de l'updater en direct...
 

Pièces jointes

Dernière modification par un modérateur:
Re : Macro Filtre

RESULTAT DU TEST

Mon autre post reste d'actualité, j'en écris un autre car en parallèle et comme prévu, j'ai testé les deux macros sur ma base réelle.

Le résultat est le suivant:

Point + +
1/ J'ai réussi l'adaptation (enfin je crois 😀)
2/ Sa marche et le résultat au rendez-vous !!
3/ Utilisation simple pour l'utilisateur donc parfait

Point - - -
1/ Extrêmement lent à générer l'extract du mois pour l'utilisateur (2min45 et plante souvent mon excel). La macro date spécifique tourne autour des 30 sec.
2/ Système de recherche de date d'embauche caduque si à la place j'ai du texte ou une case vide.
= En effet sa brise la chaine de recherche.
(Hey Fred0o, ta vu que j'ai analysé tes commentaires et ta macro et même en comprenant rien j'ai compris sa, c'est un début non 😀 ? Tu ne t'ai pas casser la tête pour rien 😱 et je t'en remercie grandement)

D'où mes questions:
1/ Est-ce du à la structure de la macro et peut t'on faire quelque chose à propos de la lenteur. Il est évident que sur 4 lignes et 5 colonnes le résultat est explosif mais sur 1050 lignes et 60 colonnes sa pêche un peu.
2/ A propos du système pour les dates, est-ce l'unique moyen de recherche (je ne veux/peux pas alourdir encore plus 🙁 )?

Merci pour tout le temps que tu te dédies à m'aider Fred0o.
Les userforms ont du te prendre un temps fou 🙁...
 
Dernière modification par un modérateur:
Re : Macro Filtre

Bonsoir Bus,

Voilà dans un premier temps, ta demande sur les stats.

Pour ce qui est de la lenteur, je peux peut-être y faire quelque chose mais si ces précisions étaient venues dès le début, je n'aurais pas fait du développement pour rien.
Ensuite, même remarque pour les cellules vides, ce qui n'était pas précisé initialement. Je vais donc employer une autre méthode.

Dernier point, je ne fais pas du clé en main, donc comme tu as déjà commencé à le faire, décrypte les lignes de code pour pouvoir les adapter et surtout si tu as des questions ou des demandes complémentaires, sois le plus précis possible dans tes descriptions sachant qu'un fichier exemple TRES fidèle à l'original est le meilleur moyen d'éviter les erreur de compréhension.

A+
 

Pièces jointes

Re : Macro Filtre

Re-bonsoir Bus77,

Voici une version optimisée >>> ICI <<< Cette verion corrige les arrêts intempestifs sur les cases vides et les cases contenant d'autres données que des dates.

La vitesse est améliorée puisque chez moi (ça rame !) la macro met 19 s pour 5000 lignes et 36 s pour 10000 lignes.

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
G
Réponses
7
Affichages
1 K
gfgghbhg
G
O
Réponses
1
Affichages
898
Olocsob
O
C
Réponses
8
Affichages
999
ClairePec
C
Réponses
2
Affichages
671
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…