Formule et code VBA

Résolu
Bonjour

J'ai un formulaire que j'ai créé mais j'ai du problème sur le code vba
Colonne A date, colonne B numéro de l'image Colonne E nom de l'opérateur, colonne F heure début du traitement et colonne G heure fin du traitement et colonne H total heure du traitement

Lors de la fin de la saisie donc, il y aura une plus d'un enregistrement selon le nombre de dossier que la personne a pris

- Pour la No Image, j'aimerai que ce soit un numéro suivi un énumération
par exemple si dans la formulaire
je saisie 1 à 10, il y a une insertion automatique de 10 lignes suivi du nom ainsi que l'insertion automatique de la date et heure aussi
ou même chose si on cite le numéro début plus le nombre par exemple le n° débute à 100 pour 15 images par exemple donc 101, 102 à 115.

- Pour l'heure fin
Lorsque je saisisse un nom par exemple toutes les lignes qui sont concernées seront remplies d'heure fin

- Pour la recherche
Lorsque je mets un numéro sur la case recherche, la personne qui l'avait fait s'affiche sur le résultat.

Merci pour votre aide

Ci-joint mon fichier

https://we.tl/t-cpy4nDTvUf

46 réponses

Résumé de la discussion

Un formulaire VBA gère l'enregistrement de dossiers d'images: A date, B numéro de l'image, E nom de l'opérateur, F heure début, G heure fin et H total heure, et génère plusieurs enregistrements selon les dossiers. Des solutions clés couvrent l’incrémentation automatique des numéros d’image (par exemple 1 à 10 ou 101 à 115) et le remplissage des dates et heures, et déclenchent l’heure fin dès la saisie du nom. Des ajustements pratiques abordent également la recherche par numéro, le filtrage et l’interface utilisateur, avec des recommandations sur la compatibilité Windows 32 bits, la barre de défilement et la mise en forme des heures.

