Automatisation des commandes - Macro VBA

Bonjour à tous,

Je suis novice sur VBA, mais je trouve cela très pertinant et ergonomique dans l'application.

Je souhaite aujourd'hui automatiser la gestion des commandes à travers un fichier Excel.

Voici les pré-requis (à travers le fichier ci-joint) :

  • Onglet 1 "Liste des commandes" : Historique des commandes effectué
  • Onglet 2 "Répertoire des consommables" : Liste de l'ensemble des fournitures pouvant être approvisionnée

J'ai crée un UserForm au format souhaité.

Je souhaite que l'utilisateur repère et sélectionne le "code" dans la ComboBox puis clique sur le bouton de commande "Chercher".

Cette action devra entrainer une recherche de cette valeur dans la colonne A de la feuille "Répertoire des consommables".

Une fois la ligne correspondant au "code" identifiée, la macro devra reportée les données (de cette ligne) comme suit :

  • Valeur (ou Texte) de la colonne B (toujours sur "Répertoire des consommables") dans la TextBox nommée "Ref" (voir UserForm).
  • Valeur (ou Texte) de la colonne C (toujours sur "Répertoire des consommables") dans la TextBox nommée "Design" (voir UserForm).
  • Valeur (ou Texte) de la colonne D (toujours sur "Répertoire des consommables") dans la TextBox nommée "Unite" (voir UserForm).

Cela permettra à l'utilisateur de vérifier son besoin. Par la suite il devra compléter la TextBox nommée "Qte" (voir UserForm).

Finalement, nous finirons par cliquer sur le CommandButon "Ajouter" qui renseignera les données (dans l'onglet 1 "Liste des commandes") comme suit :

  • Valeur de la ComboBox (nommée "Liste") dans la colonne A de l'onglet 1.
  • Valeur (ou Texte) de la (TextBox nommée "Ref") dans la colonne B de l'onglet 1.
  • Valeur (ou Texte) de la (TextBox nommée "Design") dans la colonne C de l'onglet 1.
  • Valeur résultant de la multiplication de la TextBox "Qte" par la TextBox "Unite" dans la colonne D de l'onglet 1.
  • Renseigner la date du jour dans la colonne E de l'onglet 1.

Nota :

  • Je pense qu'il faut vraiment partir de la sélection de la colonne complète dans l'onglet 2 et pas seulement d'une plage car je peux y ajouter de nouvelle référence par la suite.
  • L'historique de l'onglet 1 doit être conservé à chaque utilisation du fichier, je pense donc qu'il faut y associer une condition de détection de la première cellule vide dans la colonne A afin de débuter l'incrémentation des nouvelles commandes lorsque l'on clique sur "Ajouter".

Cela fait bien 3 semaines que je m'y atèle dès que j'ai un peu de temps, mais le niveau me parait trop élevé par rapport à mes connaissances de base. Si une âme charritable souhaite m'aider, ce serait top.

Merci à vous

Bonjour Flo, le forum

Pour faire simple (d'autres methodes existent) je te propose ca.

Je te suggere d'enlever le bouton chercher et lancer directement l'action sur changement de ref dans la combobox (plus rapide et pratique).

En esperant que ca te conviennes.

19facture.xlsm (63.45 Ko)

Cordialement

A

Bonjour Alex777f,

Merci tout d'abord de ton temps.

Je suis ouvert à d'autres façons de procéder cependant je trouve que dans ton fichier joint il reste énormément de saisi.

Aujourd'hui, je suis confronté au fait que les utilisateurs font des erreurs de saisi quasi-systématique.

Je souhaite vérrouiller cela afin que leur seul interface soit la "Userform". Tout le reste sera sécurisé et non modifiable.

J'ai donc crée le référentiel dans l'onglet 2 "Répertoire des consommables" où je suis le seul à intéragir.

Avez-vous d'autres solutions ?

En tout cas, merci à tous !

Bonne journée.

Bonjour Flo, le forum

Oups désolé, il ne s'agit pas de ton fichier. J'avais très sommeil du coup je me suis trompé de fichier (je peut etre con parfois )

Essaie ceci

cdt

A

Bonjour Alex,

T'es un magicien !

J'ai poursuivi aussi de mon côté et j'ai fais quelques modifications.

Il me reste un point bloquant que je n'arrive pas à résoudre...

Lorsque que je clique sur "Ajouter", au moment de l'import des données depuis le Userform dans la Feuille1 ça bloque...

J'ai tenté une formule différente de la tienne (ActiveSheet...) mais sans effet.

Si l'on parvient à résoudre cette problématique, ce sera parfait.

Voici le fichier mis à jour.

Merci de ton aide, c'est top !

Flo ta feuille est protégé en ecriture, c'est pour ca que ca bloque.

Tu prefere la garder verrouillée ta feuille?

Mot de passe : florian

Idéalement, l'onglet 2 doit être complètement verrouillé tout en permettant l'utilisation des filtres et Tri. Je serai le seul à détenir le mot de passe et pouvoir ôter la protection via Révision pour faire des modifications manuelles.

L'onglet 1, tout doit être verrouillé et automatisé sauf les colonnes "Commande passée" et "Reçue" qui seront complétées manuellement par les utilisateurs.

Est ce réalisable ?

Merci 😊

Après modif

Dans le code remplaces "tonmotdepasse" par le mot de passe de la feuille. (Il apparait 2 fois).

Attente retour

A

Protège ta feuille 2 et je crois que c'est bon

Je suis pas disponible jusqu'à 14h.

Je teste cela de suite après.

Juste pour information, ton code permet t'il d'utiliser sans restriction les fonctionnalités de protection de l'onglet Révision sans risquer de faire déconner la macro ??

Je n'ai pas le fichier devant moi mais ca devrais pas poser de probleme.

La protection sera juste oter sur la feuille liste de commande, et remise après. On ne touche pas a la feuille revision, tu pourras donc la protéger manuellement vu que tu sera seul a l'utiliser.

J'ai remplacé "tonmotdepasse" par "florian" mais la macro bloqué à :

Sheets ("Liste de commandes").Unprotect "florian"

As-tu une idée de ce qui l'empêche de réaliser cette action ?

Autre remarque : J'ai épinglé les levées et remises de sécurité pour tester à tout va la macro "Commander un consommable", il y a un blocage avec la fonction VLookup de la classe WorkSheetFunction (Erreur d'exécution 1004). Je clique sur Debogage puis ferme sans rien toucher et entre temps les cellules ont été complètées.

Help me 😂

Essai... Validé !!!

Gros merci à toi, j'ai appliqué la même stratégie à l'autre macro et ça roule tout seul 😊.

Sujet clos. Merci de ton temps et en espérant vous retrouvez bientôt ! 😉

Rechercher des sujets similaires à "automatisation commandes macro vba"