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

issam salem

XLDnaute Junior
Re
Apres avoir lu ton message #187
Je me demande si j'ai bien compris là démarche lol
Le Magasine central TE01 est un magasine comme les autres?
Tout les magasins peuvent travailler sur les feuilles inventaire Transfert , Entrée ,Sortie ,autorisation (changer mot de pass) ?
Peux-tu me faire la liste des Acces possible selon que tu sois gérant ou Administrateur.
Un transfert se fait donc depuis un magasin (provenance) vers un magasin destination donc sur demande du deuxième au premier? C'est ça?
Tu parles aussi dans ce long fil de Commande peux tu m'en dire plus?
Ou voit on la Différence entre une Commande et une entrée.
Y 'a t'il une feuille Commande.
Jean marie
Votre réponds sur poste #188??
 

soan

XLDnaute Barbatruc
Inactif
Bonjour issam, jean-marie,

j'ai eu un très gros contre-temps ! 😭
c'est pour ça que j't'écris avec tant de retard ! :oops:

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

lien fichier : https://mon-partage.fr/f/nhSmlOGd/

avec ce fichier, ça fait bien le cumul des sorties. :) donc pour ton exemple du post #167 :
feuille "Inventaire" : total Sorties : 150 + 30 = 180 ; Stock actuel = 200 + 20 - 180 = 40

avec ce fichier aussi, rien n'est encore fait pour les Entrées, et pour la même raison
qu'avant : je veux d'abord terminer tout ce qui concerne les Sorties ! (la modif que
j'ai faite pour le cumul des Sorties sert aussi pour le cumul des Entrées, mais c'est
quand même incomplet pour les Entrées !)

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

je n'ai pas encore interdit le couper sur la feuille "Sorties", pour cette raison :

si tu ne veux pas qu'on supprime une ligne sur la feuille "Sorties", alors
pourquoi donc as-tu mis un bouton « Ciseaux » sur cette feuille ?

car si j'interdis le couper sur la feuille "Sorties", le bouton « Ciseaux »
de cette même feuille ne servira plus à rien ! alors faut supprimer
ce bouton « Ciseaux » devenu inutile ?

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

comme il est 4 h 25 du matin, je suis trop fatigué pour faire la suite ; je continuerai
bien plus tard (à partir de 15 h ou ce soir) à partir de ton post #171 (au début de la page 18).

ça fait qu'sur ton présent sujet, je suis en retard de 3 pages (18 à 20) ; je vais essayer
de rattraper le retard progressivement ; en attendant, continue avec jean-marie.


soan
 

soan

XLDnaute Barbatruc
Inactif
@issam salem

ajout : j'viens d'télécharger le fichier de ton post #171, mais j'l'ai pas encore ouvert ;
mon fichier v3 fait 6 367 Ko ; ton fichier V6 fait 9 022 Ko ! qu'est-ce que t'as mis
dedans ? un hippopotame ? un rhinocéros ? ou un éléphant ??? !!!


🦛 🦏 🐘

(au secours ! j'ose plus ouvrir ton fichier, moi, maint'nant ! 😂 🤣)

soan
 

issam salem

XLDnaute Junior
@issam salem

ajout : j'viens d'télécharger le fichier de ton post #171, mais j'l'ai pas encore ouvert ;
mon fichier v3 fait 6 367 Ko ; ton fichier V6 fait 9 022 Ko ! qu'est-ce que t'as mis
dedans ? un hippopotame ? un rhinocéros ? ou un éléphant ??? !!!


🦛🦏 🐘

(au secours ! j'ose plus ouvrir ton fichier, moi, maint'nant ! 😂 🤣)

soan
Bonjour soan
Alors j'ai déja dit au post 172 j'ai fait une petite modification tu peut télécharger le fichier au post 191
 

issam salem

XLDnaute Junior
Bonjour issam, jean-marie,

j'ai eu un très gros contre-temps ! 😭
c'est pour ça que j't'écris avec tant de retard ! :oops:

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

lien fichier : https://mon-partage.fr/f/nhSmlOGd/

