Comment reproduire le principe "d'ajout au panier"

benosty Messages postés 6 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 28 février 2012 - 28 févr. 2012 à 12:20
benosty Messages postés 6 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 28 février 2012 - 28 févr. 2012 à 22:17
Salut à tous,

J'ai un petit soucis dans l'écriture de mon code vb.
Mon but est d'ajouter des produits dans un panier.

Je souhaite réalisé ceci :

Dans une ComboBox je dispose d'une liste où je choisi un produit. J'ai créé un bouton qui me permet, lorsque je click sur dessus, d'attribuer la valeur de la ComboBox à un label.caption.

Imaginons que j'ai créé n label. Dans ce cas la, comment faire pour que lorsque j'ajoute un second produit, label2.caption prenne la valeur de ma Combobox,lorsque j'ajoute un troisième produit, label3.caption prenne la valeur de ma Combobox etc ...

Voici le code que j'ai essayé, mais celui-ci me donne toujours n = 1.

Private Sub CommandButton1_Click()
If n "" Then n 1
Controls("Label" & n) = Combobox1
n = n + 1
End Sub


Merci, a bientot
Benjamin

9 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 févr. 2012 à 12:48
comment est déclarée ta variable n ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 févr. 2012 à 12:51
Bonjour,
Qu'as-tu fait de ma réponse dans ton autre discussion ? Rien ?
Pour mémoire :
déclare donc ta variable n en Static (ton aide VBA sur ce mot)!

As-tu ouvert ton aide VBA ?
En as-tu profité pour, au passage, apprendre ce qu'était la portée d'un variable ?*
Ou viens-tu simplement chercher ici ce que tu n'auras qu'à copier (et je serai alors bien évidemment totalement absent !) ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 févr. 2012 à 13:16
c'est la journée des "je recopie ma question, j'aurais peut etre ma réponse..." ?

ucfoutu veille au grain, dit donc !

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 févr. 2012 à 13:23
Bonjour, Renfield,
s'il n'y avait que cela !
regarde la discussion que je viens d'ouvrir à l'instant dans le bar et dont je comprendrais (puisque écrite dans un élan de révolte) qu'elle fût supprimée purement et simplement :

Je vis des moments de grande lassitude.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 févr. 2012 à 14:01
Lien corrigé


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
benosty Messages postés 6 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 28 février 2012
28 févr. 2012 à 19:30
Un grand merci à vous pour votre compréhension. Je suis nouveau sur le forum ainsi que dans l'univers de la programmation et je dois avouer que j'ai été très bien accueilli, très bien redirigé entre les rubriques et très bien rabaissé par le grand cavalier et son petit compagnon. Ce duo de robots n'a sans doute jamais connu l'erreur et l'apprentissage semble-t-il.
Bref , tout ce qu'il faut pour vous donner envie de construire ensemble une réponse qui puisse servir à la communauté par la suite. Car n'est ce pas ça aussi l'utilité des forums?

Vous avez cependant laissé s'échapper d'entre vos dents bien serrées une réponse à ma question. >> bravo, bravo ucfoutu pour le conseil : "déclare donc ta variable n en Static (ton aide VBA sur ce mot)!"

Du coup, j'ai le code suivant :

Private Sub CommandButton1_Click()
Static n
If n "" Then n 1
Controls("Label" & n) = Combobox1
n = n + 1
End Sub

Oui mais voila depuis le sujet s'est complexifié et je vous propose un code (concoter par mes soins, je précise pour pas me refaire engueulélélélé..)
qui doit répondre a ceci :

je souhaite que ce code passe directement à n = 2 si : avant de cliquer sur CommandButton1 pour la PREMIERE FOIS label1.caption <> ""

à n = 3 si : avant de cliquer sur CommandButton1 pour la PREMIERE FOIS label1.caption <> ""
et label2.caption <> ""

Bref que n correspond au premier labeln.caption = "" dans une liste de 20 label

Du coup :

'AJOUTER AU PANIER

Dim TestRemp As Boolean
dim p as integer
Static n

TestRemp = False 'teste le remplissage des labels
p = 0

If label1.Caption = "" Then 'si le premier des label n'est pas rempli alors tous les labels sont vides : la procédure vue précédèment est lancée.
If n "" Then n 1
Controls("Label" & n) = Combobox1
n = n + 1
Else: 'si le premier des label est rempli alors chercher le premier labeln.caption = ""

Do
Do While p < 20
p = p + 1
If Controls("label" & p) <> "" Then
TestRemp = True
Exit Do
End If
Loop
Loop Until TestRemp = false

n = p
Controls("Label" & n) = Combobox1

End If


Voila mes chères amis, admins et autres internautes. Si vous êtes arrivés jusqu'au bout de ce message j'espère que vous aurez encore un peu de argne pour me répondre. Vous connaissant je n'en doute pas..

Benjamin
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 févr. 2012 à 19:59
Bon!
le prince des robots va maintenant laisser filer autre choses entre ses dents (bien qu'absentes et remplacées aujourd'hui, elles se serrent fort bien) :
Tu n'es pas sur un Chat ni dans un salon.
On ne change ici pas la donne et on n'attend pas que d'autres suivent tes changements de donne.
Le problème n'est plus celui du départ ?
Et la prochaine évolution de ton mécanisme devrait entraîner, selon toi, une évolyution des réponses, au gré de tes vagues ?
Sans moi. Tu m'as coupé le sifflet ! Ton problème (son évolution) dépasse soudain toutes mes connaissances et même, pour le coup, ma compréhension, voire directement mon agilité et mon intelligence. Je suis soudain devenu muet (mais, tu vas le constater, un muet très sélectif, en fonction du demandeur).
Je ne peux que te souhaiter de trouver un autre seigneur pour te guider. Il y en a (s'ils le veulent et ce sera leur choix).

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 févr. 2012 à 21:07
On est bénévoles, altruistes, je dirai, même.
Le but n'est pas pour nous d'étaler ce qu'on sais, ou que l'on pense savoir... On tente de répondre, de s'approprier les problemes, pour donner des réponses adaptées et personnalisées. Il faut parfois une vision d'ensemble du probleme, pour voir si la solution colle avec la problematique, et non le probleme précis...
Inutile de s'attarder davantage sur le Hors Sujet...


concernant ton probleme, il serait plus simple, et plus propre d'utiliser un ListView, en mode Report

ca permettrait de ne plus t'occuper de n labels
de gérer un scrollbar, donc un grand nombre d'articles
de coller avec le look & feel de windows

pour ajouter un listview
Ctrl+T (Menu Projet > Composants)
Microsoft Windows Common Controls 6.0

(a vérifier le nom exact, je te dis cela de tete)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
benosty Messages postés 6 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 28 février 2012
28 févr. 2012 à 22:17
Merci pour ta réponse Renfield qui a le mérite d'être calme et qui ouvre sur quelque chose de constructif. Je ne connais pas tout les termes que tu as utiliser mais je chercherai demain pour voir ce que l'on peut faire avec tout ça. Merci, bonne soirée.
0
Rejoignez-nous