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.
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.