Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 ajout automatique de quantités de sortie de stock au méme produit existant deja au tableau

afoullous

XLDnaute Nouveau
Bonjour

en fait j ai unserform avec deux listbox appelé SORTIE dont le code d initialisation est celui ci :

'ComboBox1.List = Array("payée", "") 'alimente la ComboBox1
ActiveSheet.Unprotect Password:="fs2"
'Set O1 = Sheets("list der") 'définit l'onglet O1
'TC = O1.Range("E1").CurrentRegion 'définit le tableau de cellules TC
'Me.ListBox2.ColumnCount = 2 'définit le nombre de colonnes de la ListBox1

' ListBox2.List = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row).Value
Set O1 = Sheets("BDD2") 'définit l'onglet O1
Set F = Sheets("BDD2")
TC = O1.Range("A1").CurrentRegion 'définit le tableau de cellules TC
'On charge la combobox1 avec les données de la Bdd
'On charge la listbox1 avec les données de la Feuil1
Me.ListBox1.ColumnCount = 9 'définit le nombre de colonnes de la ListBox1
Me.ListBox1.ColumnWidths = "60;60;87;110;87;87;60;40;60"
ListBox1.ColumnHeads = True 'affiche les en-têtes

Me.ListBox3.ColumnCount = 5 'définit le nombre de colonnes de la ListBox1
Me.ListBox3.ColumnWidths = "190;60;87;87;87"
ListBox3.ColumnHeads = True 'affiche les en-têtes



For Ln = 2 To UBound(TC, 1)
ListBox1.AddItem
For j = 1 To 9
ListBox1.Column(j - 1, ListBox1.ListCount - 1) = TC(Ln, j)
Me.ComboBox3.AddItem Format(Date, "YYYY") - i

Next j
ListBox1.Column(9, ListBox1.ListCount - 1) = Ln




Next Ln
TextBox1 = UBound(TC, 1) - 1
TextBox2 = WorksheetFunction.Sum(O1.Range("G2:G" & UBound(TC, 1)))
'TextBox11.Value = Val(TextBox9.Value) * Val(TextBox10.Value)
'TextBox11.Value = Format(TextBox9 * TextBox10, "#,##0.00")

TextBox18 = WorksheetFunction.Sum(O1.Range("I2:I" & UBound(TC, 1)))
TextBox22 = WorksheetFunction.Average(F.Range("G2:G" & UBound(TC, 1)))
TextBox3 = Date
'TextBox9.Value = Val(Replace(TextBox9, ",", "."))
'TextBox10.Value = Val(Replace(TextBox10, ",", "."))


If Not TextBox2 = 0 Then TextBox16 = TextBox18 / TextBox2

With Sheets("list der")
ListBox2.List = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row).Value
End With


End Sub



et le code de bouton ajouter est celui ci :


Private Sub AJOUTER_Click() 'bouton "Ajouter"
ActiveSheet.Unprotect Password:="fs2"
Dim i As Byte 'déclare la variable I (Incrément)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide))
'oblige à renseigner toutes les TextBoxes
TextBox11.Value = Val(TextBox9.Value) * Val(TextBox10.Value)
For i = 1 To 9 'boucle sur les 9 TextBoxes

If Me.Controls("TextBox" & i + 2).Value = "" Then 'condition : si la TextBox est vide
MsgBox "Vous devez renseigner le champ " 'message
Me.Controls("TextBox" & i + 2).SetFocus 'place le curseur dans la TextBox
Exit Sub 'sort de la procédure
End If 'fin de la condition
Next i 'prochaine TextBox de la boucle

PLV = O1.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'définit la première ligne vide PLV de la colonne 1 (=A) de l'onglet O1
For i = 1 To 9 'boucle sur les 9 TextBoxes
'renvoie dans l'onglet O1 en cellule ligne PLV, colonne I, la valeur de la TextBox I+2 et efface son contenu
O1.Cells(PLV, i).Value = Me.Controls("TextBox" & i + 2).Value: Me.Controls("TextBox" & i + 2).Value = ""
Next i 'prochaine TextBox de la boucle
Unload Me
SORTIE.show 0
ActiveSheet.Protect Password:="fs2"
End Sub



Maintenant je cherche a ajouter sur chaque sortie de produit quand je le saisie dans la listbox appelé "listbox1" qu il s ajoute sans inserer une nouvelle ligne au dessous et que la ligne s insere juste quand le produit est nouveau et n existe pas dans le tableau des sorties.. la méme chose pour les entrées etc ...


j espere que ma question est claire.
 
Dernière édition:

afoullous