Bobot (l’IA à votre service)
  1. Bonjour

    Je ne comprends pas pourquoi tu as 2 colonne image avec n° debut et fin
    Si tu as par exemple 3 images de 100 à 102 et que la macro crée 3 lignes il suffit d'une colonne image qui portera respectivement les n°s 100, 101 et 102, non ?

    A ce moment il suffit de calculer en début de macro le nombre de lignes N et de faire une boucle FOR NEXT de 0 à N et dans la boucle de faire inscrire en bonne place les infos en ligne L + N, L étant la 1ere ligne vide que tu as déterminée

    Cdlmnt
    Via
    0
    1. Oui, vous avez raison mais est ce que vous pouvez faire le code s'il vous plait,j'ai essayé comme suit mais cela n'a pas marché :

        DEBUT = textbox2.value
          FIN = textbox3.value
          With ActiveCell.EntireRow
              For LigneNum = DEBUT To FIN
                  .Offset(LigneNum - 1, 0).Insert Shift:=xlDown
                  .Copy Destination:=.Offset(LigneNum - 1, 0)
                  Cells(LigneNum, 1).Value = "(" & LigneNum & ") " & Cells(LigneNum, 1).Value
              Next LigneNum
          End Withange(Cells(ligne - 1, 3), Cells(ligne, 16)) 'on incrémente ces cellules vers le bas
       End Sub


      Or il faut que toutes les lignes soient copiées de suite et incrémenté selon le numéro saisisse dant le textbox 2 et textbox 3

      Merci pour votre aide
      0
      1. Ok je m'en occupe ainsi que de l'heure de fin

        Par contre pour la recherche le n° image seul suffit ou la date importe aussi puisqu'elle est présente dans l'UF ?

        Tu me confirmes aussi qu'on supprime la 2eme colonne image dans le tableau

        0
        1. Je vous remercie humblement pour votre aide
          concernant la recherche, par exemple n°150 traité par Eric le 22 juillet 2019
          donc lorsque je cherche 150 dans le numéro et je mets 22/07/2019 dans la date
          et le résultat affiche Eric

          Encore Merci
          0
          1. Donc on prend bien en compte les 2

            Par contre tu ne réponds pas à mon autre question : confirmes mois qu'on supprime bien la 2eme colonne image inutile
            0
            1. oui, vous pouvez supprimer la colonne inutile

              Encore merci
              0
              1. ton fichier en retour
                https://mon-partage.fr/f/UHOFUWZy/

                Cdlmnt
                0
                1. je vous remercie du fond du coeur
                  mais est ce que vous pouvez mettre un coup d'oeil s'il vous plait

                  l'heure fin (il y a juste un msg box mais les lignes ne se sont pas remplies) et la recherche ne fonctionne pas aussi

                  et est ce qu'il est possible que l'enregistrement commence à partir de la ligne 2 afin que le tableau prend la mise en forme
                  car après lorsque je tire sur la mise en forme
                  la prochaine saisie s'affiche sur le bas où il les lignes précédentes son vide
                  je vous joins le fichiers

                  https://we.tl/t-Y3pvv46rTs

                  Merci
                  0
                  1. Désolé j'avais oublié de modifier certaines lignes après la suppression de la 2eme colonen image !
                    https://mon-partage.fr/f/MyER3hux/
                    0
                    1. Merci beaucoup Via

                      une question, vous avez mis cette code
                      ActiveCell.FormulaR1C1 = _
                      "=IF([@[HEURE FIN]]="""","""",[@[HEURE FIN]]-[@[HEURE DEBUT]])"

                      sur la commande bouton est cela n'a pas marché, je l'ai enlevé et tout marche
                      je vous demande tout simplement si je devrai mettre ce code où ?

                      Merci
                      0
                      1. Je ne comprends pas chez moi cela fonctionne

                        La formule est juste pour calculer le temps puisqu'il n'y en avait pas mais tu peux supprimer les lignes :
                        Range("F" & L + n).Select
                        ActiveCell.FormulaR1C1 = _
                        "=IF([@[HEURE FIN]]="""","""",[@[HEURE FIN]]-[@[HEURE DEBUT]])"

                        Tu mettras ensuite la formule de calcul manuellement
                        0
                        1. MERCI
                          J'ai vérifier et j'ai constaté que lorsqu'il n'ya pas de mise en forme comme le tableau
                          il y avait des formules

                          et lorsque le tableau atteint les 25 lignes il n'y a plus de mise en forme

                          mais ça ira
                          je vous remercie très profondément de m'avoir aidé

                          Bonne continuation Via
                          0
                      2. Bonjour Via

                        Désolé de vous déranger

                        J'ai exécuté le fichier que vous avez réaliser sur un système 32bits et ça n'a pas marché.
                        J'ai aussi une autre demande à vous faire si c'est possible :
                        j'ai fait un autre userform : Filtre

                        j'aimerai faire une filtre automatique si c'est possible :
                        Lorsque que tape une date par exemple et je mets un numéro
                        il y une ligne contenant l'information sur la listebox
                        ou lorsque je tape une date et le nom de l'agent sur la combobox3
                        toutes les lignes concernant s'affichent
                        Et après filtre ou recherche le nombre d'image traitée (nombres de lignes ) s'affiche sur le résultat "Nombre d'image traitées" puis le total heure du traitement en 10,5 par exemple.

                        Pour le boutton "Effacer", cela remet le compteur à zéro puis efface toutes les donées du filtre

                        un lien où j'ai trouvé un exemple sur youtube :

                        https://www.youtube.com/watch?v=pUkV5lMFWL8
                        https://www.youtube.com/watch?v=iDl-wHoUzh8

                        Vous trouverez ci-joint mon fichier

                        https://we.tl/t-iqWdQqRaEz

                        Je vous remercie
                        0
                        1. Voici le lien

                          https://mon-partage.fr/f/OUk9cNdz/

                          j'ai mis une mot de passe pour le fichier :
                          suiviadv35

                          Et pour les autres postes, j'ai installé office 2010 et cela s'ouvre normalement et marche
                          mais vous pouvez encore le mettre en standard si c'est possible

                          Je vous remercies humblement
                          0
                          1. Re,

                            L'exemple dont tu m'as donné le lien est pour filtrer sur la feuille, ici tu veux une extraction dans un userform c'est différent
                            Alors en modifiant légèrement l'UF (et en donnant des noms aux textbox et autres contrôles c'est plus facile pour s'y retrouver dans les macros) :
                            https://mon-partage.fr/f/IlmBE4Jc/
                            Tu peux choisir entre deux dates ou à partir d'une date seulement (ne rien mettre dans la 2eme
                            Idem pour les n° images
                            tu peux aussi sectionnelle un nom bien sûr
                            Si tu laisse tous les critères vide le filtre ressortira la liste complète de tes données

                            J'ai également nommé de manière dynamique la liste des agents (voir gestionnaire de nom) ce qui permet de mettre ce nom dans la propriété Rowsource de la liste déroulante de l'UF et qui évite d'avoir à la remplir lors de l'initialisation

                            Cdlmnt
                            Via
                            0
                            1. C'est génial Via, c'est ce que j'ai voulu
                              Vraiment merci

                              J'avais une question dessus concernant le changement du total d'heure en décimal mais je vais chercher car je crois que vous avez déjà fait le maximum pour moi
                              A bientôt
                              Encore merci Via

                              Cordialement
                              0
                              1. Pas de souci ☺
                                Que veux tu comme conversion ? car le total en décimal j'ai du le faire mettre apr la macro dans la cellule BB1 de la feuille et après en tirer les heures, minutes et secondes pour afficher dans l'UF car pas moyen d'y faire afficher un temps qui dépasse 24 h comme avec le format [h]:mm:ss dans une cellule car apparemment ils ne fonctionne pas en VBA ou je ne sais pas faire

                                0
                                1. Oui, par exemple le total de l'heure de traitement c'est 102:32:00
                                  et cela s'affiche en 102,53

                                  dans le Caption "total Heure"

                                  La raison pour ce cas c'est que lorsque je cherche par exemple une personne pour le nombre de lignes ainsi que l'heure qu'elle avait travaillée, cela peut dépasser le 24h si c'est pendant un mois par exemple, et pour la Colonne F, serait il possible de le mettre en format
                                  type
                                  37:30:55

                                  Merci
                                  0
                                  1. Quand je ne choisis aucun critère dans l'UF j'obtiens un total de 66 images pour 75:28:28 de durée

                                    Où vois-tu s'afficher du décimal ?
                                    0
                                2. OUI, mais j'ai juste parlé sur l'affichage "total Heure" sur la formulaire filtre

                                  serait il possible de l'afficher en : 75,47 c'est à dire
                                  75:28:25 * 24 donc : 75,47

                                  Merci
                                  0
                                  • 1
                                  • 2
                                  • 3