• Initiateur de la discussion Initiateur de la discussion Cruz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Cruz

Guest
Bonjour tout le monde

La fonction ALEA (qui choisit un nombre aleatoire) dans une cellule change de nombre à chaques fois que l'on change une donnée dans le classeur. J'aimerai pouvoir changer ce nombre uniquement si une cellule (choisie) change.

par exemple A1=ALEA()=0.2654897
j'aimerai que ce nombre ne change que si je modifie la cellule
A2

Merci d'avance et @+
Cruz
 
Bonjour !

Avec la formule ALEA, je ne sais pas.
Mais en vba, la méthode Volatile permet justement de recalculer ou non cette fonction quand on change une cellule (autre que la cellule).

Entre dans l'éditeur vba, fais 'insertion>Modules' et colles ce code :
Code:
Public Function DES(ByRef NB As Range) As Integer
Application.Volatile (False)
Randomize: DES = Int((10 * Rnd) + 1)
End Function

Dans une cellule, entre ' =DES(A1) '.
Ce nombre ne varira que si tu changes A1.

Si tu met Application.Volatile (True) , la fonction sera recalculée au moindre changement dans le classeur.
 
Salut à vous,

Puisque Ludwig ne sais pas (lol), je vais essayer :

Feuil1!A1 : cellule de référence

En A2 de n'importe quelle feuille : =SI(Feuil1!$A$1=1;ALEA();A2)
formule pouvant être copiée dans n'importe quelle cellule de n'importe quelle feuille (sauf en Feuil1!A1 évidemment !)

Si la cellule Feuil1!A1 contient le chiffre 1, la fonction ALEA() fonctionne.
Dans les autres cas, même si Feuil!1$A$1 est vide, la valeur ne se modifie pas.

Ândré
 
Re...

Oui André je voulais parler de l'itération. Ton dernier message me laisse perplexe. Si tu n'utilises pas l'itération, comment fais-tu pour supprimer le message de référence circulaire retourné parcette formule, En A2 de n'importe quelle feuille : =SI(Feuil1!$A$1=1;ALEA();A2)A2 fait appel au résultat de A2. Je te rappelle, qu'un message de Référence Circulaire bloque le calcul de la feuille.

@+Jean-Marie
 
Re aussi,

Maintenant je commence à te comprendre (lol).

Chez moi, par défaut, l'itération est cochée et leur nombre placé à 100.
Il me semble que c'est la version de base d'Excel.

J'ai essayé en décochant l'itération, et là tu as raison, cela ne fonctionne pas.
Mais pour cela, il faut décocher cette option, et alors seulement j'ai le message de référence circulaire !

On finira par se comprendre.
Â+
 
Re...

Non André, l'itération n'est pas une option fixé de base dans Excel.

Je te conseille de supprimer cette option ou de fixer la valeur du 'Nb maximal d'itération' à 1. Cette valeur à 100 fait calculer les formules 100 fois par événement Calculate, André ne trouves-tu pas les calculs de tes feuilles un peu longuette ?.

Regarde ce fil, il y a une gestion d'itération avec une valeur fixée à 1024.
Lien supprimé

@+Jean-Marie.
 
Rerere ...,

Je n'ai jamais eu à me plaindre de la vitesse de calcul, mais je vais systématiquement vérifier cette option sur tous mes fichiers
Tu as bien fait d'attirer mon attention, au cas où ... !

Pour ce qui est de la formule proposée, j'ai laissé l'option cochée (il faut bien), mais mis le nombre d'itérations à 1024.
J'ai essayé sur deux colonnes de 20.000 lignes et le calcul est instantané.

Merci encore.
Â+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
62
Réponses
8
Affichages
534
Réponses
2
Affichages
279
Retour