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