Soustraction avec sauvgarde de la nouvelle valeur

Je suis ravi d'avoir pu t'aider ! bonne continuation pour la suite !

dhany

Merci pour ton aide et à très vite ^^

PLUMEA

Bonjour,

Je reviens vers vous à propos de mon petit "logiciel" permettant de trier des colis,

dhany m'a énormément aidé et mon projet est sur le point d'aboutir. Après un certain nombre de test je me suis aperçu que la décrémentation des stocks ne se réalise que dans une palette même si la référence e été affecté à plusieurs palettes. j'aimerais que la décrémentation se fasse sur toutes les palettes qui possède cette référence,

Je pense que la ligne VBA à rajouter est simple mais je ne sais pas comment la trouver,

Savez-vous comment faire ?

Merci d'avance,

PLUMEA

3tri-pgi-forum.xlsm (96.28 Ko)

Bonjour PLUMEA,

Je te retourne ton fichier Excel :

6tri-pgi-forum.xlsm (97.62 Ko)

J'ai modifié uniquement le code VBA de Worksheet_Change, de « Feuil2 (TRI) ».

ATTENTION : avant, ça lisait D4, et s'il y avait "Palette 1", ça cherchait seulement dans la colonne correspondante, donc la colonne 2 ; maintenant, ça ne lit plus D4 et ça cherche le GTIN dans toutes les colonnes Palettes, donc de la colonne 2 à la colonne 11 ; ensuite, comme avant : le Nombre de colis restant est décrémenté seulement si le GTIN correspond ainsi que la Référence située juste au-dessus (par rapport à B9) ; bien sûr, on décrémente pas si 0 a été atteint.

Comme tu as fourni un classeur sans les données nécessaires pour pouvoir tester le code, à toi de tout vérifier soigneusement sur tes données réelles.

À te lire pour avoir ton avis.

dhany

Bonjour dhany,

Je te remercie pour cette modification, elle fonctionne dans mon tableur.

J'ai juste un petit problème lorsque je change la ligne du code concernant la taille du code barre, excel me dit qu'il y a une erreur d'execution,

Puis-je remedier à ça ?

PLUMEA

Tu a écrit :

lorsque je change la ligne du code concernant la taille du code barre

Peux-tu préciser quelle ligne de code VBA ?

Nos messages ce sont croisés, j'ai finalement réussi

plumea

alors c'est impeccable ! merci pour ton retour, et bonne continuation.

dhany

As-tu vu mon autre message ?

Tu veux parler de ton autre sujet : « Décrémenter du stock sur l'ensemble d'une référence donnée », c'est bien ça ?

donc ici : https://forum.excel-pratique.com/viewtopic.php?p=656135#p656135

J'ai déjà téléchargé le fichier ; mais je sais pas encore quel est le travail à faire au juste.

dhany

Bonjour dhany,

Désolé de répondre aussi tard,

Mon message n'a pas été publié. Je voulais savoir si il était possible que lorsqu'on affecte une référence à une nouvelle palette, le nombre de colis soit le même que celui présent dans les autres palettes (qui possède déjà la référence).

Pour que cela soit plus claire, voici un exemple : Je réceptionne la référence X sur la palette 1 et il y a au total 10 colis. J'en traite 5 sur la palette A et je décide de mettre les 5 autres colis sur la palette B. Avec l'amélioration que vous m'avez donné le nombre de colis restant à traiter sera de 0 sur la palette A mais de 5 sur la palette B. J'aimerais qu'il soit de 0 aussi.

Merci d'avance pour votre aide,

PLUMEA.

Bonjour PLUMEA,

Désolé pour ma réponse tardive, mais voilà quand même la suite :

7exo-plumea.docx (13.02 Ko)
9tri-pgi-forum.xlsm (101.18 Ko)

Lis bien toutes les infos du document Word, puis tout à la fin,

va lire aussi le code VBA, dont les commentaires.

Si besoin, tu peux demander une adaptation, par exemple :

effacer la Référence et le GTIN si Nb de colis restant = 0.

Merci de me dire si ça te convient.

dhany

Bonjour dhany,

Merci beaucoup pour ces deux modules incroyables qui me seront très utile lors des multiples erreurs que nous pouvons faire,

Ma question est : est-il possible que les stocks "Colis restant à traiter" soit rattaché à la référence et que peut importe dans qu'elle palette la référence se trouve le stock soit le même car actuellement quand j'affecte une nouvelle référence le stock repasse à son maximum alors que nous avons déjà traité des colis de cette référence,

