Listbox transférée Quantité

Bonjour
Quelqu'un peut-il m'aider s'il vous plaît

Il existe un transfert de formulaire utilisateur1

En raison du grand nombre de catégories, j'ai ajouté listbox1 au formulaire

Lorsque les données sont transférées vers la listbox, cela fonctionne correctement, mais lorsqu'elles sont transférées vers la feuille de calcul, elles n'enregistrent ni ne transfèrent l'inventaire. Il y a une erreur et je n'en connais pas la raison.

Bonjour

S'il vous plaît, aidez-moi si votre temps le permet

Bonjour

Si j'ouvre votre userform, la listbox n'est pas chargée

Pouvez-vous expliquer comment cela fonctionne ou plutôt ce que doit contenir la listbox1 à l'ouverture de l'USF ou alors en fonction de quoi elle doit se remplir

Bonjour

Merci d'avoir répondu à ma question

Formulaire appelé transfèrent

Il fonctionne très bien

J'ai conçu un formulaire mais j'y ai ajouté une zone de liste transfèrent١

je veux un formulaire transfèrent١ Fonctionne comme transfèrent Cependant, avec la différence dans la list box, cela est dû au grand nombre d'articles transférés dans la list box puis enregistrés dans la feuille, la quantité étant déduite d'un magasin à l'autre.

J'espère avoir transmis mon idée

Bonjour,

Sinon, qu'est ce qui change à part un bouton dans votre dernier fichier ?

J'ai conçu un formulaire mais j'y ai ajouté une zone de liste transfèrent١

Ca je l'ai vu dans votre premier fichier...

Mais vous ne répondez pas aux questions posées dans mon post.

Il y a un problème dans le deuxième fichier, qui est la méthode de code déduisant la quantité Vers le prochain magasin

eazr fa'ana lilghataa laysat jayidat almilafi alawil yaemal binajah kama 'ashart sabiqan wakud dakhil almilafi aydan mae aleilm 'ana khasm alkamih takun mubasharatan walakan faa almilafi althaanaa hawalt 'an takun alkamiyh marhalah 'iilaa murabae alqayimat dun khasm alkamih walakan takhsam baed 'iidafat al'asnaf dakhil murabae alqayimat min khilal ziri alhifz

j'espère que tu ouvriras Userform transférée1

Entrez quelques éléments dans la zone de liste, puis enregistrez-les dans la feuille, mais cela ne fonctionne pas. Vous voyez, le code est bon. Vous souhaitez modifier la méthode du code pour qu'il fonctionne dans la zone de liste avec des quantités remises.

On est toujours au même point vous ne réponde pas aux questions posées

Tant que vous n'expliquez pas comment vous fonctionnez après l'ouverture de votre Usf transfert1 pour remplir la listbox, je ne peux rien faire pour vous.

NB : c'est quoi ce que vous écrivez ici ??? -> https://forum.excel-pratique.com/s/goto/1184250

Désolé, ma langue n'est pas bonne

Le deuxième fichier est Usf transfert1

Cela signifie que j'ajoute plus d'un article à la zone de liste via le bouton Ajout Listbox, sachant que la quantité n'est pas réellement déduite du magasin décaissée à l'autre magasin.

Cependant, la quantité est déduite via le bouton Transfert

Tableau

Mais le

code vba est différent du transfert usf

Et voici le code

Private Sub MajInventaire()
Dim QS&, n&, v
   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
For v = 0 To ListBox1.ListCount - 1
      With .Cells(lgD, 3)
         If flgAdd = 0 Then
            .Offset(, -2) = ListBox1.List(v, 3)           '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) + Quantitetr '
         End If
         lgT = lgT + 1

      End With
      .Protect: Application.ScreenUpdating = -1
      Next
   End With

End Sub
Private Sub LigneTransfert()
Dim v
   'remplir une ligne sur le tableau de la feuille "Transfert",
   'mais s'il n'y a plus de ligne libre, on ne fait rien !
   With Worksheets("Transfert")
   'Lastrow = Range("a" & Rows.Count).End(xlUp).Row + 1

      lgT = .Cells(Rows.Count, 1).End(3).Row + 1
      For v = 0 To ListBox1.ListCount - 1

      If lgT = 650000 Then
         MsgBox "Le tableau en feuille Transfert est plein !", 48
         lgT = 0: Exit Sub   'on fait rien, et on sort de la sub !
      End If
      Dim Stock1&, Stock2&
      Application.ScreenUpdating = 0: .Unprotect
      ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
      Stock2 = Val(stocktr): Stock1 = Stock2 + QT
      ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
      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, 7)       'Unité
         .Offset(, 6) = Date        'Date
         .Offset(, 7) = ComboBox1   'Provenance
         .Offset(, 8) = ComboBox2   '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
         .Offset(, 13) = Format(Now, "mm/dd/yyyy hh:mm am/pm")
         lgT = lgT + 1
      End With
      .Protect: Application.ScreenUpdating = -1
      Next
   End With
