Pb sur addition en fonction de l'heure

ravenolhm

XLDnaute Nouveau
Bonsoir le forum, déjà hier Jean-Marcel m’a bien aidé pour mon fichier (Merci !) mais je fais face à quelques problèmes.

Pour mieux les comprendre, je vous résume la situation.

Mon entreprise (fournisseur intermédiaire de matériel informatique) stock des PCs et des périphériques. Elle reçoit tous ses composants de divers fournisseurs (avec une référence brute), chaque composants se voit attribuer une référence NET (propre à l’entreprise). Le stock et les commandes clients sont gérés et mis à jour par un autre fichier.

Les personnes responsables des envoies regardent sur la feuille "stock et commande" se que les clients demandent.

Une fois leur liste de composants prête, ils vont chercher les composants dans le stock (stock physique) et reviennent avec. Sur chaque composant se trouve un code barre (correspondant à la référence brute).

Maintenant il faut le déstocker sur le fichier excel. Pour cela l’utilisateur va dans la feuille "Déstockage", se place sur la première cellule vide en colonne A et ZIP le code bar. La Référence zipée comporte un « P » (c’est de la faute du code barre, on y peu rien) c’est donc pourquoi une macro rattachée à la feuille supprime tout les caractères de gauche d’une chaine supérieur à 10 caractères et recopie dans cellule d’à coté.

Après quoi une fonction recherche s’active, on rentre la quantité de la même pièce déstockée dans ""QTe a env". etc… Je vous laisse découvrir le reste du fichier (CF PJ) pour ne pas trop m’éterniser.

Les difficultés :

1- Je souhaiterai que la case QTé en cour s’affiche en fonction de l’heure : si HeureMaintenant < 12h00, alors afficher « QTé AV 12h » de la feuille « Stock et commandes » de la référence brute correspondante.
Sinon (HeureMaintenant > 12h00, alors afficher « QTé AP 12h » de la feuille « Stock et commandes » de la référence brute correspondante.

2- Quand je clique sur le bouton « Actualiser, Envoyer, Archiver », je souhaite que chaque « QTe a env » soient ajoutées (en fonction de l’heure : <> 12h00) à la valeur de la cellule « QTé AV 12h » ou « Qté AP 12h » dans "Stock et Commande". Bien sur en fonction de la référence brute entrée dans "Déstockage".
(NB : la fonction Envoyer et Archivé du bouton est au point, ça va c'était pas trop dur...., je ne l’ai pas jointe, si des personnes sont intéressées, MP me)


Merci pour votre temps, vos remarques ainsi que vos suggestions !

Bonne soirée et souriez, demain soir c’est le week end !
 

Pièces jointes

  • essai gestion stock.xls
    64 KB · Affichages: 88

Victor21

XLDnaute Barbatruc
Re : Pb sur addition en fonction de l'heure

Bonsoir.

Pour la 1° partie de la question,
Testez en I3 :
=SI(MAINTENANT()<=0.5;RECHERCHEV(B3;'stock et commandes'!$A$8:$G$136;6);RECHERCHEV(B3;'stock et commandes'!$A$8:$G$136;7))
J'ai considéré deux cas : maintenant()<=12h et maintenant()>12h.
Mais il faudra du VBA pour que cette cellule ne se mette pas à jour à chaque recalcul.



Edit : Bonjour, Jean-Marcel :)
 
Dernière édition:

ravenolhm

XLDnaute Nouveau
Re : Pb sur addition en fonction de l'heure

Bonjour à tous !

Voila encore désoler du temps de latence de réponse… Travail oblige.

J’ai testé toute vos réponses et malheureusement elles ne fonctionnent pas ! j’ai mis du temps à comprendre mais grâce à l’aide Jean marcel dans un sujet précédent et à la phrase «Mais il faudra du VBA pour que cette cellule ne se mette pas à jour à chaque recalcul. » de Victore, j’ai pu arriver à quelque chose de fonctionnel !

Pour ce qui cela interesse, il faut d’abord un petit rappel sur l’heure d’excel :

=maintenant vous donne quelque chose comme 40856,xxxxxxxxxx. La partie entière correspond au nombre de jour depuis le 01/01/1900 et les dix décimale corresponde aux heures, minutes, secondes d’une journée.

Donc, pour que je puisse comparer l’heure de maintenant et celle de 8h de tous les jours :

1°) fonction =maintenant() dans une cellule (prenons A1).
2°) un macro dans le code feuil recopie le nombre de =maintenant() dans la cellule B1 et supprime tous les caractères de gauche pour ne garder que la partie entière :

Code:
 Private Sub Worksheet_Change(ByVal target As Range)
 If Not Intersect([A1:A1], target) Is Nothing And target.Count = 1 Then
    target.Offset(0, 1) = Left(target, 5) [CODE]

3°) je donne la décimale correspondent à l’heure que je souhaite comparer : 0.5 pour 12h et 0.33333 pour 8h00,00 dans la cellule C1

4°) dans la cellule D1 j’écris ma formule de comparaison : =SI(B1+C1<MAINTENANT();"Apres 8h";"Avant 8h")

Pour simplifier et rendre plus exploitable cette cellule de comparaison je vous conseil : =SI(B1+C1<MAINTENANT();VRAI ;FAUX), VRAI et FAUX étant considérés comme des variables booléennes directement exploitables par les fonctions ou macros.

Le Firewire de mon entreprise ne me permettant pas d’avoir accès a internet, je dois me résigner à écrire cette réponse par le biais de mon téléphone, je peux donc pas vous envoyez de pièces jointes… Encore un grand merci à Victor et Jean-Marcel qui mon permis de réfléchir pour trouver une solution fiable (sans doute pas la plus simple mais bon…)
 

Discussions similaires

Statistiques des forums

Discussions
311 721
Messages
2 081 927
Membres
101 842
dernier inscrit
seb0390