Afficher si date fin appartient mois en cours
RésoluCo_nexion Messages postés 333 Statut Membre -
Je me permet une nouvelle incursion pour solliciter votre aide.
Je souhaite que lorsqu'un contrat arrive à son terme dans le mois en cours celui-ci s'affiche dans la listbox du userform2. Mais que les contrats encore en cours à la fin du mois ne s'y affiche pas.
De plus il faudrait qu'en selectionnant une des personnes, je puisse faire des ajouts sur la ligne excel correspondant à la personne.
C'est pas très clair et pour cela que j'ai monté ce petit fichier car les mots n'expliquent pas mieux qu'un bon exemple (en espérant qu'il soit assez clair)
https://www.cjoint.com/?BEwroScKv35
Merci d'avance pour votre aide et n'hésitez pas si vous souhaitez plus de précisions
Actuellement, je suis sous excel 2003 mais il faudrait que cela marche idéalement sur les versions ultérieurs.
12 réponses
Le fil porte sur l’affichage, dans une liste associée à un formulaire Excel, des contrats arrivant à échéance au mois en cours et l’édition de leur ligne correspondante. Plusieurs solutions visent à filtrer par date de fin pour n’afficher que ceux terminant ce mois, en excluant les contrats encore en cours au-delà du mois. D’autres propositions prévoient d’utiliser ListView, de trier les données et d’alimenter le ListBox, ou de copier les informations sur une feuille dédiée pour faciliter le tri et la mise à jour. D’autres propositions visent à verrouiller les actions jusqu’à ce qu’un contrat arrive en fin et à corriger des bugs lors de la réentrée d’un nom.
-
Bonjour,
Ou de contourner le problème. C'est à dire que lorsqu'on selectionne le dernier nom de la listbox et que l'on se retrouve sur le userform3 (avec les textbox), le bouton valider ne te renvoie plus au userform2 mais au userform1.
C'est fait
https://www.cjoint.com/?BFdjvil6cZH
Et du coup que sur le userform_accueil, le command button (cdd en fin de contrat) ne soit plus cliquable, tant qu'une nouvelle personne n'est pas en fin de contrat.
Je regarde cette option.
A bientot-
Re,
Et du coup que sur le userform_accueil, le command button (cdd en fin de contrat) ne soit plus cliquable, tant qu'une nouvelle personne n'est pas en fin de contrat.
C'est fait (code par vraiment optimise), y compris a l'ouverture du fichier.
https://www.cjoint.com/?BFdjTtPAHkA
A bientot -
-
Bonjour,
J'ai fait des test en copiant un enregistrement du 01/06/2012 apres avoir vide la liste et cela marche. Dans quelle(s) condition(s) cela ne marche pas?
Je viens de faire un essai avec un nouveau CCD fin de contrat au 04/06 , le bouton Modif... est accessible et je le trouve bien dans la liste Fin_CDD
A+ -
-
-
-
Bonjour à tous,
Ma question est-elle incompréhensible ? Besoin de précisions ? -
Bonjour,
Faire le tri pour la listBox, pas de probleme, mais vous perdez les titres de colonnes.
Il y a bien la solution de mettre des labels avec le texte des titres, mais s'il y a une barre de defilement horizontale cela ne la fera pas.
Une solution envisageable: copier les infos dans une autre feuille ou dans une zone qui ne posera pas de probleme (RAZ en fin d'utilisation), faire le tri et donner la plage de cellules en RowSource par programme a la listBox.
Qu'en pensez vous? -
Re,
Pour le fun ,une version avec listview
https://www.cjoint.com/?BEyoQsqQjKP
Transposez le code dans votre fichier et regarder pour recuperer les infos que vous voulez transferer sur une autre UF.
Bon courage -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour f89,
Super l'affichage en list1, c'est exactement ce que je cherche.
J'essaie d'adapter ce code et je me heurte à certains problème.
TOUT d'abord faut-il forcement une listview ou une listbox peut faire l'affaire ?
Je ne comprends pas l'utilisation de la 2e listbox ?
Concernant ta question du premier poste : Afficher les données sur une autre feuille il n'y a pas de problème, si cela peut simplifier.
Serait-il possible de pouvoir sélectionner les données de la listbox1 (via par exemple un bouton comme mis dans mon exemple précédent ? (si c'est le but de la seconde list je ne l'ai pas bien compris)
Merci -
Re,
TOUT d'abord faut-il forcement une listview ou une listbox peut faire l'affaire ?
Non si:
</ital>Concernant ta question du premier poste : Afficher les données sur une autre feuille il n'y a pas de problème, si cela peut simplifier.
<ital>Je ne comprends pas l'utilisation de la 2e listbox ?
Juste pour montrer l'affichage des infos selectionnes dans listView1
Avantage ListView: Entete de colonnes sans soucis, ajustement largeur colonne a la souris, couleurs possibles et un objet de plus de connu.
A+ -
Bonjour le forum et f89,
Merci de ton aide cependant là je touche mes limites...
En effet, j'ai un mal fou à adapter ton code à mon fichier. Ne pourrait-tu pas faire plus simple (sans la deuxieme listview), car j'ai moi même essayer et réussi cependant des petits défauts de mise à jour et de doublon s'installe dans ma version !
Bref j'en ch... depuis ce matin mais sans grandes avancées -
Enfin du coup plutôt avec une listbox que je maitrise mieux
-
-
Re,
Quelques problèmes dans l'adaptation du code
Tout d'abord lorsque je veux selectionner une ligne du tableau la macro bug sur la ligne en gras
Private Sub ListBox1_Click() Nom_Select = ListBox1.Column(1, ListBox1.ListIndex) NbJPresTot = ListBox1.Column(8, ListBox1.ListIndex) NbJPris = ListBox1.Column(7, ListBox1.ListIndex) NumLigne = ListBox1.Column(14, ListBox1.ListIndex) End Sub
Et je me demande si cela n'a pas un lien avec ce "x" que je n'arrive pas à identifier'Copie donnees pour tri et listbox Worksheets("CDD_Fin_de_Contrat").Range("A2:M" & DCLA) = Worksheets("CDD").Range("A2:M" & DCLA).Value 'Mois pour test Mois_Courant = Format(Date, "mm") 'Pointeur pour recherche x = 2 Rangee = 2 Worksheets("CDD_Fin_de_Contrat").Activate With Worksheets("CDD_Fin_de_Contrat") Do While .Cells(x, "G") <> "" If Format(CDate(.Cells(x, "G")), "mm") <> Mois_Courant Then Rows(x & ":" & x).Delete xlUp x = x - 1 Else .Range("N" & x) = Rangee End If x = x + 1 Rangee = Rangee + 1 Loop 'pour la dernière ligne de la colonne A DCLA = .Range("A" & Rows.Count).End(xlUp).Row ListBox1.RowSource = "=CDD_Fin_de_Contrat!A2:M" & DCLA End With
"Pas compris pour TextBox2: Nombre de jours pris (à remplir manuellement et alimente colonne I)
J'ai pris les infos Nb de jours mensuel pour faire les tests."
En fait, il s'agit de rajouter un nombre qui n'était pas encore inscrit (il correspond en fait aux jours de congés pris sur la durée du contrat de travail) d'ou le fait de le rentrer dans une colonne encore vierge ( la I)
J'espère avoir eclairci ce point, et j'ai tenté de modifier cela dans le code mais peut être est-ce la aussi un des facteurs du problèmes.
Si tu as besoin de mon fichier avec ton code retravaillé, je te le fournirais.
Merci par avance pour tes explications -
Re,
Pour les colonnes des cellules a modifier vous ferez la modif parce que je ne vois pas quoi prendre.
https://www.cjoint.com/?BEEsLIOHkwS
A suivre -
Re F89,
Comme tu t'en doutais surement, je reviens vers toi pour quelques problemes.
Tout d'abord le fichier que j'ai retravaillé : https://www.cjoint.com/?BEFmjz4oPYq
Alors commençons par le plus simple : j'ai rajouté dans le UF1 sous la commande private sub commandbutton1_click()
textbox2.text = clear
Cependant quand je ferme le UF il un bug sur cette ligne. Surement tout bête...
Ensuite j'ai du supprimé une ligne sur le UF2 (que j'ai mis en commentaire) car sinon la date en G m'affichait 01/01/1900.
Celle-ci permettais notamment de retirer la ligne de l'onglet CDD_fin de contrat.
Mais en fait j'aimerais un peu l'inverse.
C'est à dire que lorsque la ligne est modifier, elle soit supprimé de l'onglet CDD et apparaisse seulement sur l'onglet CDD fin de contrat. Ais je été assez clair ?
Jusqu'à maintenant pas d'autres découverte, et merci encore pour le coup de main-
-
Re,
C'est à dire que lorsque la ligne est modifier, elle soit supprimé de l'onglet CDD et apparaisse seulement sur l'onglet CDD fin de contrat. Ais je été assez clair ?
A quel endroit de CDD fin de contrat. Cet onglet a ete ajoute pour votre listbox. Si j'enleve la ligne de l'onglet CCD, celle-ci ne pourra pas apparaitre dans l'onglet CDD fin de contrat sauf si ce n'est pas pour la listbox.
Que fais je??? -
-
-
-