J'ai eu la chance de pouvoir tester pour la première fois l'outil et je me suis aperçu qu'il fallait beaucoup trop de temps pour affecter les références dans les palettes.

J'aimerais que Si B4 est vide, une fenêtre s'ouvre, on renseigne le numéro de la palette et la référence se colle dans la première case GTIN qu'il trouve dans la colonne. Après plusieurs recherches, j'ai découvert la fonction imputbox mais je n'arrive pas faire ce que je veux même en reprenant ton code VBA comme base. Peux-tu m'aider ?

J'ai l'impression de poser trop de questions ^^

j'ai mis le fichier à jour mais je ne peux plus l'envoyer il est trop volumineux, j'espère que mes explications suffiront,

Cordialement,

PLUMEA

Bonjour PLUMEA,

Pour ta 1ère question, c'est vraiment pas clair ! donne un exemple chiffré détaillé avec situation de départ puis situation d'arrivée.

Pour ta 2ème question, tu as écrit : « si B4 est vide » ; c'est donc : si y'a pas le GTIN ; or d'après la suite, j'ai l'impression qu'ce serait plutôt « si D4 est vide », donc si y'a pas le Numéro de la palette ; là encore, pense à donner un exemple chiffré détaillé avec situation avant / après : faut qu'je sache quels sont les résultats attendus pour pouvoir t'aider.

dhany

Bonjour dhany,

Sur la feuille TRI j'ai essayé d'expliquer ce que je voulais du mieux possible dans des cadres bleu avec des exemples,

dites-moi si ce n'est pas claire,

Merci d'avance,

PLUMEA.

Bonjour à tous,

Je suis toujours bloqué malgré des nouveaux essaies,

Pourriez-vous m'aider ?

Cordialement,

PLUMEA.

Bonjour PLUMEA,

je n'ai pas encore répondu à ta Question 1 ; c'est pour ta Question 2.


note que la palette 5 est vide ; comme B4 est déjà sélectionné, fais F2 puis Entrée ➯ fenêtre pour saisir le n° palette.

attention : cette fenêtre n'apparaît que si le GTIN n'est sur aucune palette

tu peux voir que la valeur par défaut est 1 (palette n° 1) ; appuie sur la touche Echap : ça sort, et rien n'a été fait.

ça te laisse la possibilité de changer d'avis


fais de nouveau F2 puis Entrée ; cette fois, mets 5 à la place du 1, puis Entrée ➯ affectation à la 1ère référence vide

de la palette 5, ici F17, avec une quantité auto de 1 en F20.

si tu refais F2 puis Entrée, la fenêtre n'apparaît pas (normal), et ça décrémente ce 1 (normal aussi).


supprime les contenus de F17 et F20 puis retourne en B4 ; fais F2 puis Entrée ; cette fois, valide le 1 par défaut

➯ affectation à la 1ère référence vide de la palette 1, ici B23, avec une quantité auto de 1 en B26.

si y'a aucune place libre sur la palette, tu dois avoir le message "Palette pleine".


dans ce fichier, j'ai remis le code pour Ctrl r et Ctrl t ➯ transfert disponible

petit bonus : en B4, saisis 3204 puis Entrée ; regarde D4

dhany

Bonjour dhany,

Ton nouveau code est super, je vais gagner beaucoup de temps et éviter un bon nombre d'erreur,

la seule chose que je ne comprend pas c'est que peu importe le nombre de "colis à traiter", la macro affecte 1 comme nombre de "colis restant à traiter",

il faudrait que la quantité de "colis restant à traiter" soit égale à celle du nombre de colis "colis à traiter",

Il faudrait simplement enlever la quantité automatique pour que cela redevienne comme avant,

cordialement,

Plumea

Bonjour PLUMEA,

Tu a écrit :

Ton nouveau code est super, je vais gagner beaucoup de temps et éviter un bon nombre d'erreur

voilà une super nouvelle !


Il faudrait simplement enlever la quantité automatique pour que cela redevienne comme avant

en bas de la sub, j'ai supprimé le .Offset(3) = 1 ➯ ça donne :

    For lig = 17 To 71 Step 6
      With Cells(lig, np + 1)
        If IsEmpty(.Value) Then
          .Value = Target: flag = 1: Exit For ' <--- c'est ici que j'ai supprimé .Offset(3) = 1
        End If
      End With
    Next lig

teste de nouveau pour voir si ça te convient ; dis-moi si c'est ok ou non.

dhany

Super cela marche super bien,

A tu eu le temps de te pencher sur la question 1 de mon avant-dernier post ?

Encore merci

PLUMEA

Rechercher des sujets similaires à "soustraction sauvgarde nouvelle valeur"