Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème pour retenir des données

S

Sylvie

Guest
J'ai un soucis, comme la plupart des personnes qui viennent ici.
J'ai un stock d'articles et une facture. Quand je mets disons par exemple, sur ma factrue que je prends 5 boîtes de lait, il déduit bien ces 5 boîtes de mon stock. Le problème est que quand j'efface mon bon de commande, mon stock redevient comme il était avant. Il ne garde pas en mémoire que j'en ai enlevé 5. Est-ce quelqu'un peut m'aider?
Si vous plaiiiiiiiiiii !
Merci d'avance.
Sylvie.
 
@

@+Thierry

Guest
Salut Sylvie, le Forum

Je suppose que tu travailles par formules et c'est logique que lorsque ton bon de commande est vidé, les 5 boites de lait ne sont plus déduites.

En fait uniquement par formule, je ne vois pas vraiment comment tu pourrais t'en sortir, il te faudra un peu de VBA, mais je ne sais pas si tu connais un peu ?

J'avais fait une démo sur ceci par UserForm :

=> Télécharger le Fichier Lien supprimé

Sinon, je pense qu'en plus simple il faudrait simplement qu'une macro récupère ce que tu as saisis en Bon de Commande pour incrémenter une feuilles qui ferait ensuite gérée par des formules pour la gestion des stocks...

Bon Courage
@+Thierry
 
S

Sylvie

Guest
Merci @+Thierry, je vais regarder un petit peu ton fichier. Mais oui, comme tu dis il y a des formules. Et non, je n'y connais rien en macro. Je vais regarder ce que tu m'as mis parce que tu es le seul qui est suceptible de m'aider pour le moment. Merci beaucoup.
Sylvie.
 
G

Gérard DEZAMIS

Guest
Bonjour Sylvie

Ci-joint un petit fichiers avec un "stock d'articles"
Me dire si cela peut correspondre à la demande.
Evidemment il y a de la macro dans l'air mais cela reste très simple
(avec qq explications bien entendu)
@+
 

Pièces jointes

  • FactureStock.zip
    10.3 KB · Affichages: 50
S

Sylvie

Guest
Punaise, merci Gérard, c'est tout à fait ça que je voulais, enfin, je crois, il faudrait que je test tes macros sur mon propre classeur mais ça à l'air PARFAIT!
Je croyais que personne ne pourrais m'aider. Un très, très grand merci.
A +.
Sylvie.
 
S

Sylvie

Guest
Je sais, j'abuse, mais comme je débute, j'ai encore une question; où est passé ta colonne E et ta ligne 5? Parce que tu en parle dans la macro mais elle s ne sont pas là.
 
@

@+Thierry

Guest
Bonjour Sylvie, le Forum

Gérard a simplement masqué la collone "E" et la ligne 5 (aller dans la feuille et en te plaçant en sélectionnant les entêtes des colonnes "D" & "F" tu cliques à droites et dans le menu contextuel tu auras "Afficher"...

Ceci dit, tu peux épurer facilement la macro en supprimant tous les "Select"...

Exemple :

Range("H8:I17").Select
Selection.ClearContents

S'écrit tout simplement :
Range("H8:I17").ClearContents

Bonne journée
@+Thierry
 
S

Sylvie

Guest
Je sais que j'abuse encore mais je ne suis pas du tout douée avec les macros et je n'arrive pas à mettre celle de Gérard DEZAMIS. Enfin, presque mais le problème est que moi, je n'ai pas de liste déroulante avec les produits. J'ai une produit par ligne et j'aurais voulu que cette macro fonctionne ligne par ligne. Mais comme je n'y connais rien, je n'arrive pas à voir ce que je dois enlever de celle de Gérard.
Soyez indulgents, les mecs, je suis une toute petite débutante!
Merci à vous tous quand même en tous cas!
A +.
Sylvie
 
@

@+Thierry

Guest
Demo Facturation avec Gestion de Stock par VBA

Bonjour Sylvie, Gérard, le Forum

Il ne sera pas vraiment facile pour toi d'adapter des macros tant que tu ne connaîtras pas quelques rudiments basics de programmation.

Pour apprendre, l'enregistreur de Macros (Menu => Outils => Macro => Enregistrer) te permettra de créer des procédures simples que tu pourras modifier et adapter pour apprendre.

Par exemple, la procédure de Gérard est construite à partir de macros enregistrées, juxtaposées et utilisées conjointement avec des Formules en dures sur la feuille. C'est souvent comme ceci qu'on apprend au début à programmer sous Excel. J'ai été le premier à faire comme ceci moi-même!!

L'inconvénient est qu'à la longue çà devient vite une usine à gaz pratiquement ingérable et surtout non-transposable dans d'autres contextes.

Donc ensuite on apprend à tout faire par VBA, ce n'est pas évident au début, mais c'est vraiment bien plus sûr et facilement gérable/modifiable et surtout évolutif en fonction des besoins...

Dans la démo ci-jointe, ce n'est pas du tout un exemple du genre pour de la "pure programmation optimisée" car je travaille en double boucles "For Each", ce qui n'est pas le plus rapide en traitement de grosse bases de données...

Mais ici, j'ai mis surtout la priorité sur un code simple et intelligible avec des variables nommées très figurativement afin que les débutants et débutantes en VBA puissent lire et suivre le code...

Tout est basé sur deux Objets Plages :
La Plage Stock nommée "PlageStock"
La Plage Facture nommée "PlageFacture"

Ces objets Plages peuvent être manipulé/transposés à ta guise
Set PlageStock = Sheets("STOCK").Range("A2:A11")
Peut devenir :
Set PlageStock = Sheets("STOCK").Range("A2:A100")
ou encore :
Set PlageStock = Sheets("MesStocks").Range("B2:B100")
Pour autant que la feuille "MesStocks" existe dans le classeur et que la plage Article est bien entre B2 et B100... (Attention aussi à la quantité en stock, qui, tu le verras ci-dessous doit se trouver dans la colonne immédiatement à droite de celle des Articles))

