XL 2013 ListBox.AddItem

pompaero

XLDnaute Impliqué
Bonjour à tous

J'ai un petit soucis avec l'AddItem d'une listbox. Je cherche à créer sur un bouton Modifier le code :
Si feuill 1 colonne F est égale à AddItem de listbox1 alors je modifier.
J'ai fais ce début de code If tabArticles(i, 6) = Me.Lst_Panier.AddItem Then mais ca bug.
Code:
Private Sub CommandButton10_Click()
Dim i As Long, j As Long
Dim tabArticles() As Variant
Dim nbLignes As Long

nbLignes = ThisWorkbook.Sheets("Panier").Range("A65536").End(xlUp).Row
tabArticles = ThisWorkbook.Sheets("Panier").Range("A1:R" & nbLignes + 1).Value
For i = 1 To nbLignes
If tabArticles(i, 6) = Me.Lst_Panier.AddItem Then
    If MsgBox("Voulez vous MODIFIER l'enregistrement de l'article ?", _
    vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
    tabArticles(i, 5) = Me.TextBox1.Value
    tabArticles(i, 12) = Me.TextBox2.Value
    Exit For
End If
Next i
ThisWorkbook.Sheets("Panier").Range("A1:R" & nbLignes + 1).Value = tabArticles
End Sub

Je dois passer certainement à côté de quelque chose de simple
Merci de votre aide.

Cdlt
 

Paritec

XLDnaute Barbatruc
Bonjour Pompaero le forum
si tu nous disais le but de ta macro !!!
là tu compares tabArticles(i, 6) = avec un élément que tu souhaites ajouter à ta LST_Panier !!! ????
il faut commencer par nous dire ce que tu veux faire et on va modifier
et aussi mettre ton fichier ce serait plus simple
a+
papou:)
 

pompaero

XLDnaute Impliqué
Bonjour Paritec, le forum

Bonjour la Lorraine, mon ancienne région, enfin juste à côté ;):)
C'est bien ce que je disais, pas facile à expliquer.. Lol et voulais justement éviter de joindre le fichier, mais bon pas grave, allons y.
C'est un défi pour moi ce fichier.
Le fichier est un catalogue ou des personnes vont choisir et faire leur commande, donc sur l'UF "U_Panier" j'ai créer un panier avant de valider l'ensemble de la commande. Ce panier est une ListBox (lst_Panier) qui s'alimente avec une macro (Affiche_Panier), garce à l'onglet "Panier". Ca c'est fais et ça marche.
C'est à partir de la, que je bloque.
Maintenant au click sur (lst_Panier) il y a un bouton (Modifier) qui apparait et permet de modifier la Qté et/ou Taille pour remettre à jour dans l'onglet "Panier", C'est mon fameux code précédent :) ,ENFIIIN !!!! :(, et ensuite la macro (Affiche_Panier) fera la MAJ du panier (lst_Panier).
Et voilou, voilou. ** Attention il y a des recherche d'image dans l'UF donc ça risque de Buguer.

Merci de ton aide
Cdlt.
 

Pièces jointes

  • Essai.xlsm
    204.4 KB · Affichages: 70

Paritec

XLDnaute Barbatruc
B onjour Pompaero le forum
bon alors il n'y a que des bugs c'est vrai mais modifies de la sorte déjà
cela va faire ce que tu espères (je pense)
mais là tu vas modifier ta liste tabarticles hors toi je pense que tu voulais modifier ta liste panier non??
bref essai et tu me rediras
a+
Papou:)
For i = 1 To nbLignes
If tabArticles(i, 6) = Me.Lst_Panier Then
If MsgBox("Voulez vous MODIFIER l'enregistrement de l'article ?", _
vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
tabArticles(i, 5) = Me.TextBox1.Value
tabArticles(i, 12) = Me.TextBox2.Value
Exit For
End If
Next i
 

Paritec

XLDnaute Barbatruc
Re Pompaero le forum
si tu veux modifier il faut aussi mettre à jour la listbox et les colonnes prix total alors voilà a tester pour toi
et tu me rediras
a+
papou:)

