XL 2021 Alléger, simplifier et optimiser un fichier excel

  • Initiateur de la discussion Initiateur de la discussion momo27
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

momo27

XLDnaute Nouveau
Bonjour tout le monde,
voici un classeur excel contenant des macros, je vous demande de l'alléger et l'optimiser pour une meilleure efficacité.
 

Pièces jointes

Solution
Re-Bonjour,
je présume que c'est un début d'application pour toi et que l'interface utilisateur n'est pas encore développée. Elle manque d'ergonomie. J'espère que ce n'est pas une application que tu as prévue de livrée pour un client ou pour un service de ton entreprise car ça n'est pas vendable en l'état. Je me vois mal livrer un truc pareil dans un projet.
Je vous remercie sincèrement pour vos efforts et votre dévouement.
Ce fichier est utilisé à titre personnel dans le cadre de mon petit commerce. Je l’ai trouvé sur un forum consacré à Excel et je tente de l’adapter à mes besoins professionnels. J’admets qu’il n’est pas très rapide, mais je m’en contente, car je ne maîtrise pas vraiment les macros. Les formules que vous...
Bonjour
Avec le bouton restaure
A+ François
momo27, fanfan38 Bonjour,
momo27 j'ai repris votre fichier, et je me suis permis de rajouter quelques éléments qui me semble "indispensables" pour la gestion d'un stock.
Je n'ai pas encore traité la problématique de la facture. Il me semble également qu'il faudrait gérer les commandes qui permettrait d'alimenter les Quantité "Entrée".
Quelques explications:
La feuille "liste des Articles" est alimenter par un formulaire. Vous déclenchez ce formulaire avec le bouton qui se trouve sur la feuille Accueil.
Ce formulaire contient 2 zones de saisies : la zone "Ajouter un nouvel article dans le tableau" qui vous permets d'ajouter à la fin du tableau un nouvel article.
La zone "Modifier ou Supprimer un article". Après le choix d'un article, la listview remonte les données de l'article sélectionné. Vous cliquez sur la ligne qui est remonté, et l'ensemble des données s'affiche dans les TextBox qui se situent sous la listview. vous pouvez alors y modifier ce que vous voulez. Vous clquez sur le bouton modifier, et les modifications seron injectées dans le tableau sur la ligne concernées. Ou alors après avoir cliquer sur la ligne remontée dans la listview, supprimer cet Article de votre tableau.
Le bouton "Initialiser permet de tout remettre à vide et donc de saisir dans le comboBox "Rechercher par...) . Vous pouvez rechercher un article par sa réf ou par son nom.
J'ai également traité la partie "Mouvement des Stocks". Vous ouvrez le formulaire sur la feuille Accueil. Je procès est identique que pour le formulaire précédent. Je vous laisse le découvrir.
Si cela ne vous intéresse pas : aucun problème. Nous sommes là pour faire des propositions aux demandeurs, à lui de prendre ce qui lui plaît.
Soyez gentil de me faire un retour.
Cordialement.
 

Pièces jointes

