VBA : tableau de suivi d'emprunt de matériel

Bonjour,

Dans le cadre de mon travail, j'essaie de mettre au point un fichier Excel pour suivre l'emprunt de matériel.

J'ai trois feuilles :

- saisie emprunt (sous forme de formulaire)

- saisie retour (sous forme de formulaire)

- suivi emprunt (sous forme de tableau)

Pour saisir l'emprunt, tout est ok mais j'ai des difficultés pour trouver le bon codage pour la saisie de retour.

Mes cellules C10 et F10 correspondent au prénom et nom de l'emprunteur sur mes deux feuilles de saisie.

Et elles correspondent aux colonnes A et B sur mon tableau de suivi.

Chaque emprunt est enregistré dans le tableau de suivi avec les informations "nom", "prénom", "matériel emprunté", "date d'emprunt", "date estimé du retour" et "date de retour")

Lors du retour, j'aimerai qu'en saisissant les informations (nom, prénom, matériel), Excel retrouve immédiatement la personne dans le tableau de suivi et complète le tableau avec la date de retour qui ne figure pas lors de l'emprunt (colonne I).

Je ne sais pas si je suis très clair mais j'ai joint le fichier Excel.

Merci d'avance pour vos réponses

Bonjour Jordan et

Cool de passer par des formulaires dans des feuilles, j'utilise de plus en plus cette méthode (plus moderne je trouve)

Sinon, perso saisir le prénom et le NOM à 2 endroits différents je ne trouve pas ça top, mais bon

Voici le fichier avec le code de retour largement optimisé, pensez à l'option explicite et à déclarer vos variables

A+

Merci beaucoup pour ce retour qui semble fonctionner. Je vérifie ça dans la journée.

J'ai cependant une question concernant l'une des lignes : "Set Lo = ThisWorkbook.Sheets("SUIVI EMPRUNT").ListObjects("TsSuiviEmprunt")"
Je me demandais à quoi référer le "TsSuiviEmprunt" étant donné que je n'ai aucune donnée portant ce nom.

Re,

Désolé, j'ai oublié de le mentionner,
mais je me suis permis de renommer les Tableau Structuré du suivi d'emprunts, d'où "TsSuiviEmprunt"

plutôt que de laisser "tableaustructuré4"

A+

Bonjour GumZ et le forum
Salut @ BrunoM45
Ce sujet m'a interpellé dès le début, mais je n'ai pas eu le temps avant aujourd'hui de me pencher dessus.
Par contre, ma proposition se fait par un formulaire unique qui permet:
- de saisir un emprunt
- de le modifier lors du retour
La feuille "Listes" où l'on retrouve 3 listes (à initialiser) sont sous forme de Tableaux Structurés, tout comme le Suivi des Emprunts et le Suivi des Stocks.
La colonne "Dispo" du Suivi des Stocks se met à jour par formule SOMMEPROD (en - lors d'un emprunt, en + lors du retour de l'emprunt).
Cdt
Papy Henri

Bonjour GumZ et le forum
Voici une Version2 améliorée.
Pour saisir les différentes dates, cliquer sur les boutons de commande à droite des TextBox pour faire apparaitre le calendrier. De cette façon les dates seront toujours au bon format date (JJ/MM/AAAA).
La quantité saisie lors de la création de l'emprunt ne peut pas être modifiée lors d'une modification de l'emprunt.
Pour la gestion des stocks, j'ai ajouté un critère. Si le retour de l'emprunt signale que l'état de désinfection est HS, le stock Dispo ne sera pas modifié.
Pour faciliter la recherche dans la liste des emprunteurs, un filtrage par noms permet cette recherche.

On peut imaginer par la suite un fichier par mois, par an, etc.

Cdt
Papy Henri

Merci beaucoup @BrunoM45

Et merci beaucoup aussi @AFEH ! Ta proposition a l'air topissime et assez facile d'accès.

