Listbox transférée Quantité
C'est d'une complication ce fichier ! A voir certaines lignes de code, je suis presque certains que cela provient d'un fichier réalisé avec Excel 2003
Pourquoi avoir rajouté trois textbox en dessous à droite. Je ne comprends pas l'utilité.
La vue placée ici https://forum.excel-pratique.com/s/goto/1184317 est provoquée parce que vous n'avez rien en Textbox81
NB : remplacez le code Ajout listbox dans votre usf par celui-ci
Private Sub CommandButton2_Click()
Dim n As Byte
With Me.ListBox1
.AddItem Me.TextBox1
n = Me.ListBox1.ListCount - 1
.List(n, 1) = Me.CB_Pièce
.List(n, 2) = Me.catetr
.List(n, 3) = Me.Desitr
'.List(n, 4) = CDbl(Me.TextBox3)
.List(n, 4) = Me.reftr
.List(n, 5) = Me.unitr
.List(n, 6) = Me.seuil
.List(n, 7) = Me.TextBox85
.List(n, 8) = Me.Quantitetr
.List(n, 9) = Me.TextBox81
End With
With Me
.TextBox1.SetFocus
.TextBox1 = .TextBox1.Value + 1
.CB_Pièce.Text = vbNullString
.TextBox82.Value = vbNullString
.TextBox81.Value = vbNullString
.ComboBox1.Clear
End With
End SubMerci Dan
Mais bouton Transfert
Tableau n'envoie pas de données à la feuille Feuil14(Transfert)
Il n'équilibre pas les stocks d'un magasin à l'autre dans la feuille de calcul Feuil8 (Inventaire).
Y a-t-il des erreurs lors de la modification du code que vous avez modifié ?
Private Sub LigneTransfert()
Private Sub MajInventaire()Bonjour Dan
Tu sais qu'il y a 2
usf transfert usf, usf transfert1
La différence entre eux est que USF Transfert1
Il a une listbox
Il y a une erreur lors de l'enregistrement des données de la zone de liste dans la feuille de calcul
Il est nécessaire de sauvegarder les données dans la feuille Feuil14 (Transfert).
Actualisation et ajout de stock Feuil8 (Inventaire)
Il semble y avoir une erreur lors du développement du code
Private Sub LigneTransfert()
Private Sub MajInventaire()1. Dans le code posté ici --> https://forum.excel-pratique.com/s/goto/1185460 pourquoi désactivez-vous la ligne Textbox1=textbox1+1
Cela sert à augmenter le numéro dans votre textbox1 pour ajouter ce numéro en colonne M dans la feuille Transfert
2. Dans le code Private Sub CB_Pièce_Change(), juste en dessous de With combobox1, il faut activer la ligne --> .CLEAR
3. Pour le Transfert, essayez le code comme ceci :
Private Sub LigneTransfert()
Dim v As Integer
'Dim lgt as integer
With Worksheets("Transfert")
lgT = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Application.ScreenUpdating = False
For v = 0 To ListBox1.ListCount - 1
.Unprotect
With .Cells(lgT, 1)
.Value = ListBox1.List(v, 1) 'Code article
.Offset(, 1) = ListBox1.List(v, 2) 'Catégorie
.Offset(, 2) = ListBox1.List(v, 3) 'Désignation
.Offset(, 3) = ListBox1.List(v, 4) 'Référence
' .Offset(, 4) = ListBox1.List(v, 4) 'Stock actuel
.Offset(, 5) = ListBox1.List(v, 5) 'Unité
.Offset(, 6) = Date 'Date
.Offset(, 7) = ComboBox1.value 'Provenance
.Offset(, 8) = ComboBox2.value 'Destination
.Offset(, 9) = QT '= ListBox1.List(v, 13) 'Quantité transférée
'.Offset(, 10) = Stock2 'STOCK PR
'.Offset(, 11) = QD 'STOCK DES
.Offset(, 12) = TextBox1.value
.Offset(, 13) = Format(Now, "mm/dd/yyyy hh:mm am/pm")
lgT = lgT + 1
End With
.Protect
Next v
Application.ScreenUpdating = True
End With
End Subrem : la variable LgT& est déclarée dans le module Routines. Cela n'a aucun intérêt là bas puisqu'elle ne sert que dans le code. Vous pouvez la supprimer du module et activer la ligne dans le code "Ligne Transfert" ci-dessus
Bonjour Dan
Super, bravo
cordialement Code
Private Sub MajInventaire()
Il est destiné aux stocks pour les transferts inter-magasins
Ajout et remise de magasin en magasin
Dans mon cas, la quantité est convertie en transferts de bons Il doit être ajouté et déduit entre les magasins dans la fiche d'inventaire
Bonjour dan
1. Dans le code posté ici --> https://forum.excel-pratique.com/s/goto/1185460 pourquoi désactivez-vous la ligne Textbox1=textbox1+1
Cela sert à augmenter le numéro dans votre textbox1 pour ajouter ce numéro en colonne M dans la feuille Transfert
La série change après chaque sauvegarde, alors ne vous inquiétez pas
Bonjour
Il y a du code et je veux le développer
Passer de la zone de texte et de la zone de liste déroulante à la zone de liste
Private Sub MajInventaire()
Dim QS&, n&
With Worksheets("Inventaire")
flgAdd = 0
n = UBound(TblInv): lgS = 0: lgD = 0
GetLig ComboBox1, n, lgS: If lgS = 0 Then Exit Sub
GetLig ComboBox2, n, lgD: If lgD > 0 Then flgAdd = 1
If lgD = 0 Then
flgAdd = 0: lgD = n + 3
If lgD = 65000 Then
MsgBox "Le tableau en feuille Inventaire est plein !", 48
lgD = 0: Exit Sub 'on fait rien, et on sort de la sub !
End If
End If
Application.ScreenUpdating = 0: .Unprotect: QT = Val(Quantitetr)
With .Cells(lgS, 11) ' était (lgS, 3)
QS = .Value + QT: .Value = QS: stocktr = QS
End With
Application.EnableEvents = False
.Activate ' active la feuille
If flgAdd = 0 Then
' insère une ligne
.Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Unprotect
.Rows("5:5").Copy ' copie la ligne en dessous
.Rows("4:4").PasteSpecial xlPasteFormats ' colle le format
.Range("D5").Copy ' copie la cellule
.Range("D4").Select ' sélectionne la cellule
ActiveSheet.Paste ' colle (formule incluse)
Application.EnableEvents = True
lgD = 4
End If
With .Cells(lgD, 3)
If flgAdd = 0 Then
.Offset(, -2) = CB_Pièce 'Code article
.Offset(, -1) = catetr 'Catégorie
.Offset(, 2) = Val(seuil) 'Seuil d'alerte
.Offset(, 3) = Desitr 'Descriptif
.Offset(, 4) = reftr 'Référence
.Offset(, 5) = unitr 'Unité de mesure
.Offset(, 6) = "Transfert" 'Observations
.Offset(, 9) = ComboBox2 'Magasin
QD = Val(.Value) + QT: .Value = QD 'Stock actuel
Else
.Offset(, 7) = .Offset(, 7) + Quantitetr '
End If
End With
.Protect: Application.ScreenUpdating = -1
End With
End Sub
Bonjour
s'il vous plaît, aidez
Hum... il me semblait que votre problème était terminé ...
Il y a du code et je veux le développer
Passer de la zone de texte et de la zone de liste déroulante à la zone de liste
quelle zone texte ?
quelle zone liste déroulante (il y a 3 listes) ?
Désolé je ne comprends rien à votre demande
Bonjour Dan
USF transfert ,
Il déduit la quantité, c'est-à-dire transfère la quantité d'un magasin à un autre magasin dans la feuille de calcul Inventaire (augmentation ou diminution).
Mais en USF transfert1
La quantité n'est pas diminuée, c'est-à-dire que la quantité est transférée d'un magasin à un autre magasin dans la feuille de calcul Inventaire en raison d'une erreur dans les codes
Vous pouvez faire une expérience par transfert
Pour voir le résultat du transfert de la quantité du magasin OA01 vers le magasin KH01
Vous verrez que transfert usf fonctionne bien contrairement à USF transfert1
Bonjour
essayez votre code comme ceci
Private Sub MajInventaire()
Dim v As Integer
With Worksheets("Inventaire")
lgD = .Cells(Rows.Count, 1).End(xlUp).Row + 1
For v = 0 To ListBox1.ListCount - 1
With .Cells(lgD, 3)
If flgAdd = 0 Then
.Offset(, -2) = ListBox1.List(v, 1) 'Code article
.Offset(, -1) = ListBox1.List(v, 4) 'Catégorie
.Offset(, 2) = ListBox1.List(v, 5) 'Seuil d'alerte
.Offset(, 3) = ListBox1.List(v, 6) 'Descriptif
.Offset(, 4) = ListBox1.List(v, 7) 'Référence
.Offset(, 5) = ListBox1.List(v, 8) 'Unité de mesure
.Offset(, 6) = "Transfert" 'Observations
.Offset(, 9) = ComboBox2 'Magasin
QD = Val(.Value) + QT: .Value = QD 'Stock actuel
Else
.Offset(, 7) = .Offset(, 7) + ListBox1.List(v, 9)
End If
lgT = lgT + 1
End With
.Protect
Next v
End With
End SubMaintenant je pense que vous auriez mieux fait de refaire un nouveau plutot que d'adapter un fichier venu d'ailleurs
NB : Juste à titre d'information, sachez que si vous avez des difficultés à expliquer en Français (ce que vous m'aviez écrit précédemment) et que vous aimez mieux l'anglais, le site vous permet aussi de faire vos demandes via ce lien --> https://forum.excel-pratique.com/en