Bouton recherche et comptabiliser une valeur sur différentes lignes

Bonjour à tous,
je viens vers vous car je suis en train de créer un formulaire de saisie.
J’ai créé un userform1 . Quand la personne arrive prendre son badge on rempli : badge/nom/date et heure d’arrivée au minimum.
Afin de comptabiliser les badges distribués on met le sigle & pour ma formule =NB.Si puis on valide.
Au retour du badge on reprend cet userform1 , on cherche via la combobox le badge on clique sur complet.xlsm (90,2 Ko) cherche puis on rajoute date et heure de retour du badge.

  • J’ai une erreur dans mon bouton recherche sur une de mes macros. il décale et efface mes lignes.
  • Afin de comptabiliser les badges non rendus j’ai créé un bouton " liste unique des badges non rendus « qui laisse apparaitre uniquement les lignes des badges non rendus mais celui ne fonctionne pas dans ma feuil3 " historique ».
    En espérant que quelqu’un puisse m’apporter son aide car je débute dans les macros.
    Merci a vous
    cedric

Bonjour

Avec tes maigres explications et ton fichier sans données objet de tes dysfonctionnements très difficile de cerner tes problématiques
Je ne sais pas ce qui coince car ne suis pas au fait du fonctionnement attendu et de celui obtenu non conforme à celui-ci

Merci donc d’étayer de quelques exemples sources associés à un résultat à obtenir avec le détail des actions réalisés à cet fin

Déjà cette ligne dans les procédures du formulaire :

