A voir également:
- [Excel] Fonction Aléa sans macro
- Excel fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
- Aller à la ligne excel - Guide
3 réponses
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
13 oct. 2006 à 11:20
13 oct. 2006 à 11:20
Bonjour,
si tu as une solution sous excel, tu peux la transposer dans VBA en utilisant la fonction Evaluate( ).
regarde dans l'aide pour voir comment elle fonctionne.
il faut cependant transformer ta formule en anglais avec les séparateurs de liste et décimaux qui vont bien.
cette transformation en anglais se fait automatiquement par la manip suivante :
1) insère un onglet Macro Intl MS Excel 4.0 par un clic droit/insérer sur un onglet quelconque
2) copie/colle ta formule dans cet onglet
3) récupère dans la zone d'édition ta formule traduite en anglais
exemple :
la formule =RECHERCHEV(2,123;$L$10:$N$14;2;FAUX) devient =VLOOKUP(2.123,$L$10:$N$14,2,FALSE)
en vba, si tu mets
aa = Evaluate("VLOOKUP(2.123,$L$10:$N$14,2,FALSE)")
ou
bb = [VLOOKUP(2.123,$L$10:$N$14,2,FALSE)]
tu obtiens le résultat que tu avais dans ta feuille de calcul.
Donc tu remplaces recherchev( ) par tes formules de feuille de calcul et tu auras ton résultat.
cordialement
si tu as une solution sous excel, tu peux la transposer dans VBA en utilisant la fonction Evaluate( ).
regarde dans l'aide pour voir comment elle fonctionne.
il faut cependant transformer ta formule en anglais avec les séparateurs de liste et décimaux qui vont bien.
cette transformation en anglais se fait automatiquement par la manip suivante :
1) insère un onglet Macro Intl MS Excel 4.0 par un clic droit/insérer sur un onglet quelconque
2) copie/colle ta formule dans cet onglet
3) récupère dans la zone d'édition ta formule traduite en anglais
exemple :
la formule =RECHERCHEV(2,123;$L$10:$N$14;2;FAUX) devient =VLOOKUP(2.123,$L$10:$N$14,2,FALSE)
en vba, si tu mets
aa = Evaluate("VLOOKUP(2.123,$L$10:$N$14,2,FALSE)")
ou
bb = [VLOOKUP(2.123,$L$10:$N$14,2,FALSE)]
tu obtiens le résultat que tu avais dans ta feuille de calcul.
Donc tu remplaces recherchev( ) par tes formules de feuille de calcul et tu auras ton résultat.
cordialement
phunk
Messages postés
498
Date d'inscription
lundi 31 juillet 2006
Statut
Membre
Dernière intervention
30 novembre 2006
193
13 oct. 2006 à 11:57
13 oct. 2006 à 11:57
Salut, vite fait uniquement avec Excel :
A1 = la valeur que tu veux (ici 5)
B1 = ARRONDI(ALEA()*A1;2)
C1 = ARRONDI(ALEA()*(A1-B1);2)
D1 = ARRONDI(ALEA()*(A1-B1-C1);2)
E1 = ARRONDI(ALEA()*(A1-B1-C1-D1);2)
F1 = A1-(B1+C1+D1+E1)
Appuies sur F9 chaque fois que tu veux actualiser.
Exemple : 10 = 1.93 + 3.29 + 0.35 + 2.56 + 1.87
Ici j'ai limité à 2 décimales..
A1 = la valeur que tu veux (ici 5)
B1 = ARRONDI(ALEA()*A1;2)
C1 = ARRONDI(ALEA()*(A1-B1);2)
D1 = ARRONDI(ALEA()*(A1-B1-C1);2)
E1 = ARRONDI(ALEA()*(A1-B1-C1-D1);2)
F1 = A1-(B1+C1+D1+E1)
Appuies sur F9 chaque fois que tu veux actualiser.
Exemple : 10 = 1.93 + 3.29 + 0.35 + 2.56 + 1.87
Ici j'ai limité à 2 décimales..