XL 2010 Transfert de quantité

issam salem

XLDnaute Junior
Bonjour;

Alors j'ai un projet de gestion du stock, je veux faire une option de transfert du stock entre magasin (voir photo userforme transfert) à partir de tableau inventaire (photo inventaire)
J’ai commencé a programmé le userforme transfert par exemple le remplit de combobox le recherche par magasin (code article+prévenance) etc...
Actuellement je veux programmé le commandeboutton transfert du stock (voir photo userforme transfert) pour le but de transfert la quantité transférée saisie sur le textbox de prévenance sélectionner vers la destination sélectionnes avec bien sur le mise à jour du quantité

Exemple sur photo userforme transfert:

J’ai le code article SM004.0032 de prévenance TE01 avec un stock prévenance de 200 kg, et la destination KH01
Alors je veux transferer la quantité 25 kg sur la destination KH01 avec la mise ajour sur le tableau inventaire
Alors le résultat fini c'est
Le stock actuel d'article SM004.0032 de magasin TE01 sera 200-25=175
Et le stock actuel d'article SM004.0032 de magasin kh01 sera 25 (la quantité transférée)
 

Pièces jointes

  • Capture userforme transfert.PNG
    Capture userforme transfert.PNG
    107 KB · Affichages: 197
  • Capture inventaire.PNG
    Capture inventaire.PNG
    70.6 KB · Affichages: 51

soan

XLDnaute Barbatruc
Inactif
@issam salem

lis d'abord mon post #210 précédent.

edit :
pour un Transfert de stock, il me semble bien que ce que j'avais fait était déjà bon,
ou au moins en grande partie ; si oui, il suffira de compléter mon code VBA. :)

ce que j'avais fait était sur la feuille "Inventaire" (ce qui écrasait les formules initiales) ; puis
aussi sur la feuille "Transfert" ; et pour les deux : avec écriture en dur des données.


soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour @issam salem, jean-marie,

lis d'abord mes 2 posts précédents #210 et #211.

dans ton post #204, tu as écrit : « comment transformer ce code pour insérer une ligne
en position 4 au lieu de mettre en bas du tableau inventaire ? »

dans le code VBA que tu montres, la partie qui est concernée est celle-ci :

VB:
    If lgD = 0 Then
      flgAdd = -1: 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
comme tu avais dit que tu ne voulais pas de limite pour le tableau,
tu aurais plutôt dû montrer un code VBA avec ceci :

Code:
    If lgD = 0 Then
      flgAdd = -1: lgD = n + 3
    End If
remplace cette partie de code par :
Code:
    If lgD = 0 Then
      .Rows(4).Insert xlDown, 1   'insertion d'une nouvelle ligne, en ligne n° 4
      .Range("J4:K4") = 0         'Entrées = 0 ; Sorties = 0
      flgAdd = -1: lgD = 4        'il s'agit d'un ajout ; ligne destination = ligne n° 4
    End If
c'est non testé, mais je pense que ça devrait aller ; à toi d'essayer. ;)

---------------------------------------------------------------------------

pour la limite du tableau, si tu as changé d'avis, alors mets ceci :
Code:
    If lgD = 0 Then
      flgAdd = -1                 'il s'agit d'un ajout
      If n + 3 = 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
      .Rows(4).Insert xlDown, 1   'insertion d'une nouvelle ligne, en ligne n° 4
      .Range("J4:K4") = 0         'Entrées = 0 ; Sorties = 0
      lgD = 4                     'ligne destination = ligne n° 4
    End If
bonnes fêtes de Noël ! 🎄

soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@ChTi160, @issam salem,

sur ton post #205 : « Pourquoi ajouter une ligne en Ligne 4 ? »

sur ton post #208 : « Après réflexion, je ne comprends pas ce que veut dire ceci :

insérer une ligne en position 4 au lieu de mettre en bas de tableau inventaire
car normalement, on modifie une ligne existante dans cette feuille "Inventaire"
»
* comme précisé par issam, c'est bien sur le tableau de la feuille "Inventaire"

* la ligne des en-têtes est la ligne n° 3 ➯ la 1ère ligne de données est la ligne n° 4

* insérer une nouvelle ligne en ligne n° 4 (et pas sous la dernière ligne du tableau) est
une méthode bien utile pour avoir les données les plus récentes en haut de tableau ;
cela évite d'avoir à faire défiler la feuille vers le bas pour voir quelles sont les toutes
dernières données ; mais bien sûr, pour ne pas écraser les données déjà existantes de
la ligne n° 4, on fait une insertion de ligne avec décalage bas des données, avec :

.Insert Shift:=xlDown

* à propos, on peut mettre plus simplement : .Rows(4).Insert 4, 1
car le 2ème 4 = xlDown et 1 = xlFormatFromLeftOrAbove ; donc ici, comme c'est un
décalage vertical, c'est le format de la ligne en dessous (ligne n° 5) qui est copié sur
la ligne n° 4 ajoutée.


soan
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 195
Membres
103 153
dernier inscrit
SamirN