Ensuite, chaque cellule de ces deux plages sont scannées par une boucle "For Each.. Next" ce qui est le "moteur" de cette procédure.

Les Cellules ainsi scannées individuellement sont nommées respectivement :
"CellFacture" pour les cellules de la Plage "PlageFacture"
"CellStock" pour les cellules de la Plage "PlageStock"

En fait, pratiquement tout le reste du code peut être transposable à condition que la quantité soit toujours dans la colonne immédiatement suivante à celle des Articles en Feuilles Stock et aussi en Feuille "Facture"...

C'est la méthode "OffSet" qui me permet de me déplacer et de lire dans les deux tableaux...

Exemple :
Stock = CellStock.Offset(0, 1)
Signifie que lors du Scan par "For Each" dans la plage "PlageStock" je vais lire la colonne immédiate à droite de la cellule en cours de scan pour trouver la valeur en Stock...

Pour que le "Moteur" de mes boucles "For Each" fonctionnent correctement il lui faut des conditions qui sont simples :

La première est "Si l'Article Facturé = l'Article en Stock" se traduit dans mon code par :
CellFacture.Text = CellStock.Text
Et par conséquent seulement quand cette condition est remplie le reste de la procédure se déroule...

Tu trouveras d'autres conditions "SI" (IF) dans le code, qui, quant à elles, sont là pour gérer les erreurs possibles:
A) Soit celles de l'utilisateur :
If Not IsNumeric(CellFacture.Offset(0, 1)) Then
Qui signifie que l'utilisateur n'a pas saisi une valeur numérique pour la Quantité
B) Soit que l'on arrive à une aberration :
If Stock < Quantite Then
Qui signifie que l'on a pas en stock la quantité que l'on veut facturer...

Enfin voilà, c'est une sorte de cours VBA assez basic pour te permettre d'avoir une première approche de ce qu'est la Programmation dans Excel.

Bonne découverte et Welcome to the VBA's World !!!
@+Thierry
 

Pièces jointes

  • XLD-Rudiments-Facturation-GestionStock.zip
    20.5 KB · Affichages: 44
S

Sylvie

Guest
Salut le Thierry, salut le forum.
Merci pour toutes ces explications, même si pour moi c'est du chinois. Je vais essayer de comprendre. Je comprends le principe mais je ne connais pas du tout le langage mais bon, ça viendra, comme tu dis. J'arrive à faire des macros via "enregister" mais pour ce qui est de faire une macro complète, c'est même pas la peine. En tous cas, ton programme que tu as fait est super bien. Il faudrait que j'approfondisse et que j'apprenne.
On m'a beaucoup conseillé d'utiliser Access et pas Excell pour ce type de programme mais il n'y a rien à faire, déjà que je suis pas franchement douée en Excell, avec Access, c'est même pas la peine!
Un TOUT GRAND MERCIIIIIIIIIIIIIIIII.
A+.
Sylvie.
 