a = Sheets(« Feuil1 »).Cells.Find(What:=cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row

doit impérativement être précédé de cette ligne de code :

On Error Resume Next

Qui évite un plantage si la recherche n’aboutit pas car la donnée « cherche » est inexistante dans la zone scruté ici onglet « Feuil1 » l’ensemble des cellules
Une recherche peut très bien aboutir comme être en échec ces 2 situations doivent être traitées dans le code
D’où la nécessité de cette ligne pour l’option non trouvé

Merci de m’apporter des précisions détaillées sur le fonctionnement attendu

Bonjour,Mon classeur.pdf (234,4 Ko) Presque complet.xlsm (88,8 Ko)
Merci pour votre réponse et veuillez m’excuser pour ces explications pas très précises.
Mon classeur « permet » d’effectuer une gestion de badges donnés à l’accueil.
Des agents permanents prennent leur badge et le réintègrent avant de partir.

  • L’agent d’accueil arrive sur la première page où il peut ouvrir l’userform3 menu et avoir un visuel sur le nombre de badges non rendus.

  • Sur cette Userform3, j’ai essayé de mettre (en vert) les fiches des employés afin de les reconnaitre (photo et identité).
    Côté bleu la rentrée et sortie des badges de ces agents avec un visuel sur l’historique des entrées/Sorties.
    J’ai rajouté un bouton recherche (photo et identité) afin de visualiser plus rapidement les agents pour les personnes nouvelles qui accueillent.
    En cliquant sur ok on peut visualiser le nombre de badges non rendu ( valeur de la cellule I14 Feuil4)

  • Les problèmes :
    o Interviennent quand je veux modifier une fiche dans mon userform1, rien de ne change et quand je fais une recherche je suis obligé d’être sur la bonne feuille (feuil1 = fiches des employés) sinon il me fait une recherche sur la feuille où je suis positionné.
    o Si je clique sur recherche dans mon userform3 ( Menu) je voudrai qu’en choisissant un badge , le formulaire se remplisse.
    o Idem pour qu’en je clique sur recherche.
    o Pour mon userform1 ( Badge). Je souhaiterai qu’il se remplisse automatiquement en fonction du combobox1 (badge). Par la suite l’utilisateur rentrera la date et heure de la perception. Il rentrera le signe (&) dans la date et heure de réintégration. Cela me permet de de comptabiliser les badges non rendus. Au retour le signe (&) sera supprimé et l’utilisateur rentrera la date et heure de retour du badge.
    o La feuil3 (historique) me permet de visualiser les badges non rendus en fin de journée, c’est pour cela que j’essaye de cacher les lignes des badges rendus.

J’ai essayé d’être assez clair, pas évident d’expliquer par écrit.
En espérant que vous puissiez m’aider.
Désolé pour tous ces problèmes
J’ai joint mon fichier excel avec un pdf pour une explication plus visuelle.

Cordialement
cédric

Bonjour

Ci-joint ton fichier adapté

Pour ce point :

" La feuil3 (historique) me permet de visualiser les badges non rendus en fin de journée, c’est pour cela que j’essaye de cacher les lignes des badges rendus."

Si dans cet onglet je clique sur le bouton « Liste unique des badges non rendus » j’obtiens bien toutes les lignes masquées sauf celles qui ont la donnée « & » en colonne G

Je ne vois pas ce que tu attends d’autre

Merci de m’éclairer la dessus

Testes et dis moi

Presque complet.xlsm (92,8 Ko)

Bonjour,
c’est parfait est il possible de les faire réapparaitre pour consulter l’historique complet.
Mon autre souci c’est la fonction recherche qui ne fonctionne uniquement qu’en je me positionne en arrière plan sur la feuille concernée.
Je m’explique :
Pour chaque recherche ou si je veux que mon formulaire se remplisse en indiquant le badge , je dois me positionner en arrière plan sur la feuille concernée.
Recherche sur userform Badge = feuille 3 en arrière plan
Recherche sur userform Fiche = feuille 1 en arrière plan
idem quand je la mise à jour de la cellule I4 en feuille 4.
La fonction recherche ou remplissage du formulaire suivant mon combobox se remplit en fonction de ma feuille en arrière plan.
En espérant avoir été un peu plus clair.
Merci encore pour votre patience
Cédric

« c’est parfait est il possible de les faire réapparaitre pour consulter l’historique complet »

C’est à dire ?
Réafficher toutes les lignes ?
Une simple manipulation de démasquage et l’affaire est entendue
Sélectionnes toutes tes lignes puis bandeau Excel Accueil/Format/Masquer&Afficher/Afficher les lignes

« Pour chaque recherche ou si je veux que mon formulaire se remplisse en indiquant le badge , je dois me positionner en arrière plan sur la feuille concernée.
Recherche sur userform Badge = feuille 3 en arrière plan
Recherche sur userform Fiche = feuille 1 en arrière plan
idem quand je la mise à jour de la cellule I4 en feuille 4.
La fonction recherche ou remplissage du formulaire suivant mon combobox se remplit en fonction de ma feuille en arrière plan. »

J’ai fais le nécessaire par une instruction pour qu’à la commande exécutée la bonne feuille soit affichée sans intervention

Bonjour,
désolé de ne pas avoir répondu mais problème de pc. Ecran noir , enfin tout est résolu.
Merci pour la première indication pour réafficher toute les lignes.
Concernant la fonction recherche , je dois modifier quoi exactement.
Cette modification est elle sur le classeur envoyé le 30 mars de votre part car il ne se trouve pas dans votre dernier message.
Merci encore .
Cordialement

Bonjour

Le dernier fichier transmis est opérationnel concernant l’affichage à l’écran de l’onglet nécessaire pour le traitement activé sans intervention manuelle

Fais des essais et dis moi

Bonjour,
je viens de tester le classeur.
En cliquant sur Badge dans mon menu d’ouverture ( mon champ se remplit automatiquement avec la rentrée du badge = ok ) . Est il possible, par la suite de rentrer l’heure de perception puis valider pour l’envoyer dans la feuil3 en validant et fermant.
A la réintégration du badge, on revient sur cet userform afin de mettre l’heure de réintégration puis valider et fermer pour l’inscrire sur la feuil3.
Je ne sais pas si j’ai été assez claire.
Le but de se classeur est de rentrer les fiches des employés afin de les identifiés puis inscrire la perception/réintégration des badges en gardant un historique.
Encore désolé de vous déranger pour cela
Merci encore
Presque complet.xlsm (94,6 Ko)

Bonjour

J’ai programmé le bouton Valider/Fermer du userform2

Testes et dis moi

Presque complet (1).xlsm (95,9 Ko)

Bonjour
Merci beaucoup tout fonctionne très bien, j’ai rajouté quelques fonctions.
Est il possible de vous déranger une dernière fois.
En effet, je souhaiterai que les photos apparaissent quand je recherche les employés sur les trois userform différents ( fiche, badge et recherche).
J’ai beau me repencher sur le code vba , je ne vois pas mon erreur.
Cordialement
Presque complet (1).xlsm (98,3 Ko)

Pour les images elles sont appelées ainsi exemple pour ce formulaire quand je choisi le badge :

image

Ce code s’exécute :

If Not ComboBox1.Value = «  » Then
Dim MonFichier As String
nom = ComboBox1.Value
MonFichier = (« C:\Users\Leclerc\Pictures\Fichedupersonnel ») & nom & (".jpeg")
Dim no_ligne As Integer
Sheets(« Feuil1 »).Select
no_ligne = ComboBox1.ListIndex + 3
'TextBox1.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
TextBox4.Value = Cells(no_ligne, 4).Value
TextBox5.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 7).Value
TextBox7.Value = Cells(no_ligne, 8).Value
Else
End If
If FichierExiste(MonFichier) = True Then
'MsgBox « Le fichier existe… »
Image1.Picture = LoadPicture(MonFichier)
Else
MsgBox « Le fichier image n’existe pas… »
Image1.Picture = LoadPicture
End If

