Enregistrement des données d'un listbox vers plusieurs feuilles

ledom

XLDnaute Junior
Bonjour le forum

En piece jointe mon fichier essai stock 11 (j'espère l'avoir bien mis)

Tout d'abord essayez un de mes trois premier client avec 9 achats pour voir ma modif avec remise carte de fidélité (merci pour faire des commentaires si cohérent ou pas)

mon problème est la mise a jour de mon stock des diffs fournisseurs avec les données de mon listbox4
Donc rechercher le nom du produit dans la feuille nom du fournisseur et soustraire le produit acheté dans cette feuille pour que mon stock soit a jour
NB : lors de la saisie des produits il est possible avec un double clic sur une ligne dans mon listbox4 de supprimer ce produit
NB : le bouton Valider enregistre ma carte de fidelité et le "mouvement de stock" qui me servira pour faire autre chose et j'ai ajouté un bouton enregistrer pour faire la mise a jour de mon stock

Bon mon problème c'est que j'ai quelques pistes mais comme cela ne fait que depuis juin que j'ai débuté VBA je ne trouve pas

Merci de me donner quelques pistes pour la mise a jour de mon stock et des commentaires sur ce que j'ai deja fait

Par avance Merci et @+ ledom


pj : Cijoint.fr - Service gratuit de dépôt de fichiers
 

Pièces jointes

  • cijmu9qxT7.xls
    6.8 KB · Affichages: 125
Dernière édition:

ledom

XLDnaute Junior
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Re tous

Petit oubli si stock saisie vente supérieur au stock existant

J'ai rajouté dans bouton validation
NB = TextBox1.Value
stock = ListBox5.Column(3, ListBox5.ListIndex)
If NB > stock Then MsgBox "sotck insufisant": TextBox1 = "": Exit Sub


et lors de la selection de la remise en attente pour vider l'affichage j'ai rajouté dans
Private Sub CommandButton6_Click()
Label81 = Sheets("clients").Cells(ComboBox1.ListIndex + 2, 33)


@+ ledom
 
Dernière édition:
G

Guest

Guest
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Bonjour,

ton fichier n'est pas passé.

En bas de la fenêtre édition des post tu as un bouton "Gérer les pièces jointes"
Clique le et laisse toi guider. Joints un fichier à partir de ton disque dur.

A+
 

ledom

XLDnaute Junior
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Re tous
Bonjour Hasco

Maintenant mon fichier fait 2300Ko donc plus possible avec gestion de pieces jointes
J'ai remis mon fichier avec les dernières modifs avec un lien

J'ai testé apparement c'est OK

J'espère que ta va apprécier mes progrés grace a toi et tous les autres du forum qui mon bien aidé

Cijoint.fr - Service gratuit de dépôt de fichiers

@+ ledom

PS : si problèmes avec le lien vers fichier merci pour retour d'info
 
Dernière édition:

ledom

XLDnaute Junior
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

bonjour le forum

Je sais qu'il me faut compter le nombre de ligne dans mon tewbox 4 avec i = ListBox4.ListCount
puis avec for j = 0 to i
chercher avec ref = ListBox4.Column(0, ListBox4.ListIndex)
avec fourn = ListBox4.Column(4, ListBox4.ListIndex) colonne que j'ai rajouté avec largeur a 0 (invisible)
dans sheets "fourn" puis modifier la colonne stock avec - nbrachat = ListBox4.Column(1, ListBox4.ListIndex)
et faire quelque chose comme stockav = Sheets("fourn").Find(ref, LookIn:=xlValues).Row
mais j'ai du mal a trouver
Merci de me donner quelque piste pour avancer
@+ ledom

PS : toujours pas de commentaire sur mon fichier !!!
 
G

Guest

Guest
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Bonjour,

Tu aurais plus de chance d'avoir des réponses si tu faisais un classeur exemple de ton problème.

Nous n'avons pas forcement besoin de la totalité de ton classeur. Juste ce qui est nécessaire pour répondre à ta question.

P.s. Personnellement je n'ouvre pas les fichiers sur ci-joint ou ailleurs qu'ici.

A+
 

ledom

XLDnaute Junior
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Re tous
Bonjour Hasco

Deja Merci pour ta reponce
J'ai modifié mon fichier pour qu'il soit plus petit et adapté aux essais de mise a jour de mon stock

"P.s. Personnellement je n'ouvre pas les fichiers sur ci-joint ou ailleurs qu'ici."
j'aurais aimé que tu donne ton avis aprés 2 mois de boulot d'un débutant !

@+ledom
 

Pièces jointes

  • essai majstock1.xls
    88 KB · Affichages: 115
G

Guest

Guest
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Bonjour Ledom,

