Afficher si date fin appartient mois en cours

Résolu
Co_nexion Messages postés 333 Statut Membre -  
Co_nexion Messages postés 333 Statut Membre -
Bonjour à tous,

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

Résumé de la discussion

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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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
      0
    2. Co_nexion Messages postés 333 Statut Membre
       
      Bien le bonjour,
      Et merci pour ces deux fichiers.

      Cependant, il y a un bug sur le second lorsque tu rerentre un nom (après que la boite ait été vidé) tu ne peux plus selectionné la ligne pour la modif.

      Si ca ne marche pas tant pis, je prendrais le premier qui est déjà une belle réussite ;)
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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+
      0
    4. Co_nexion Messages postés 333 Statut Membre
       
      Re,
      J'ai tout d'abord vidé la liste en modifiant tous les présents. Puis via le commnad button du UF accueil j'ai crée un nouveau CDD (1 seul) et la impossible de le selectionner et msg d'erreur qui apparait
      0
    5. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Quel message??
      0
  2. Co_nexion Messages postés 333 Statut Membre
     
    Bonjour à tous,

    Ma question est-elle incompréhensible ? Besoin de précisions ?
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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?
    0
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Co_nexion Messages postés 333 Statut Membre
     
    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
    0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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+
    0
  8. Co_nexion Messages postés 333 Statut Membre
     
    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
    0
  9. Co_nexion Messages postés 333 Statut Membre
     
    Enfin du coup plutôt avec une listbox que je maitrise mieux
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      Ok, je regarde la chose.
      Copier les donnees dans une autre feuille, tri sur date et puis preparation pour ajout infos
      Je parts du fichier que j'ai recupere au debut. Il faudra transposer le code sur votre fichier s'il a evolue depuis.

      A bientot
      0
    2. Co_nexion Messages postés 333 Statut Membre
       
      Merci mille fois
      0
  10. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Une solution avec listbox (titre de colonnes)

    https://www.cjoint.com/?BEDuEd9QKZd

    Bon courage
    0
    1. Co_nexion Messages postés 333 Statut Membre
       
      Magique, exactement ce que je cherchais. Je plonge tout de suite dans le code pour en savoir plus et l'adapter à mes besoins.
      Encore merci !
      0
  11. Co_nexion Messages postés 333 Statut Membre
     
    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
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Avez vous parametre 15 colonnes pour la listbox UF2?????
      0
    2. Co_nexion Messages postés 333 Statut Membre
       
      oui 14 pour être précis
      0
    3. Co_nexion Messages postés 333 Statut Membre
       
      Oui donc du coup c'est : NumLigne = ListBox1.Column(13, ListBox1.ListIndex)
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Oui! C'est ce qui est un peu embetent column de 0 a 13.
      0
    5. Co_nexion Messages postés 333 Statut Membre
       
      mais ca bloque toujours sur cette ligne
      0
  12. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
    1. Co_nexion Messages postés 333 Statut Membre
       
      Bonjour et Merci.
      Je regarde tout cela et vous tiens au courant
      0
  13. Co_nexion Messages postés 333 Statut Membre
     
    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
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      Je regarde la chose.

      A bientot
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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???
      0
    3. Co_nexion Messages postés 333 Statut Membre
       
      En fait elle doit apparaitre une fois dans la listbox pour faire la modification mais ensuite il n'y a plus d'actions à effectuer sur cette ligne. Elle peut donc se ranger dans l'onglet fin de contrat et disparaitre de l'autre
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Cela je l'ai compris, mais a quel endroit de CDD fin de contrat voulez vous mettre ces lignes.
      Cela depend du nombre maxi de contrat fin de mois qu'il y aura a traiter (20, 100, 200.....)
      0
    5. Co_nexion Messages postés 333 Statut Membre
       
      Chaque mois il n'y en aura pas plus de 10
      0