FOR.. NEXT avec VBA

oeil92 Messages postés 12 Statut Membre -  
oeil92 Messages postés 12 Statut Membre -
Bonjour,

J'ai un problème de FIFO (premier entré, premier sorti) et je bute sur les boucles imbriquées.

Comment résoudre ce problème de boucles et d'avoir les différents résultats en mémoire, pour un calcul ultérieur.

Mvt Entrée................Sortie
1.........5
2...... 10
3.................................12
4..................... ...........1

12 est ventilé sur les deux lignes l'entrée : 5 & 7
10 est ventilé avec deux lignes de sortie : 7 & 1 et il reste un solde de 2

Chaque des données intermédiaires doit être conservée en mémoire.

Merci de votre aide,

Oeil92
A voir également:

4 réponses

blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

rien compris !
-1
oeil92 Messages postés 12 Statut Membre
 
Qu'est ce que vous ne comprenez pas !!!!!

Oeil92
-1
blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
12 est ventilé sur les deux lignes l'entrée : 5 & 7
10 est ventilé avec deux lignes de sortie : 7 & 1 et il reste un solde de 2

-1
oeil92 Messages postés 12 Statut Membre
 
Bonjour,

Une Entrée est sortie avec des mouvements qui ont été acheté à différentes dates. Il en est de même pour une sortie qui est face à plusieurs entrées (c'est exactement le même problème).

De ce fait, par exemple :

La sortie de 12 vient en face de deux entrées achetées à deux dates différentes.


J 'utilise FOR.. NEXT peut être à tort.

Cordialement,

Oeil92
-1
blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Je ne comprends toujours pas par rapport à l'exemple que tu as donné.

Qu'as-tu au départ ? description de tes données.

Que veux-tu à l'arrivée ? description des données.
-1
oeil92 Messages postés 12 Statut Membre
 
Ceci est un exemple.

Il y a deux tableaux

Entrées : 5 et 10
Sorties : 12 et 1

Chaque entrée et sortie est fait à des dates différentes.
exemple :
01/09/08 entrée de 5
02/09/08 entrée de 10
03/09/08 sortie de 12
04/09/08 sorie de 1

Tant qu'il n'y a pas de sortie, 5 et 10 restent disponibles.

le 03/09/08, il y a 12 de sortie. Cela veut dire que je prends l'entrée du 01/09 soit 5 et une partie de l'entrée du 02/09/0/ soit 12 - 5 = 7.

C'est la règle du Premier entrée, premier sortie.

Merci de votre réponse

Oeil92
-1
blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367 > oeil92 Messages postés 12 Statut Membre
 
bon j'ai compris le principe de fonctionnement, mais maintenant, je ne sais pas ce que tu souhaites faire comme traitement :-)
-1
oeil92 Messages postés 12 Statut Membre > blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention  
 
Obtenir les résultats :

L'entrée 5 est sortie avec une partie du 12

Ce que je veux, avoir dans une mémoire 5, dans une autre mémoire le solde 7

L'entrée 5 à un certain prix. A la sortie partielle de 12, c'est un autre prix

Je résume :

5 achetée à 100
10 achetée à 150
12 sortie à 175
1 sortie à 200

Les 10 en entrée sont sortis partiellement en 7 et 1

donc les 8 d'entrée à (8 * 150 = 1200)
ils sont sortis avec un total de (7 * 175) + (1 * 200) = 1425
Le gain est de : (1425 - 1200 = 225)

Bien d'avance,

Oeil92
-1
blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367 > oeil92 Messages postés 12 Statut Membre
 
j'ai bien compris le principe (mais je ne suis pas d'accord avec tes calculs) :

On en sort 12, donc 5 payés 100 et 7 payés 150, revendus 12*175 soit 550 de gain
On en sort 1, donc 1 payé 150, revendu 1*200 soit 50 de gain

J'ai bon ?

Mais je ne comprends pas cette notion de 'avoir en mémoire'...
-1
oeil92 Messages postés 12 Statut Membre > blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ton calcul est partiellement bon.

le gain de 50 est bon.

pour les 8 (10 - 7 - 1) il sont sortis avec des prix différents

Sur ces 10, il reste 2 qui sont encore à vendre.

Le gain global de mon tableau est le suivant :

5 achetés à 100 et vendus à 175 = (175 - 150) * 5 = 125
7 achetés à 150 et vendus à 175 = (175 - 150) * 7 = 175
1 acheté à 150 et vendu à 200 = (200 - 150) * 1 = 50

Gain.................................................................... 350

Les 2 qui restent, seront vendus prochainement.

Je dit "en mémoire" car je ne sais pas comment faire pour garder, les calculs, 5, 7, 2 pour valoriser les sorties.

merci de ton aide.

Oeil92
-1
blux Messages postés 27987 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Ma difficulté est que je ne sais pas imbriquer deux boucles ensemble.
Y'a pas de mystère :

- tu commences une boucle qui lit ton tableau des sorties.
- dès que tu as le premier nombre, tu commences une boucle qui parcoure le tableau des entrées
- tu trouves une quantité, tu la compares avec ce que tu dois sortir, et le cas échéant, tu la remets à zéro si tu as tout pris. En même temps, tu fais ton calcul de gain.
- tu continues le parcours de ton tableau des entrées, jusqu'à ce que tu aies égalité avec le nombre de sorties que tu es en train de traiter. Là, tu sors de ta boucle.
- tu lis une autre valeur de ton tableau des sorties et tu recommences...

Non ?
-1
oeil92 Messages postés 12 Statut Membre
 
Moi je faisais le contraire.

Je partais du tableau des entrées et j'essayais de le rapprocher avec celui des sorties.

Ton raisonnement me plait. Ce sont les sorties qui est le tableau support pour savoir ce qui a été entré.

Je m'y mets tout de suite à refaire mes boucles.

Merci de ton aide,

A+

Oeil92
-1