Je te conseillerait plusieurs choses qui permettent d'y voir plus clair, d'avoir un code plus lisible et un débogage plus facile:

1 - prendre un papier et un crayon, te mettre à la place d'un utilisateur lambda et en même temps comme programmeur, ecrire étape par étape le déroulement d'une commande et les actions que chaque étape entraine(initialisation des contrôles, des variables etc.).

2 - nommer tous tes contrôles avec des noms explicites avec une racine indiquant leur type.
ex: cbFournisseurs au lieu de combobox2
tbTotal au lieu de TextBox2

3 - utiliser les certaines variables au niveau du module:
ex: en tête de module tu trouveras une variable idxProduit qui contient le ListIndex de la liste des produits. Le fait de la déclarer en tête de module (au niveau module) te permets de l'utiliser dans toutes les procédures de ce module. De plus cela te permets en faisant un débogage pas à pas ou en mettant des points d'arrêts dans le programme de suivre son évolution en affichant la fenêtre espion de VBE ou la fenêtre des variables locales.
Plus tard, tu pourras te priver de certaines variables mais pour le moment je te conseille de le faire.

4 - Utiliser les structures With .... End With

Dans le classeur joint je n'ai fait qu'une partie:
1 à l'initialisation du userform, le bouton valider et le textbox 'tbNombre' sont iniber
2 click sur un fournisseur -> listBox5 se charge
3 click sur un produit -> initialisation d'une variable de niveau module 'idxProduit'
si idxProduit >-1 -> initialisation d'une variable module 'StockRestant' qui reprend à ce moment la valeur contenu dans la listbox produits
si stockRestant >0 autoriser la saisie dans tbNombre
sinon prévenir que le produit n'est plus en stock.
4 saisie dans le textbox tbNombre
si le nombre saisit > 0 et <= StockRestant, autoriser le bouton 'Valider'
sinon afficher une alerte et mettre le textbox sur fond rouge.
5 bouton valider click:
petite vérification qu'on a bien un produit (idxProduit > -1) et un Nombre (>0)
dans la listbox 5 mettre à jour la quantité disponible en stock: StockRestant - Nombre
récupération des différentes valeur pour le produit
Ajout du produit dans la listbox4
Mise à jour de tbTotal 'total commande
déselection du produit dans la listeBox5 (Listindex=-1)
mise à jour du textbox tbNombre
réinitialisation des variables:
Nombre = 0
idxProduit = -1
6 Et c'est parti pour choisir un autre produit

Pour le reste, on va y aller petit à petit. Commence par réorganiser tes codes et controles et à bien penser sur papier ce que tu as à faire, quand comment.

Juste une question. Pourquoi mettre les produits sur des feuilles séparées par fournisseur? Ce serait plus simple de mettre tous tes produits dans la même feuille avec une colonne fournisseur. Et au besoin faire des extractions.

A+
 

ledom

XLDnaute Junior
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Re tous
Re Hasco

C'est vrais que c'est un peu le bordel dans mon fichier (pas encore l'habitude de programmation)
Je vais suivre tes conseils
Je vais analyser ton fichier d’aide
Pour ta question sur la séparation d’articles par fournisseur c’est pour faciliter la sélection car ma femme a certain fournisseur qui ont + de 100 références donc plutôt que d’avoir une liste de produit interminable j’ai choisi ce type de mise en forme (c’est vrais que cela ne me facilite la tache car beancoup d'exemples ave une seule feuille de données et moi j'ai a chaque x j'ai le problème de choix de la feuille de mon fournisseur a prendre en compte en + cela ne fait que 2 mois que j'ai débuté VBA) mais cela facilitera la saisie pour elle)

Pour info elle utilise déjà mon fichier pour les cartes de fidélité et cela marche pas mal
Pour l’instant dans mon fichier magasin j’ai 7 fournisseurs et plus de 350 références


MERCI pour ton aide cela fait du bien d'etre guidé par des pros

J'analyse ton fichier et je reviens

bonne journée et @ + ledom


PS : A tu regerdé mon fichier sur ci-joint ?
 
Dernière édition:

ledom

XLDnaute Junior
Re : Enregistrement des données d'un listbox vers plusieurs feuilles

Bonjour le forum

Apres les bons conseils de Hasco et grace au a la fenetre des variables pour la mise a jour de mon stock cela fonctionne

k = ListBox5.ListIndex + 2
With Sheets(Fournisseur)
.Cells(k, 4) = .Cells(k, 4) - Nombre
End With
Mon problème etait que j'ecrivais ("fournisseur") alors que que les " sont deja dans ma variable

@+ ledom
 

Discussions similaires

Réponses
2
Affichages
1 K

Statistiques des forums

Discussions
312 488
Messages
2 088 841
Membres
103 972
dernier inscrit
steeter