Application.worksheetFonction

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

  • Votes
  • Date
  • Date décroissante
  1. 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