VBA Syntaxe et Dim

Bonjour au forum,

Pour un tirage de chiffres aléatoires, je ne pige pas bien cette ligne de déclaration

Dim Tableau(120) As Integer

Je vois bien que le 120 indique la limite maxi, mais est-t-on obligé de déclarer comme çà ?

Dans mon cas, j'ai besoin de sortir de 24 à 230 chiffres selon les besoins.

ce nombre correspond à:

Nbr = WorksheetFunction.CountA(Range("ListeAttente"))

Si je mets Dim Tableau(230), cela ne risque t-il pas d'alourdir inutilement la macro ?

Voici le code

Sub Tirage_EquipAléatoire() 'code pompé et adapté à partir d'une macro de Mytå
Dim Temp As Integer, Existe As Boolean
Dim i As Integer, J As Integer
Dim Tableau(120) As Integer, RDest As Range
Dim Nbr As Double, NbP$, TabL, Cel As Range, Top

    Application.ScreenUpdating = False

    Nbr = WorksheetFunction.CountA(Range("ListeAttente"))
    NbP = Range("o4") 'joueurs par équipe

    Set RDest = Range(Cells(4, 7), Cells(4, 6 + NbP))
    TabL = WorksheetFunction.Floor((Nbr / NbP), 1) 'plancher lignes tableau

    Range("g4:i300").ClearContents
    Randomize
    For i = 1 To Nbr
        Existe = True
        While Existe
            Temp = Int(Nbr * Rnd + 1) 'entier
            For J = 1 To Nbr
                If Temp = Tableau(J) Then
                    Existe = True
                    Exit For
                Else
                    Existe = False
                End If
            Next J
        Wend
        Tableau(i) = Temp
    Next i
            For i = 1 To Nbr
                RDest(i).Value = Tableau(i)
            Next i

Merci du coup de pouce

Bonne journée

Claude.

bonjour,

j'ai pas plus analysé que ça, mais à vue de nez et à la tronçonneuse tu peux faire :

Dim Tablo
Nbr = WorksheetFunction.CountA(Range("ListeAttente"))
ReDim Tablo(Nbr)

...la suite sans changement.

A+

re,

Ok, c'est bon,

Je ne connaissais pas le ReDim

Par contre j'ai été obligé de mettre

Dim Tablo() As Integer
Nbr = WorksheetFunction.CountA(Range("ListeAttente"))
ReDim Tablo(Nbr)

Sans les parenthèses au 1er Dim, çà bug

Je n'ai pas encore tout assimilé ce code, mais je pense que cela joue sur la boucle qui suit.

en tout cas, merci l'ami

Cordialement

Claude.

Rechercher des sujets similaires à "vba syntaxe dim"