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 il fonctionne pas

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

merci

Bonjour

C'est quoi le but final recherché ?

Cordialement

on faite j'au une colonne (H13:H52) ou je veux effectuer une recherche aléatoire et mettre le valeur trouver dans la cellule O8

c'est simple mais je sais pas comment faire voila mais deux tableau

la sonction si de excel que j'ai fait elle fonctionne mais moi je veux le mettre dans mon code vba pour que si la cellule O7 est non vide la recherche aléatoire se lance et va me trouver une valeur de la colonne H et la mettre dans la cellule O8

merci

1 2

Bonjour,

Dim DerLig As Long
    DerLig = Range("H" & Rows.Count).End(xlUp).Row
    If Range("O7") <> "" Then
        Range("O8") = Application.Index(Range("H13:H" & DerLig), Application.RoundUp(Rnd() * Application.CountA(Range("H13:H" & DerLig)), 0), 1)
    End If

A+

MERCIII BEAUCOUP

BONNE JOURNEE

j'ai juste encore une demande stp c'est la suite de ce que tu viens de me faire

Je veux que quand O7 est pas vide que

mon O8 se remplie avec la formule que tu ma écrit et que aprés une fois que j'ai la première valeur dans O8 on verifie si P7 est pas vide en envoi la valeur de O8 a P8

le probléme que j'ai c'est que lorsque j'execute mon programme ma cellule O8 resoi la valeur (serv oeil ) ; en ce moment j'ai que O7 qui est remplie donc quand j'execute une deuxsiéme fois pour que P7 se rempli la valeur de O8 change alors que moi je veux garder la méme valeur pour l'affecter a P8

voila le tableau sur lequel je travail stp aide moi

et je te met aussi le fichier en piéce jointe pour voir le code

le code est placer dans le module tunel dans le code :Sub Plaque5_Cliquer()

mercii

3

Re

Déso je n'ai pas pu répondre avant mais j'avais préparé un code.

J'ai également tenu compte des dernières infos. A voir si cela convient

Sub test()
Dim plage As Range
Dim lg As Long
If Range("O7") <> "" Then
    Set plage = Range("H3:H" & Range("H" & Rows.Count).End(xlUp))
    Randomize
    lg = Int((WorksheetFunction.CountA(plage) - 1 + 1) * Rnd + 1)
    Range("O8") = Range("H" & lg + 13)
    If Range("P7") <> "" Then Range("P8") = Range("O8")
End If
End Sub

Si ok, merci de ne pas omettre de clôturer le fil

Cordialement

malheuresement ca ne fonctionne pas regarde l'erreur quil me fait

3 4

Re

Oui effectivement. Dans la recopie du code j'ai omis de copier une partie

A la fin de la ligne qui fait défaur et ce juste entre les deux paranthèses Il faut rajouter --> .row

Crdlt

Bonjour Dan malheureusement ca ne marche pas regarde l'erreur que j'ai eu

'code pour le lancement des passe dans le tunel
    Arret = False: Nb_Boucle = 0

    If Range("B1").Value <> "" Then 'vérifie que B1 n'est pas vide
        Nbre_Total_Boucl = Columns(3).Find("*", , , , , xlPrevious).Row - 12
        Do While Arret = False
            DoEvents
            'Range("B7:T7").Value = "" 'réinitialise ton "tableau"
            i = 15 'valEUr de Ma première colonne du tableau
            Application.Wait Time + TimeSerial(0, 0, 2) 'attends 10 sec

            Do Until Range("T7") <> "" Or Arret = True 'conditionne la boucle jusqu'à la dernière colonne de ton tableau

                If i > 15 Then Cells(7, i - 1).Value = Range("B1") 'mettre la valeur de B1 dans les cellule precedente
                Cells(7, i).Value = Range("B1").Value 'mets ta valeurs dans la cellule de ton tableau
                If Range("O7") <> "" Then
        Set plage = Range("H3:H" & Range("H" & Rows.Count).End(xlUp.Row))
        Randomize
        lg = Int((WorksheetFunction.CountA(plage) - 1 + 1) * Rnd + 1)
        Range("O8") = Range("H" & lg + 13)
        If Range("P7") <> "" Then Range("P8") = Range("O8")
    End If
                'Range("O8").Value = Range("C13").Offset(Nb_Boucle, 0).Value
                i = i + 1 'prochaine colonne
                Application.Wait Time + TimeSerial(0, 0, 2) 'attends 10 sec
                DoEvents
            Loop

            Range("B3") = Range("B3") + Range("T7")
1

Re

c'est pas ce que j'ai expliqué...

comme ceci :

Set plage = Range("H3:H" & Range("H" & Rows.Count).End(xlUp).Row)

Crdlt

merci Dan oui maintenant ca marche mais je voudrai rajouté ca a ma boucle si tu peux m'aidez stp

voila le code que j'ai fait mais il me fait pas ce que je t'est représenter dans l'image

i = 15 'valEUr de Ma première colonne du tableau
            Application.Wait Time + TimeSerial(0, 0, 2) 'attends 10 sec

            Do Until Range("T7") <> "" Or Arret = True 'conditionne la boucle jusqu'à la dernière colonne de ton tableau

                If i > 15 Then Cells(7, i - 1).Value = Range("B1") 'mettre la valeur de B1 dans les cellule precedente
                Cells(7, i).Value = Range("B1").Value 'mets ta valeurs dans la cellule de ton tableau
                'boucle famille aléatoire tunel
                 If Range("P7") <> "" Then Range("P8") = Range("O8")

                If Range("Q7") <> "" Then Range("Q8") = Range("P8")
                Range("P8") = Range("O8")
                If Range("R7") <> "" Then Range("R8") = Range("Q8")
                Range("Q8") = Range("P8")
                If Range("S7") <> "" Then Range("S8") = Range("R8")
                Range("R8") = Range("Q8")
                If Range("T7") <> "" Then Range("T8") = Range("S8")

                If Range("O7") <> "" Then
        Set plage = Range("H3:H" & Range("H" & Rows.Count).End(xlUp).Row)
        Randomize
        lg = Int((WorksheetFunction.CountA(plage) - 1 + 1) * Rnd + 1)
        Range("O8") = Range("H" & lg + 13)

    End If

                'Range("O8").Value = Range("C13").Offset(Nb_Boucle, 0).Value
                i = i + 1 'prochaine colonne
                Application.Wait Time + TimeSerial(0, 0, 2) 'attends 10 sec
                DoEvents
            Loop

je te laisse voir l'image ou je t'explique ce que je veux faire

mercii

1 2
Rechercher des sujets similaires à "application worksheetfonction"