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 Sub

Merci 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()
Bonjour

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 Sub

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

compress 3792

La série change après chaque sauvegarde, alors ne vous inquiétez pas

Bonsoir

s'il vous plaît, aidez

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 Sub

Maintenant 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

Rechercher des sujets similaires à "listbox transferee quantite"