XL 2013 Incrémenter le résultat d’une cellule formule dans un compteur sur une autre cellule

GODARDF

XLDnaute Nouveau
Bonjour,
Je dois faire des simulations de calcul basé sur le principe suivant :
J’ai une gamme de produits qui peuvent être une centaine, qui ont un prix et un à stock à 0 au point de calcul, le tout avec avec une somme global déterminée à l’avance.
Dans la cellule calculant le prix, la formule génère un résultat aléatoires qui est additionné avec les 100 produits donné un total qui va générer un stock. Le résultat est ventilé par lignes sur chaque produit.
Ma question est : lorsque je presse f9 pour une itération de calcul comment lorsque une seconde fois j’appuie sur f9, cumulé le résultat du calcul de l’itération 1 avec celui de l’itération 2
si je pars du compteur 0 sur un produit je presse f9 résultat est 9, si je presse f9 de nouveau le résultat 11, je voudrai que la cellule contenant 0 passe de 0 à 11 puis à 20

merci de vos réponses
François Godard
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Godardf, et bienvenu sur XLD,
Serait il possible d'avoir un petit fichier test ainsi qu'un attendu sur quelques lignes, car votre demande est peu claire.
Par formule il est difficile d'ajouter une valeur au contenu lui même, sauf à accepter à travailler en calcul itératif mais c'est peu maniable.
Acceptez vous le VBA ?
 

GODARDF

XLDnaute Nouveau
Bonjour Godardf, et bienvenu sur XLD,
Serait il possible d'avoir un petit fichier test ainsi qu'un attendu sur quelques lignes, car votre demande est peu claire.
Par formule il est difficile d'ajouter une valeur au contenu lui même, sauf à accepter à travailler en calcul itératif mais c'est peu maniable.
Acceptez vous le VBA ?
Bonjour,
Oui pour le VBA
Merci d'avance le petit fichier joint génère dans une page résultat, un instrument aléatoire avec un nombre de niveaux sonores. L'idée est de cumuler les nombres après chaque F9, dans la colonne compteur sur la ligne de l'instrument choisit.
 

Pièces jointes

  • calcul_modifié.xlsx
    22.5 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Utiliser F9 pour déclencher la macro est, à mon avis, une mauvaise idée car :
- F9 correspond à Calculer maintenant, donc à chaque fois que vous toucherez à une cellule l'ajout s'effectuera.
- D'autre part comme on écrit dans le tableau, un recalcul s'effectuera on risque donc de relancer l'ajout.
- Il vous faudra tôt ou tard refaire une mise à zéro de votre tableau.
Donc je vous propose plutôt deux boutons ( au lieu de F9, appuyez sur Ajoute ) et un bouton Réinitialiser pour remettre le tableau à zéro. Le tout avec :
VB:
Sub Ajoute()
    On Error GoTo Fin
    Calculate
    Application.EnableEvents = False
    Instrument = [C4]: Niveau = [D4]
    Ligne = Application.Match(Instrument, [Table1[instrument]], 0)
    [Table1].Item(Ligne, 3) = [Table1].Item(Ligne, 3) + Niveau
Fin:
    Application.EnableEvents = True
End Sub
Sub Efface()
    [Table1[Compteur]].ClearContents
End Sub

Pour ma culture personnelle, un truc que je n'ai pas compris : Dans le tableau Intensité il y a des nombres qui se dupliquent, donc des choix d'instruments qui ne se feront jamais car le RechercheV prendra toujours le premier rencontré. Quel est le but ?
 

Pièces jointes

  • calcul_modifié (6).xlsm
    29.4 KB · Affichages: 1

GODARDF

XLDnaute Nouveau
Bonjour,
Utiliser F9 pour déclencher la macro est, à mon avis, une mauvaise idée car :
- F9 correspond à Calculer maintenant, donc à chaque fois que vous toucherez à une cellule l'ajout s'effectuera.
- D'autre part comme on écrit dans le tableau, un recalcul s'effectuera on risque donc de relancer l'ajout.
- Il vous faudra tôt ou tard refaire une mise à zéro de votre tableau.
Donc je vous propose plutôt deux boutons ( au lieu de F9, appuyez sur Ajoute ) et un bouton Réinitialiser pour remettre le tableau à zéro. Le tout avec :
VB:
Sub Ajoute()
    On Error GoTo Fin
    Calculate
    Application.EnableEvents = False
    Instrument = [C4]: Niveau = [D4]
    Ligne = Application.Match(Instrument, [Table1[instrument]], 0)
    [Table1].Item(Ligne, 3) = [Table1].Item(Ligne, 3) + Niveau
Fin:
    Application.EnableEvents = True
End Sub
Sub Efface()
    [Table1[Compteur]].ClearContents
End Sub

Pour ma culture personnelle, un truc que je n'ai pas compris : Dans le tableau Intensité il y a des nombres qui se dupliquent, donc des choix d'instruments qui ne se feront jamais car le RechercheV prendra toujours le premier rencontré. Quel est le but ?
Oui je vous ai envoyé ce fichier de données brut, mais la numérotation était pas cohérente. effectivement il me faut aucune duplication. Merci beaucoup à vous pour votre réponse.
 

Discussions similaires

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh