Recuper valeur combobox pour alim cellules

quentin046

XLDnaute Nouveau
Bonjour a tous, étant novice en VBA j'aimerais avoir votre aide concernant un projet d'userform pour gérer un petit stock.

J'aimerais avec la référence que je choisie dans ma combobox pouvoir alimenter une cellule avec la quantité qui a été sélectionné dans l'userform et ainsi remplir un tableau. J'ai donc tapé un code qui marche pour la première valeur de ma combobox mais lorsque je veut prendre la deuxième valeur cela ne marche plus.

Private Sub CommandButton_valider_Click()

Dim Ctrl As Control
Dim colonne As Integer
Dim derligne As Integer
Dim item As Integer

With Worksheets("Stock")
'dire ou ce trouve la derniere value de libre dans le tableau
derligne = .Range("A65536").End(xlUp).Row + 1


'pour chaque insertion dans l'userform la valeur de la colonne est egale au TAG
For Each Ctrl In gestion_stock.Controls

colonne = Val(Ctrl.Tag)

If colonne > 0 Then .Cells(derligne, colonne) = Ctrl

Next

'si la combobox ne contient aucune valeur, alors ne pas mettre à jour (rien)
'If ComboBox_stock.Value = "" Then MsgBox (" Pas de référence choisie, vbcritical")
'Unload Me: Exit Sub


'ecriture sur la colonne 1 derniere cellule libre l'incrementation auto du chiffre de cde
Feuil4.Cells(derligne, 1) = Val(TextBox_cde)

End With
End Sub

Private Sub ComboBox_stock_Change()

Dim gel_1 As Integer
Dim gel_2 As Integer
Dim peigne_1 As Integer
Dim peigne_2 As Integer

'si la valeur de la combobox est egal au mot gel alors egal 1
If ComboBox_stock.Value = "gel" Then gel_1 = 1

'si la valeur de la combobox est egal au mot peigne alors egal 1
If ComboBox_stock.Value = "peigne" Then peigne_1 = 1


'gel_2 sert au numero de ligne
gel_2 = 3

'tant que ma cellule est different de nul
Do While Cells(gel_2, 10) <> ""

'descendre d'une cellule
Cells(gel_2, 10).Offset(1, 0).Select

'incrementer de 1 pour passer a la prochaine ligne
gel_2 = gel_2 + 1

Loop

'si gel_1 =1 alors la valeur de la cellule active est egal a la valeur de la texte box de quantite
If gel_1 = 1 Then ActiveCell.Value = gestion_stock.TextBox_quantite.Value
'gel_2 sert au numero de ligne



peigne_2 = 3

'tant que ma cellule est different de nul
Do While Cells(peigne_2, 12) <> ""

'descendre d'une cellule
Cells(peigne_2, 12).Offset(1, 0).Select

'incrementer de 1 pour passer a la prochaine ligne
peigne_2 = peigne_2 + 1

Loop


'si gel_1 =1 alors la valeur de la cellule active est egal a la valeur de la texte box de quantite
If peigne_1 = 1 Then ActiveCell.Value = gestion_stock.TextBox_quantite.Value


'Ferme l'UserForm nommé gestion_stock
Unload gestion_stock





End Sub
Je vous joint mon fichier excel.

En vous remerciant de l'attention que vous porterait à mon problème.
 

Pièces jointes

  • gestion stock-4.1.xlsm
    195.1 KB · Affichages: 55

Dranreb

XLDnaute Barbatruc
Re : Recuper valeur combobox pour alim cellules

On s'en sert en général dans presque toutes les applications utilisant des ComboBox puisque c'est le numéro dans son List de la ligne choisie (0 étant le 1er) et on trouve en général moyen d'en faire un accès direct vers ce qu'on veut sans être obligé de tester une à une toutes les valeurs possibles !
 

quentin046

XLDnaute Nouveau
Re : Recuper valeur combobox pour alim cellules

Ok merci j'ai réussi à le faire par contre et ce que je peut faire une boucle avec parce que je voudrais faire par exemple:
-si je choisi la valeur correspondant au mot "gel" je copie un chiffre dans une la cellule (3,10)
-si je choisi encore le mot "gel" je voudrais copier dans la cellule du dessous (4,10) (incrémenter de 1 a chaque fois)
-par contre si je choisi le mot "peigne" je voudrais copier ma valeur dans la cellule (3,12) et encore incrémenter de 1 à chaque nouvelle saisie de "peigne" et ainsi de suite.

et ce que c'est possible ou je dois faire des IF comme ceux-ci

If ComboBox_stock.ListIndex = 0 Then .Cells(3, 10) = TextBox_quantite.Value
If ComboBox_stock.ListIndex = 1 Then .Cells(3, 12) = TextBox_quantite.Value
If ComboBox_stock.ListIndex = 2 Then .Cells(3, 14) = TextBox_quantite.Value
...

Merci d'avance pour ta réponse
 

quentin046

XLDnaute Nouveau
Re : Recuper valeur combobox pour alim cellules

Un grand merci pour votre code qui me fait gagner beaucoup de temps et réduit considérablement mes lignes de code la seule dernière petite question qui me reste est pour l’incrémentation d'une cellule car car j’arrive à écrire dans la cellule 3 des différentes colonnes mais pas dans la 4,5,6...Car la ligne se remet tous le temps à 2, j'ai essayé de le mettre à l'initialisation de mon userforme mais sa me fait apparaitre mes 10 valeurs identique de J3 : J12.

Voici mon bout de code


For Each Ctrl In gestion_stock.Controls

ligne = 2
ligne = ligne + 1

.Cells(ligne, ComboBox_stock.ListIndex * 2 + 10) = TextBox_quantite.Value

'Ferme l'UserForm nommé gestion_stock
Unload gestion_stock


Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : Recuper valeur combobox pour alim cellules

Il faut naturellement mettre l'initialisation et l'incrémentation de Ligne à l'endroit approprié, et prendre les valeurs d'où il faut. Vous n'utilisez pas du tout le Ctrl de la boucle: vous envoyez toujours le même TextBox_quantité.Value simplement autant de fois qu'il y a de contrôles dans votre Userform, ce qui n'a me semble-t-il rien à voir.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87