Private Sub CommandButton10_Click()
Dim i As Long, j As Long
Dim tabArticles() As Variant
Dim nbLignes As Long
nbLignes = ThisWorkbook.Sheets("Panier").Range("A65536").End(xlUp).Row
tabArticles = ThisWorkbook.Sheets("Panier").Range("A1:R" & nbLignes + 1).Value
For i = 1 To nbLignes
If tabArticles(i, 6) = Me.Lst_Panier Then
If MsgBox("Voulez vous MODIFIER l'enregistrement de l'article ?", _
vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
tabArticles(i, 5) = Me.TextBox1.Value
tabArticles(i, 12) = Me.TextBox2.Value
tabArticles(i, 16) = Me.TextBox1.Value * tabArticles(i, 13)
Me.Lst_Panier.List(Me.Lst_Panier.ListIndex, 1) = Me.TextBox1.Value
Me.Lst_Panier.List(Me.Lst_Panier.ListIndex, 3) = Me.TextBox2.Value
Me.Lst_Panier.List(Me.Lst_Panier.ListIndex, 5) = tabArticles(i, 16)
Exit For
End If
Next i
ThisWorkbook.Sheets("Panier").Range("A1:R" & nbLignes + 1).Value = tabArticles
End Sub
 

pompaero

XLDnaute Impliqué
Bonjour Paritec

Et oui, je m'en doutais pour les Bugs, mais voilà pour un défi je trouve que je m'en sort pas mal (au moins je suis arriver à présenter ce que je souhaitais, enfin pour le moment :))
il faut peut-être reprendre au début pour vérification avant de poursuivre, non ?

Sinon, c'est bien le résultat attendu que tu me propose mais je viens de me rendre compte que j'ai oublié la modification de la somme totale si on change la Qté.

Si c'est possible ? de vérifier ce que j'ai déjà fais ça serai sympas, cela éviterai d'ajouter des bugs .

Merci
 

pompaero

XLDnaute Impliqué
je viens de tester avec le changement de prix total, C'EST PARFAIS, en plus le code est simplifié et claire. Si j'arrivais à faire tous les codes comme cela, ça serai le TOP !! et pourrai enlever les quelques Textbox masquer vers le bas qui me servent de calcul.

Maintenant, je vais essayer de trouver pour le bouton supprimer.
 

ChTi160

XLDnaute Barbatruc
Bonjour pompaero
Bonjour Le Fil (Papou) ?Le Forum
pompaero
c'est un très beau projet !
Le fait est que tu emploies aussi un tableau comme "TabArticles" un peu partout .
pourquoi pas un tableau : "TabPanier" !
je m'intéresse moi aussi à ton fichier , car j'aime ce genre de Challenge .
tu regardes de temps en temps ce fil , je posterai ce que j'aurai pu faire (comme par exemple déclarer les variables , Nommer certains Controls) ça permet une meilleur compréhension .
Enfin je vais regarder ce que je peux faire pour participer .
Bonne continuation
Bonne fin de Journée
Amicalement
Jean marie
 

pompaero

XLDnaute Impliqué
Bonjour ChTi160

J'aime bien dépasser mes limites (la, pour le coup j'y suis arrivé lol)
Le coup du "TabPanier" je n'y avais pas pensé (cerveau de débutant !!) je vois que le sujet t'intéresse, et bien merci de ton soutien et des propositions que tu va faire. C'est le bien venu.
Au final, j'aimerai travailler en masquant tous les onglets et en avoir qu'un seul en feuille d'accueil.

Paritec :
Pour le supprimer, ben, je sais pas, lol !!! ce qui est le mieux, le plus simple, du moment que ça supprime dans l'onglet et la ListBox puis remettre les comptes à jour.
 

ChTi160

XLDnaute Barbatruc
Re
On pourrait imaginer
Si tu connais Remplacer tes Trois Userform par Un Seul ,Contenant un Multipage Lol
qui reprend Ex : en Page(0) "AGENTS" en Page(1) "PANIER" et l 'autre "ARTICLES" et ainsi de suite ...
je vais faire et te proposer des que possible ! Lol
Bonne continuation
Amicalement
Jean marie
 

Statistiques des forums

Discussions
312 972
Messages
2 094 056
Membres
105 931
dernier inscrit
Jojoseph