End Sub
Private Sub UndoOpInv()
   Application.ScreenUpdating = 0
   With Worksheets("Inventaire")
      .Unprotect
      With .Cells(lgS, 3): .Value = .Value + QT: End With
      With .Cells(lgD, 3)
         If flgAdd Then .Offset(, -3).Resize(, 12).ClearContents _
            Else .Value = .Value - QT
      End With
      .Protect
   End With
   Application.ScreenUpdating = -1
End Sub
compress 5304

Ezra, peux-tu expliquer mon point de vue s'il te plaît, Dan

Conclusion
Je voulais réduire la quantité via Listbox comme dans USF Transfer1
Pas comme dans le transfert usf
Directement via la zone de texte
Cela ajoute plus d'une catégorie à la zone de liste

Re

Je n'ai pas besoin que vous postiez les codes dans vos demandes puisqu'ils sont dans votre fichier.

Pour votre demande, je pense avoir tout de même réussi à voir quelque chose (enfin je crois)

Allez dans le code Private Sub LigneTransfert() et modifiez cette ligne

.Offset(, 5) = ListBox1.List(v, 5) 'Unité

A moins que vous vouliez mettre une date en colonne N hors du tableau, la ligne suivante doit être supprimée

.Offset(, 13) = Format(Now, "mm/dd/yyyy hh:mm am/pm") 

Cela ajoute plus d'une catégorie à la zone de liste

Dans le code Private Sub CommandButton2_Click(), vous devez ajouter cette ligne juste avant le END SUB

ComboBox1.Clear

Mon conseil est que vous devriez poser vos questions à celui qui vous a fait tous ces codes
C'est d'une complication à lire et à suivre (une "usine à gaz") vraiment.

Cordialement

https://forum.excel-pratique.com/excel/inserer-un-ligne-au-lieu-de-saisie-150002#p925977

Bonjour mon ami Dan
Je ne suis pas doué en code VBA
Par conséquent, j'ai cité ce sujet du site, en particulier M.
issam
C'est une fiche de transfert de quantités entre magasins, comme je l'ai indiqué dans le lien
Les virements se font sur la fiche Feuil14 (Transfert).
Les soldes des quantités entrepôt augmentent et diminuent jusqu'à Feuil8 (Inventaire)
Mais le problème ici est différent dans USF Transfer
Parce que le processus de conversion est spécifique à chaque type
Ça marche bien
Je voulais que le processus de transfert entre les ports se fasse via la zone de liste, comme dans USF Transfer 1
De ComboBox1 à ComboBox2
Le code de l'article est la colonne 2 et la quantité est ici dans la zone de liste colonne 10

S'il y a deux codes différents autres que celui que j'ai joint ci-dessus

Private Sub LigneTransfert()
Private Sub MajInventaire()
J'aimerais que tu le fasses pour moi

Si ton temps me le permet

With .Cells(lgT, 1)
         .Value = ListBox1.List(v, 1)          'Code article

'je vais te donner un exemple
'la différence
'usf Transfert1

With .Cells(lgT, 1)
         .Value = CB_Pièce        'Code article
'je vais te donner un exemple
'la différence
'usf Transfert 

Re

Pourquoi vous m'expliquez tout cela ? J'ai compris ce que vous voulez faire

Faites ce que je vous ai écrit dans mon post précédent

Merci monsieur Dan

J'ai fait ce que tu m'as demandé

Mais pourquoi coder ?

Dans le code

Private Sub CommandButton2_Click(), vous devez ajouter cette ligne juste avant le END SUB

Que veut dire cette ligne ?
Ajouter à la zone de liste uniquement et ne pas enregistrer dans la feuille de calcul
Parce qu'il y a un solde de stock dans la feuille de calcul Feuil8(Inventaire )

re

Private Sub CommandButton2_Click(), vous devez ajouter cette ligne juste avant le END SUB
Que veut dire cette ligne ?
Ajouter à la zone de liste uniquement et ne pas enregistrer dans la feuille de calcul

Heu, vous comprenez un peu l'anglais ?
Combobox1.CLEAR --> Elle sert à supprimer la valeur de la combobox1 lorsque vous avez ajouté dans la listbox via votre bouton.
Au vu de votre question, j'ai l'impression que vous n'avez pas testé

J'ai une question : est-ce vous qui avez réalisé le fichier ou avez-vous prit un fichier sur un forum et vous essayez de l'adapter ?
-

Oui, je l'ai pris sur les forums et je l'ai modifié comme je l'ai mentionné précédemment, et voici le foru

https://forum.excel-pratique.com/excel/inserer-un-ligne-au-lieu-de-saisie-150002#p925977

Rechercher des sujets similaires à "listbox transferee quantite"