Dernière édition:
momo27, fanfan38 Bonjour,
momo27 j'ai repris votre fichier, et je me suis permis de rajouter quelques éléments qui me semble "indispensables" pour la gestion d'un stock.
Je n'ai pas encore traité la problématique de la facture. Il me semble également qu'il faudrait gérer les commandes qui permettrait d'alimenter les Quantité "Entrée".
Quelques explications:
La feuille "liste des Articles" est alimenter par un formulaire. Vous déclenchez ce formulaire avec le bouton qui se trouve sur la feuille Accueil.
Ce formulaire contient 2 zones de saisies : la zone "Ajouter un nouvel article dans le tableau" qui vous permets d'ajouter à la fin du tableau un nouvel article.
La zone "Modifier ou Supprimer un article". Après le choix d'un article, la listview remonte les données de l'article sélectionné. Vous cliquez sur la ligne qui est remonté, et l'ensemble des données s'affiche dans les TextBox qui se situent sous la listview. vous pouvez alors y modifier ce que vous voulez. Vous clquez sur le bouton modifier, et les modifications seron injectées dans le tableau sur la ligne concernées. Ou alors après avoir cliquer sur la ligne remontée dans la listview, supprimer cet Article de votre tableau.
Le bouton "Initialiser permet de tout remettre à vide et donc de saisir dans le comboBox "Rechercher par...) . Vous pouvez rechercher un article par sa réf ou par son nom.
J'ai également traité la partie "Mouvement des Stocks". Vous ouvrez le formulaire sur la feuille Accueil. Je procès est identique que pour le formulaire précédent. Je vous laisse le découvrir.
Si cela ne vous intéresse pas : aucun problème. Nous sommes là pour faire des propositions aux demandeurs, à lui de prendre ce qui lui plaît.
Soyez gentil de me faire un retour.
Cordialement.
momo27, fanfan38 Bonjour,
momo27 j'ai repris votre fichier, et je me suis permis de rajouter quelques éléments qui me semble "indispensables" pour la gestion d'un stock.
Je n'ai pas encore traité la problématique de la facture. Il me semble également qu'il faudrait gérer les commandes qui permettrait d'alimenter les Quantité "Entrée".
Quelques explications:
La feuille "liste des Articles" est alimenter par un formulaire. Vous déclenchez ce formulaire avec le bouton qui se trouve sur la feuille Accueil.
Ce formulaire contient 2 zones de saisies : la zone "Ajouter un nouvel article dans le tableau" qui vous permets d'ajouter à la fin du tableau un nouvel article.
La zone "Modifier ou Supprimer un article". Après le choix d'un article, la listview remonte les données de l'article sélectionné. Vous cliquez sur la ligne qui est remonté, et l'ensemble des données s'affiche dans les TextBox qui se situent sous la listview. vous pouvez alors y modifier ce que vous voulez. Vous clquez sur le bouton modifier, et les modifications seron injectées dans le tableau sur la ligne concernées. Ou alors après avoir cliquer sur la ligne remontée dans la listview, supprimer cet Article de votre tableau.
Le bouton "Initialiser permet de tout remettre à vide et donc de saisir dans le comboBox "Rechercher par...) . Vous pouvez rechercher un article par sa réf ou par son nom.
J'ai également traité la partie "Mouvement des Stocks". Vous ouvrez le formulaire sur la feuille Accueil. Je procès est identique que pour le formulaire précédent. Je vous laisse le découvrir.
Si cela ne vous intéresse pas : aucun problème. Nous sommes là pour faire des propositions aux demandeurs, à lui de prendre ce qui lui plaît.
Soyez gentil de me faire un retour.
Cordialement.
Cher Monsieur François, un grand merci pour tous vos efforts et pour le travail si bien réalisé. Même si c’est un peu compliqué pour moi pour le moment, je suis motivé à apprendre petit à petit. J’aimerais commencer par quelque chose de simple et facile à manipuler, tout en conservant mon classeur Excel initial. Encore merci pour votre soutien et votre patience !
 
Personnelement, je préfère le classeur "TEST" que tu m'as envoyé le Dimanche à 13:41. Meme si c'est simple ça me suffit pour mon petit commerce. Maintenant, il reste à régler le Total qui ne se réinstialise pas quand j'appuis sur RESTAURE
 

Pièces jointes

Bonjour,
juste un "petit poil" d'optimisation qui ne coûte pas grand chose mais cela simplifie la lecture et ça évite de se poser des questions.
VB:
Private Sub TextBox2_Change()
     If Me.TextBox2.Value = Me.ListBox1.Value Then
          Exit Sub
     ElseIf Me.TextBox2 <> "" Then
          a = Application.Transpose(Sheets("STOCK").[Liste])
          Me.ListBox1.List = Sheets("STOCK").Range("Liste").Value
          Me.ListBox1.List = Filter(a, Me.TextBox2.Text, True, vbTextCompare)
     End If
End Sub

peut se simplifier par ceci :
Code:
Private Sub TextBox2_Change()
     If Me.TextBox2.Value = Me.ListBox1.Value Then
          Exit Sub
     ElseIf Me.TextBox2 <> "" Then
          a = Application.Transpose(Sheets("STOCK").[Liste])
       ' --------------------------------------------------------------------------
       '  la surcharge prendra le dessus
       '    Me.ListBox1.List = Sheets("STOCK").Range("Liste").Value
       ' ---------------------------------------------------------------------------
          Me.ListBox1.List = Filter(a, Me.TextBox2.Text, True, vbTextCompare)
     End If
End Sub

En effet, tu surcharges Me.ListBox1.List par Me.ListBox1.List = Filter(a, Me.TextBox2.Text, True, vbTextCompare) par conséquent Me.ListBox1.List = Sheets("STOCK").Range("Liste").Value n'est plus utile. L'alimentation de ta liste est plus optimisée.
Mais je suppose que c'est le fruit de plusieurs tests qui ont produit cette surcharge que tu souhaites conserver au cas où... afin de ne pas perdre le code ? dans ce cas tu places cette ligne en commentaire.
Bon je suis peut-être à côté de la plaque....

Autre suggestion pour toutes tes USF donnes un nom explicite à tous tes objets. Ne restes pas avec des noms mis par défaut comme TextBox2. Il est préférable de leur affecter un nom qui a un sens. Exemple pour un objet TextBox : Txt_Client, pour une ListBox : LstArticles, Pour Combo : Cmb_References, pour un label : Lbl_Client, Lbl_Information, Bouton : Btn_Valider, Btn_Annuler

Cette forme d'écriture simplifie la lecture du code. C'est ce style d'écriture qui a été appliqué dans les propositions fournies.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
154
Réponses
5
Affichages
304
Réponses
7
Affichages
131
Réponses
10
Affichages
101
Réponses
4
Affichages
100
Retour