Application.worksheetFonction

Fermé
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016 - Modifié par Barahaoua le 10/06/2016 à 12:13
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 11 juin 2016 à 15:38
bonjour SVP Je veux transformer cette formule excel en format qui s’écrit dans une macro

voila la fonction

=SI(NON(ESTVIDE(O7));INDEX($H13:$H1048576;ARRONDI.SUP(ALEA()*NBVAL($H13:$H1048576);0);1))

et voila ce que j'ai fait mais c'est faux

Application.WorksheetFunction.Index(H13:H1048576);Round.SupRand()*Counta(H13:H1048576);0);1)
merci

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
11 juin 2016 à 15:38
Bonjour
Déjà entre la formule et le code VBA, il y a une différence. Qu'est devenu le contrôle de la cellule vide?
Utilisez l'enregistreur de macro.
Avec l'enregistreur en cellule A1 et après toilettage du résultat, voici ce que ça donne
 Range("A1").FormulaR1C1 = "=IF(NOT(ISBLANK(R[4]C[10])),INDEX(R[10]C8:R[1048573]C8,ROUNDUP(RAND()*COUNTA(R[10]C8:R[1048573]C8),0),1))"

Cdlt
0