avec ce fichier, ça fait bien le cumul des sorties. :) donc pour ton exemple du post #167 :
feuille "Inventaire" : total Sorties : 150 + 30 = 180 ; Stock actuel = 200 + 20 - 180 = 40

avec ce fichier aussi, rien n'est encore fait pour les Entrées, et pour la même raison
qu'avant : je veux d'abord terminer tout ce qui concerne les Sorties ! (la modif que
j'ai faite pour le cumul des Sorties sert aussi pour le cumul des Entrées, mais c'est
quand même incomplet pour les Entrées !)

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

je n'ai pas encore interdit le couper sur la feuille "Sorties", pour cette raison :

si tu ne veux pas qu'on supprime une ligne sur la feuille "Sorties", alors
pourquoi donc as-tu mis un bouton « Ciseaux » sur cette feuille ?

car si j'interdis le couper sur la feuille "Sorties", le bouton « Ciseaux »
de cette même feuille ne servira plus à rien ! alors faut supprimer
ce bouton « Ciseaux » devenu inutile ?

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

comme il est 4 h 25 du matin, je suis trop fatigué pour faire la suite ; je continuerai
bien plus tard (à partir de 15 h ou ce soir) à partir de ton post #171 (au début de la page 18).

ça fait qu'sur ton présent sujet, je suis en retard de 3 pages (18 à 20) ; je vais essayer
de rattraper le retard progressivement ; en attendant, continue avec jean-marie.


soan
Bonjour soan ,bon retour
C'est ganial maintenant le cumul est fonctionne très bien 🙏 🙏
alors pour le boutton ciseau j'interdis le couper sur la feuille "Sorties" si l'utilisateur est est pas l'admin alors j'ai fait cette fonction la
VB:
Sub suppression()
Dim MaCellule As String
MaCellule = "J" & ActiveCell.Row 'cellule d'observation
With Worksheets("Sorties")
    Application.ScreenUpdating = 0: .Unprotect
    If UserForm2.TextBox1 = "ADMIN"  Then
    .Range(MaCellule).Locked = False
Else
.Range(MaCellule).Locked = True
    .Protect: Application.ScreenUpdating = -1
    End If
  End With
End Sub
 
Dernière édition:

issam salem

XLDnaute Junior
Bonjour Issam ,soan
Que représente la feuille "Liste-TS" ?
Qu'est sensée faire , permettre cette procédure #201 ?
Le Classeur que tu as joins #191 contient l'ensemble des Feuilles ?
merci
jean marie
la feuille "Liste-TS" c'est la liste des travaux effectues par entreprise c'est quelque chose de spécial pour le moment
Le Classeur que tu as joins #191 contient l'ensemble des Feuilles--> oui
procédure #201 c'est l'interdiction de suppression si le utilisateur est différent de l'admin
 

issam salem

XLDnaute Junior
Bonjour soan , jean marie
alors comment transformer ce code pour insérer un ligne au position 4 au lieu de mètre en bas de tableau inventaire
VB:
Private Sub MajInventaire()
  Dim QS&, n&
  With Worksheets("Inventaire")
    n = UBound(TblInv): lgS = 0: lgD = 0
    GetLig ComboBox1, n, lgS: If lgS = 0 Then Exit Sub
    GetLig ComboBox2, n, lgD: flgAdd = 0
    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
    Application.ScreenUpdating = 0: .Unprotect: QT = Val(Quantitetr)
    With .Cells(lgS, 3)
      QS = .Value - QT: .Value = QS ': stocktr = QS
    End With
    With .Cells(lgD, 3)
      If flgAdd 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
      End If
      QD = Val(.Value) + QT: .Value = QD   'Stock actuel
    End With
    .Protect: Application.ScreenUpdating = -1
  End With
End Sub
 

ChTi160

XLDnaute Barbatruc
Pourquoi ?
Car , si tu mets en bas et que tu tries par la Date d'enregistrement par exemple , tu auras la même chose !
Comment sont définis les différentes références aux différents Bons ex : "Reception" etc etc
Merci
Excuse toutes ces question!
jean marie
 