la partie qui concerne la cible de l’image à remonter est celle-ci :

nom = ComboBox1.Value
MonFichier = (« C:\Users\Leclerc\Pictures\Fichedupersonnel ») & nom & (".jpeg")

le nom est celui du choix du badge dans la copie précédente c’est 1 ou 2

MonFichier porte le chemin du répertoire où se trouve l’image

ces lignes analysent l’existence de l’image et si elle est trouvée la charge dans la fenêtre Image1

If FichierExiste(MonFichier) = True Then
'MsgBox « Le fichier existe… »
Image1.Picture = LoadPicture(MonFichier)

Mais la variable MonFichier qui est le chemin est le nom de l’image se compose comme ceci :!

(« C:\Users\Leclerc\Pictures\Fichedupersonnel ») & nom & (".jpeg"

soit (« C:\Users\Leclerc\Pictures\Fichedupersonnel1.jpeg »)

C’est à dire vue du côté du traitement dans un répertoire Pictures dont le chemin est C:\Users\Leclerc\Pictures\ et le nom de l’image Fichedupersonnel1.jpeg

Je pense que tu souhaites récupérer l’image 1.jpeg dans le répertoire Fichedupersonnel et donc il manque dans la définition de ton chemin que porte la variable MonFichier un caractère indispensable pour prendre en compte comme répertoire sa terminaison : " \ "

tu dois l’écrire comme ceci :

MonFichier = (« C:\Users\Leclerc\Pictures\Fichedupersonnel\ « ) & nom & ( ».jpeg »)

de plus les accolades sont en trop j’écrirais cette variable ainsi :

MonFichier = "C:\Users\Leclerc\Pictures\Fichedupersonnel\ " & nom & « .jpeg »

J’ai fais un essai en adaptant ainsi pour le traitement Badge et avec mon chemin personnel et une de mes images bingo cela fonctionne

Adaptes le traitement Badge de ce formulaire comme je te l’ai indiqué puis testes le et si OK adaptes tous tes traitements à l’identique

Je te transmets ton fichier avec cette modification pour le Badge en place

Regardes et testes

Presque complet (1) (1).xlsm (98,5 Ko)

Merci ,
Enfin mon classeur est presque fini grâce à vous et votre patience.
J’ai appliqué vos conseils et cela fonctionne parfaitement.
Je n’ai plus qu’à trouver l’erreur sur mon bouton modifier et ajouter dans mon userform ( ajouter/modifier/supprimer).
Merci encore
Enfin.xlsm (115,4 Ko)

Merci pour ce retour
Pour ta dernière erreur tu te débrouilles
N hésites pas à me solliciter si besoin
Valides ma réponse si tu peux c est un plus sympathique

Au plaisir

désolé j’avais zappé.
Merci