Par contre, je n'arrive pas à avoir accès au codage de la fenêtre "UserForm1".
Tu sais où quel est le chemin pour que j'y accède ? (désolé, je suis complètement débutant en VBA et compagnie)

Bonsoir Gumz, salut Papy Henri

Pour accéder à VBAproject il faut appuyer sur ALT+F11

Là il faut afficher l'explorateur de projet si pas déjà fait (CTRL+R) et la fenêtre des propriétés (F4)

image

A+

Merci encore à tous les deux.

@AFEH, j'ai encore pas mal de petites questions sur certaines lignes de codage de ta version mais histoire de ne pas flooder ici, peut-on échanger par MP ?

Bonsoir GumZ
J'aime autant continuer à échanger sur ce fil.
D'une part, au cas où je ne saurai pas répondre, des pro d'Excel (que je ne suis pas) pourraient intervenir,
D'autre part, les réponses proposées pourraient servir à d'autres.
Cdt
Papy Henri

D'accord, je vais lister donc mes questions.

- sur l'Userform (et le tableau), j'aimerai que la date estimée de retour soit calculée automatiquement (15 jours d'emprunt) et que la case ne soit pas modifiable.

- l'état de l'emprunt n'est pas en lien avec l'état du matériel mais plutôt est-ce que l'emprunt est "en cours" (si la date du jour < la date estimée) "terminé" (date de retour saisie), "en retard" (date du jour > date estimée de retour). Idem pour la date de désinfection mais la démarche sera la même que pour l'emprunt (actuellement, je n'ai pas de visu sur les délais de désinfection)

Etant débutant ++ en VBA et compagnie, serait-il possible d'avoir la version de ton fichier avec les explications pour "chaque" ligne ? 🫣
Cela pourrait me permettre de gérer moi-même les modifs (ex: comment t'as grisé la case des stocks, etc)

De même, quand je passe par mon ordi perso qui possède Excel 2021, l'Userform ne s'ouvre même pas 🤔
Excel m'indique : "Erreur d'exécution "-2147467256 (80004005)" : impossible de définir la propriété ColumnWidths. Erreur non répertoriée"

Merci par avance

Bonsoir GumZ et le forum
J'ai pris note de tes questions. Je reviens vers toi rapidement.
Papy Henri

Bonsoir GumZ et le forum
Voici un projet selon ton dernier message.
La date estimée de retour se calcule automatiquement (donc grisée) avec la date de l'emprunt+15 jours et l'état de l'emprunt (grisé également) se met à "En Cours"
La saisie de la date de retour fait un contrôle sur la date estimée. Si elle est inférieure, l'état se met à "Terminé", sinon "En Retard"
La saisie de la date de mise en désinfection positionne l'état de désinfection (en grisé) à "En Cours".
La saisie de la date de fin de désinfection positionne l'état de désinfection à "Terminé" et le stock est rétabli.
Pour rétablir le stock, la colonne O (Retour) du Tableau de suivi (T_Suivi) comporte la formule ci-après qui indique OUI ou NON (on peut la masquer)

=SI(ET([@[DATE DE RETOUR]]<>"";[@[ETAT DE LA DESINFECTION]]="Terminé");"OUI";"NON")

et la colonne D (Dispo) du tableau (T_Stock) cette formule:

=[@QUANTITE]-SOMMEPROD((T_Suivi[NOM MATERIEL]=[@MATERIEL])*(T_Suivi[Retour]<>"OUI")*T_Suivi[QUANTITE])

Concernant ton problème :

De même, quand je passe par mon ordi perso qui possède Excel 2021, l'Userform ne s'ouvre même pas 🤔

Excel m'indique : "Erreur d'exécution "-2147467256 (80004005)" : impossible de définir la propriété ColumnWidths. Erreur non répertoriée"

tu vérifies que la syntaxe est bonne (il faut des points-virgules ";" entre chaque donnée et non des virgules)

A te relire
Cdt
Papy Henri

Rechercher des sujets similaires à "vba tableau suivi emprunt materiel"