issam salem

XLDnaute Junior
Bonsoir Issam
Bonsoir soan
Après réflexion , je ne comprends pas ce que veut dire par ceci :

car normalement , on modifie une Ligne existante dans cette feuille "Inventaire" ou alors il y'a des choses que je n'ai pas saisie Lol explique moi donc !

jean marie
Bonjour
alors faire un exemple de saisie un entrée après la validation la ligne est insérer automatiquement avec les données ajouter
ms sur transfert non est dans l'inventaire en peut modifier une ligne existante ms si le code n’existe pas dans le magasin destination il faut alors insérer un nouveau ligne.
 

soan

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

le fichier joint dans mon post #198 était ok pour faire correctement le cumul des sorties ;
dans le code VBA, la seule modif a été celle-ci : Module Ecritures_Lignes, Function SQ() :
j'ai juste enlevé le
Exit For qui était au bout de la ligne du milieu :
VB:
    For i = 1 To n
      If T(i, 1) = Pièce And T(i, k) = Mag Then Q = Q + T(i, 3)
    Next i
1) la fonction privée SQ() est appelée par la sub privée MajMvtInv() ;
cette sub est située juste en dessous de la fonction SQ()

2) que ce soit dans le mode Ajout ou le mode Modif :

a) la sub Ecrire_Sorties() appelle MajMvtInv() et met à jour correctement le tableau
de la feuille "Inventaire", avec écriture en dur des données et cumul des sorties.

b) la sub Ecrire_Entrées() appelle MajMvtInv() et met à jour correctement le tableau
de la feuille "Inventaire", avec écriture en dur des données et cumul des entrées.

pour b) je n'ai même pas eu besoin de changer le code VBA, car ma modif pour
le cumul des Sorties a automatiquement réglé le cumul des Entrées. 😊

donc pour moi, tout est fait et terminé pour les Sorties et pour les Entrées.


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

le bouton Ciseaux de la feuille "Sorties" appelle la sub Supprimer_Sorties()
du module de Feuil12 ; début de cette sub :

VB:
Sub Supprimer_Sorties()
  If ActiveSheet.Name <> "Sorties" Then Exit Sub
pour autoriser le couper par l'Admin uniquement, j'aurais ajouté le 2ème test :
VB:
Sub Supprimer_Sorties()
  If ActiveSheet.Name <> "Sorties" Then Exit Sub
  If UserForm2.TextBox1 <> "ADMIN" Then Exit Sub
mais si la sub suppression() de ton post #201 te convient : ok.

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

j'ai vu le fichier V6 de ton post #171 ; ça ne va pas car sans avoir rien changé
au code VBA, il y a d'emblée plein d'erreurs de compilation ! de toute façon,
même si ça allait et que je le modifie, c'est devenu impossible de joindre un
fichier via un site de partage de fichiers (voir nouvelle charte du site XLD).


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

j'avais encore le Transfert de stock avec écriture des données en dur à faire,
et je l'aurais fait à partir du fichier v3 précédent ; mais ça aussi est devenu
impossible, pour la même raison : ce sera impossible de passer le fichier
modifié via un site de partage de fichiers.

je rappelle que ça concerne d'abord la feuille "Inventaire", puis ensuite
la feuille "Transfert" ; et que c'est maintenant grandement facilité car
il n'y a plus de formules depuis l'écriture en dur des Sorties et l'écriture
en dur des Entrées ; donc sur "Inventaire", sans modifier le Stock initial,
ce sera facile de modifier ces 3 colonnes :

K "Sorties" ; J "Entrées" ; D "Stock actuel"


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

j'ai rendu visibles les nombreuses feuilles masquées, puis j'ai essayé de supprimer
les feuilles non concernées, pour alléger en taille le fichier ; mais tout est si lié et
imbriqué que ça n'a pas marché ; aussi, je laisse tomber : je te laisse voir la suite
avec @ChTi160 ou un autre intervenant ; bonne chance ! 🍀


soan
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote