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

  • Votes
  • Date
  • Date décroissante
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
    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
      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

        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
          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
            1. oui, vous pouvez supprimer la colonne inutile

              Encore merci
              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
                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/
                  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
                    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
                      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
                    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
                      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
                        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
                          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
                            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

                              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
                                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 ?
                              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
                                • 1
                                • 2
                                • 3