Soustraction avec sauvgarde de la nouvelle valeur Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 18 mai 2018, 13:15

Mon code VBA étant dans le module de la feuille "TRI", cela signifie que la modif d'une cellule n'est détectée que sur la feuille "TRI" (et le F2+Enter est considéré comme une modif de cellule) ; ce que je viens d'écrire est valable pour n'importe quelle cellule de la feuille, mais j'ai écrit mon code VBA pour que ça ne réagisse que pour une modif de la cellule B4 (ta plage fusionnée B4:C6 étant prise comme une seule cellule B4) ; de plus, ne pas oublier que la diminution de 1 se fait pour ces 2 conditions successives : a) identité du GTIN puis b) identité de la Référence.

Si tu fais F2+Enter sur une autre feuille que la feuille "TRI", c'est tout à fait normal que ça ne fasse rien, même si c'est en cellule B4.

Juste pour info : sur ta feuille "Requête", cellule B12, ta donnée est : "Palette 1 " (y'a un espace en trop à la fin) ; même feuille, cellule B23 : idem ➯ à corriger !  ;;)

dhany
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 18 mai 2018, 13:34

J'ai compris ce point là c'est seulement que je ne comprend par pourquoi ça ne marche pas alors que je change des feuilles qui ne sont pas liées à la macro,

j'ai une piste, dans mon vrai fichier mes codes barres font 12 caractères et non pas 15 comme dans le fichier que je vous aies envoyé. Est-ce que le problème peut venir de là ?

Encore merci pour toute cette attention,

Cordialement,

PLUMEA.
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 18 mai 2018, 13:40

J'y suis arrivé !!!!!!!!!!

C'est la longueur du code barre qui n'allait pas :/ J'ai remplacé 15 par 12 dans le code est il marche maintenant !!

Merci dhany,

Si j'ai des nouvelles interrogations puis-je vous contacter ?

Cordialement,

PLUMEA.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 18 mai 2018, 13:49

oh là ! j'étais sûr que tous les GTIN faisaient tous 15 caractères, moi !!!  :P :lol:  d'où cette instruction dans mon code VBA :

If Len(.Value) <> 15 Then Exit Sub  dans ce cas, change le 15 en 12 : If Len(.Value) <> 12 Then Exit Sub

si tu veux que ça marche pour des GTIN de longueur variable, par exemple entre 12 et 20 caractères, tu peux mettre :

If Len(.Value) < 12 Or Len(.Value) > 20 Then Exit Sub

alors c'est sûr qu'après la correction, ça marchera mieux dans ton vrai fichier !  ::D 8-)

dhany
1 membre du forum aime ce message.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 18 mai 2018, 13:52

nos messages se sont croisés ; je viens de lire ton message de 13:40 ; si tu as de nouvelles interrogations, écrit un nouveau post dans cette discussion s'il s'agit du même sujet ; sinon : crée un autre sujet.

si c'est confidentiel, tu peux me contacter en MP (Message Privé).

dhany
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 18 mai 2018, 13:54

Merci encore,
Super,

Si mes connaissances en VBA deviennent meilleures, puis-je automatiser l'action F2+Entrer?

Cordialement,

PLUMEA.
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 18 mai 2018, 14:09

attention : il y a 2 choses différentes à ne pas confondre :

1) sans même parler de programmation VBA, quand tu es sur une feuille Excel, la touche F2 te permet de passer en mode "modification de cellule" (pour la cellule active) ; et si tu refais F2, ça sort du mode en question ; la touche Entrée permet de valider la saisie.

2) le code VBA est normalement mis dans un module "classique" tel que Module1 ou Module2 ; quand on écrit un code VBA qui doit réagir à un événement (par exemple la modification d'une cellule), on écrit alors des procédures événementielles telles que la sub Worksheet_Change(...) qu'on doit placer dans le module de la feuille concernée ; ça a été fait avec le module de la feuille "TRI" ; et c'est cela que tu appelles « automatiser l'action F2+Entrer » ; car plus exactement : c'est « automatiser un traitement suite à la détection de la modif d'une cellule précise ».

Info supplémentaire : pour du code VBA devant réagir à des événements concernant le classeur, on écrit des procédures événementielles telles que la sub Workbook_Open() qui doivent être placées dans le module spécial ThisWorkbook.

dhany
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 18 mai 2018, 14:19

Donc il n'est pas possible que le stock se décrémente simplement quand on scan un nouveau GTIN ?

Comment puis-je apprendre le VBA facilement ? Sur YouTube ? Internet ?

PLUMEA
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 18 mai 2018, 14:29

La douchette qui te sert à scanner un code GTIN n'est qu'un périphérique d'entrée : au final, le code GTIN se trouve dans une cellule ; après c'est de l'Excel : il faut utiliser le contenu de cette cellule pour le but que tu veux atteindre ; il y a aussi des logiciels de gestion de stock spécialisés, avec traitement des reliquats, méthodes LIFO (Last In First Out) ou FIFO (First In First Out), etc...

Pour apprendre le VBA, tu peux déjà commencer par un site que tu connais bien  ;;) :
Cours VBA XLP.jpg
Tu peux aussi faire une recherche google avec ces mots : « cours vba gratuit »

Attention : quand on débute en VBA, on ne commence pas par écrire des procédures événementielles !
c'est un type de programmation spécial qu'on apprend plus tard !

dhany
P
PLUMEA
Membre habitué
Membre habitué
Messages : 65
Inscrit le : 17 mai 2018
Version d'Excel : 2016 FR

Message par PLUMEA » 18 mai 2018, 14:43

Je comprend bien mais je ne peux pas laisser aux opérateurs la manipulation F2+Entrer sinon les erreurs et oublies seront trop important

Merci bien,

PLUMEA
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message