@

@+Thierry

Guest
Bonjour Sylvie, Gérard, le Forum

Oui je savais en écrivant ces codes que tu aurais des difficultés de compréhension. J'ai essayé de tout expliquer en détail, mais il est certain qu'il te faudra du temps et beaucoup de patience pour progresser en VBA.

Il y a beaucoup d'outils d'aide. Quand tu es sur un module de code, tu sélectionnes un mot et ensuite, tu presses la touche "F1" tu auras déjà toutes les explications sur l'Instruction, la Propriété, ou la Méthode que représente le mot...

Ensuite il y a ce Forum of course et si tu buttes sur une instruction précise, n'hésite pas à venir demander de l'aide.

Pour ce qui est d'Access, je ne connais pas ton secteur d'activité, mais pour une gestion de Facturation de PME, Excel peut s'en sortir parfaitement.

Access est un GDB, Gestionnaire de Base de Données, qui est prévu pour du traitement très important, avec (par exemple) des centaines de tables de milliers d'enregistrements jointes entre-elles, mais pour débuter ce n'est pas du tout évident. Et pour débuter et faire une simple facturation avec gestion de Stock, c'est même disproportionné.

A moins que tu ne soies chargée de la Facturation d'un géant, style EDF, ou France Télécom (qui doivent avoir leur propre Soft) Je pense que tu peux t'orienter sur Excel uniquement et tenter de maîtriser les Instructions VBA simples combinées aves des Formules.

Une dernière chose, importante à savoir pour toi et ceux/celles qui nous lisent, (et à répondre à ceux qui te donne des conseils) Excel est l'outil idéal pour démarrer un projet et avoir une base de travail, si il s'avère qu'à l'usage on arrive à ses limites (chose assez rare), toutes les données sont transferrables très facilement vers Access ou vers n'importe quelle base (Oracle, etc), donc on n'a pas perdu son temps.

Idem si l'on veut s'orienter vers du développement de Logiciel propre à ses besoins, une base de travail sur Excel permettra exactement de définir le cahier des charges. (Un petit peu comme si l'on a construit la maquette)

Enfin voilà mon opinion pour travailler sur Access pour un cas comme celui-ci. Et une dernière chose, si vraiment dans ton entourage on insiste pour Access, demande (exige !) alors une formation professionnelle, car celà ne rentre plus dans le cadre du travail d'un comptable/aide-comptable/ secrétaire ou autres... à qui on demande des connaissances de base Excel/Word.

Bon courage en tout cas et Bonne Fin de Journée
@+Thierry
 
@

@+Thierry

Guest
Demo Facturation avec Gestion de Stock par VBA Version Light

Re Bonjour

En fait je me rends compte que comme à mon habitude, même pour une simple démo, il faut que je rajoutes des gestions d'erreur de partout, plus des gadgets tel que la numérotation de Facture automatique dans un objet WorldArt... Et finalement pour quelqu'un qui ne connait pas du tout çà devient vite infernal à comprendre....

D'où l'idée de faire une Version Light ne gérant que le stricte minimum à savoir la gestion de stock en fonction de la quantité facturé.

En espérant que tu comprendras mieux le fonctionnement.

Une fois que tu auras analysé et compris, reprends Lien supprimé en version complète, car en version light, tu n'as aucun contrôle de ce qui se passe...

Bon Courage
@+Thierry
 

Pièces jointes

  • XLD-Rudiments-Facturation-GestionStock-V-Light.zip
    15.7 KB · Affichages: 32
S

Sylvie

Guest
Merci pour tout Thierry. Je suis désolée de la réponse tardive mais je n'ai pas eu beaucoup de temps à moi.
Je vais regarder ce que tu m'as fait là.
Je te remercie beaucoup pour tous tes conseils, ça me redonne de l'espoir. Je crois que j'allais laisser tomber. J'ai même commencer en Access mais c'est la cata!
Un tout, tout grand merci pour avoir pris le temps de faire des exemples et de me remonter le moral!
A+.
Sylvie.
 
S

Sylvie

Guest
Salut le Forum, salut tout le monde. Alors, c'est la super pèche, j'étais démoralisée parce que je ne trouvais pas de solution à mon problème, mais grace à notre ami Thierry, c'est résolu!!
Je voulais tous vous remercier et en particulier Thierry qui m'a retiré une grosse épine du pied.
Ce forum, c'est une vrai mine d'or.
Merci, merci, merci.
a +.
Sylvie.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…