XLDnaute Nouveau
BONJOUR !
et si toi pas faire effort de parler mieux et expliquer le problème et ton besoin avec un fichier exemple toi pas avoir de réponse
Bonjour

en fait j ai unserform avec deux listbox appelé SORTIE dont le code d initialisation est celui ci :

'ComboBox1.List = Array("payée", "") 'alimente la ComboBox1
ActiveSheet.Unprotect Password:="fs2"
'Set O1 = Sheets("list der") 'définit l'onglet O1
'TC = O1.Range("E1").CurrentRegion 'définit le tableau de cellules TC
'Me.ListBox2.ColumnCount = 2 'définit le nombre de colonnes de la ListBox1

' ListBox2.List = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row).Value
Set O1 = Sheets("BDD2") 'définit l'onglet O1
Set F = Sheets("BDD2")
TC = O1.Range("A1").CurrentRegion 'définit le tableau de cellules TC
'On charge la combobox1 avec les données de la Bdd
'On charge la listbox1 avec les données de la Feuil1
Me.ListBox1.ColumnCount = 9 'définit le nombre de colonnes de la ListBox1
Me.ListBox1.ColumnWidths = "60;60;87;110;87;87;60;40;60"
ListBox1.ColumnHeads = True 'affiche les en-têtes

Me.ListBox3.ColumnCount = 5 'définit le nombre de colonnes de la ListBox1
Me.ListBox3.ColumnWidths = "190;60;87;87;87"
ListBox3.ColumnHeads = True 'affiche les en-têtes



For Ln = 2 To UBound(TC, 1)
ListBox1.AddItem
For j = 1 To 9
ListBox1.Column(j - 1, ListBox1.ListCount - 1) = TC(Ln, j)
Me.ComboBox3.AddItem Format(Date, "YYYY") - i

Next j
ListBox1.Column(9, ListBox1.ListCount - 1) = Ln




Next Ln
TextBox1 = UBound(TC, 1) - 1
TextBox2 = WorksheetFunction.Sum(O1.Range("G2:G" & UBound(TC, 1)))
'TextBox11.Value = Val(TextBox9.Value) * Val(TextBox10.Value)
'TextBox11.Value = Format(TextBox9 * TextBox10, "#,##0.00")

TextBox18 = WorksheetFunction.Sum(O1.Range("I2:I" & UBound(TC, 1)))
TextBox22 = WorksheetFunction.Average(F.Range("G2:G" & UBound(TC, 1)))
TextBox3 = Date
'TextBox9.Value = Val(Replace(TextBox9, ",", "."))
'TextBox10.Value = Val(Replace(TextBox10, ",", "."))


If Not TextBox2 = 0 Then TextBox16 = TextBox18 / TextBox2

With Sheets("list der")
ListBox2.List = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row).Value
End With


End Sub



et le code de bouton ajouter est celui ci :


Private Sub AJOUTER_Click() 'bouton "Ajouter"
ActiveSheet.Unprotect Password:="fs2"
Dim i As Byte 'déclare la variable I (Incrément)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide))
'oblige à renseigner toutes les TextBoxes
TextBox11.Value = Val(TextBox9.Value) * Val(TextBox10.Value)
For i = 1 To 9 'boucle sur les 9 TextBoxes

If Me.Controls("TextBox" & i + 2).Value = "" Then 'condition : si la TextBox est vide
MsgBox "Vous devez renseigner le champ " 'message
Me.Controls("TextBox" & i + 2).SetFocus 'place le curseur dans la TextBox
Exit Sub 'sort de la procédure
End If 'fin de la condition
Next i 'prochaine TextBox de la boucle

PLV = O1.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'définit la première ligne vide PLV de la colonne 1 (=A) de l'onglet O1
For i = 1 To 9 'boucle sur les 9 TextBoxes
'renvoie dans l'onglet O1 en cellule ligne PLV, colonne I, la valeur de la TextBox I+2 et efface son contenu
O1.Cells(PLV, i).Value = Me.Controls("TextBox" & i + 2).Value: Me.Controls("TextBox" & i + 2).Value = ""
Next i 'prochaine TextBox de la boucle
Unload Me
SORTIE.show 0
ActiveSheet.Protect Password:="fs2"
End Sub



Maintenant je cherche a ajouter sur chaque sortie de produit quand je le saisie dans la listbox appelé "listbox1" qu il s ajoute sans inserer une nouvelle ligne au dessous et que la ligne s insere juste quand le produit est nouveau et n existe pas dans le tableau des sorties.. la méme chose pour les entrées etc ...


j espere que ma question est claire.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…