Code de gestion du stock

Signaler
Messages postés
8
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
5 avril 2012
-
Messages postés
115
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 juin 2012
-
Bonjour à tous,

Je suis débutante et découvre les macros et Cie.
J'ai écrit un code pour une gestion des stock c'est bateau. En fait, je passe par des macros pour éviter que les personnes modifient le tableur et des choses par erreur.
Mon problème est que selon les manipulations, quand le fichier s'ouvre, j'ai beau demander un modification, à chaque fois pour la première, rien ne se passe.
Par exemple : si je viens d'ouvrir mon classeur, que je demande de rajouter 2 pièces d'un plan donné, le nombre de pièces ne change pas, et le message d'information (qui me donne le nombre de pièces restantes) m'affiche un nombre totalement abérant. Mais je n'arrive pas à trouver le problème.

Je voulais vous joindre un fichier, j'ai héberger une version light sur le site Cijoint.com. Mais je crois qu'il faut quand même télécharger le bazar.
Je sais pas comment faire d'autre !
http://cjoint.com/?0DeqiyD4ej8

5 réponses

Messages postés
115
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 juin 2012

bonjour
j'ai parcouru le classeur
la cellule B14 n'est pas renseignée par le bouton Valider/etape42

dans le code
--STORAGE et storage mais j'ai testé ça fonctionne ??
--etape2 et etape21
--pourquoi dans chaque form il y a une sub pour lancer ce meme form ?
Sub Lancer_assistancecode()
assistancecode.Show
End Sub


as tu lancer le code sans les protect/unprotect ?

@+JP
Messages postés
8
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
5 avril 2012

Bonjour,

Merci pour la rapidité de ta réponse et merci d'avoir pris le temps de regarder.
En fait, la cellule B14 est renseignée au moment de la macro rechercheplan (module1), j'ai vérifié, elle semble bien contenir la ligne. Ce qui m'étonne c'est que le bug survient seulement la première fois, ensuite c'est bon. C'est étrange quand même.
J'ai pris tes remarques, j'ai fais une sauvegarde pour chacune :
- la majuscule/minuscule, même constat que toi ca fonctionne (mais j'ai quand même corrigé ;)
- etape2 et etape21, j'ai corrigé également mais vu que c'était dans un sub pour lancer... ça na rien changé.
- j'ai supprimer les sub de lancement que je pensais nécessaire (c'est le premier fichier excel que je fais qui contient des userform, j'avais vu ça dans un tuto mais je me suis rendu compte que c'était inutile en route, cela dit j'ai pas supprimé ceux que j'avais fais. Mais maintenant c'est fait !!!)
- Enfin les protect/unprotect...et là je suis perplexe !!!
Mes premiers essais : non concluant (en redémarrant l'ordi entre chaque). Le temps d'aller aux p'tit coin et ça marche !!! Il y a comme qui dirait une bizarrerie et par expérience en informatique, la logique prime sur la bizarrerie...
Donc, je vais refaire des tests. Je te tiens au courant.
Je pense que le soucis vient effectivement de B14, enfin plutôt de la variable i sensé récupérer la valeur !!! Mais alors pourquoi seulement la première fois ???

@pluch
Sarah
Messages postés
8
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
5 avril 2012

Effectivement, ça ne marche pas.
Je pense avoir trouvé l'erreur enfin, je sais ce qui bug, mais je ne sais pas quoi faire pour corrigé.
C'est bien la bonne ligne qui est stockée dans B14, mais au moment de remplir c'est l'ancien B14 qui est pris en compte et qui est chargé dans i.

Le bon côté c'est que grâce à toi, le problème est ciblé, reste à trouver la solution maintenant !
Messages postés
115
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 juin 2012

bonjour
Tu fais comme tu veux mais la variable "i" (et les autres) ça serait mieux de lui donner
UnNomQuiExpliqueSaFonction tu vois le genre, n'ésites pas, comme ça
en relisant le code tu visualise bien le fonctionnement.

'ici "IC" deviendrait "LigneSelection" par exemple (sans les accents c'est plus sur)
IC = Selection.Row
Sheets("STORAGE").Range("B14").Value = IC


regarde dans l'aide la porté des variables
si tu déclare ta variable au niveau code Form ou code module
tu n'as plus besoin d'ecrire/lire Range("B14") car sa valeur reste valable
pour tous les codes de la page (dans sub / function ...)

@+JP
Messages postés
115
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 juin 2012

bonjour
renome les Forms aussi "FrmAjoutCodePlan,FrmAide,FrmSuprimeLigne,..."
Frm pour Form, Txb pour TextBox, Lab pour label,...
pas obligatoire mais plus pratique et lisible

j'allai oublier, lors de la recherche d'un plan
si le plan n'est pas trouvé ça provoque une érreur qui ensuite est gérée
je pense qu'il est préférable de tester le plan sans créer d'érreur

If MonCodePlan <> "" then ...on peut continuer

@+JP