Definir la taille d'un tableau par un UserForm

Salut à tous,

J'ai un projet à faire et j'ai un petit soucis dans l’exécution d'une macro VBA.

On me demande de réaliser une interface par UserForm avec deux zones de textes qui permettent à l'utilisateur de choisir deux tailles de tableaux (le premier c'est la taille du tirage de nombres aléatoires et le deuxième le nombre de valeurs que je désire parmis le premier tableau pour les trier ensuite).

Je réalise donc un UserForm avec tous les cas possibles car ce que je veux faire ne marche pas.

Au début j'avais créer 3 boutons : un qui demande la première taille (et cachait un inputbox avec la procédure Click), un qui demandait la deuxième taille et un troisième qui fermait l'userform.

Maintenant je suis passé à un autre système avec deux zones de textes et un bouton terminer.

Voici le contenu de "terminer" :

Private Sub BoutonValider_Click()

    Taille1 = TextBoxUnivers.Value
    Taille2 = TextBoxUnivers.Value
    Unload FormulaireUtilisateur

End Sub

Bon jusque là je pense pas avoir raté quelque chose (A moins que la valeur de la zone de texte soit considéré comme d'un type qui m’échappe).

Là où les soucis commence, c'est dans mon code principal. Je désire remplacer les valeurs brutes de mes tableaux (50 et 30) par (taille1;taille2).

J'ai bien fait attention, j'ai bien déclaré les deux variables importantes en public hors du Sub de mon programme pour pouvoir utiliser les variables partout :

Option Base 1
Option Explicit
Public Taille1 As Long
Public Taille2 As Long

Sub TirageNombre()

Dim verif as boolean 
Dim tab_random(Taille1) As String 

Le soucis c'est que VBA stop à la dernière ligne ci-dessus en indiquant : "Constante requise" en message d'erreur.

Alors ni une, ni deux, je mets vite fait Public Const Taille1 as Long et là apparait un nouveau message : "Impossible de mettre une constante ..."

Ma question, que dois je faire pour récupérer ces deux valeurs (ou sinon indiquez moi si je dois changer quelque chose dans le formulaire pour plus de faciliter) pour définir la taille de mes tableaux (ps: j'ai testé avec un simple inputbox et le resize et ca marche plutôt bien... mais ce n'est pas demandé de cette manière)..

MERCI d'avance!

Nicolas

PS : J'ai aussi essayé d'affecter ces valeurs de TextBox dans une cellule puis d’appeler la cellule après : impossible même erreur de constante

Bonsoir

A tester

Option Base 1
Option Explicit
Public Taille1 As Long
Public Taille2 As Long

Sub TirageNombre()
Dim verif As Boolean
'Dim tab_random(Taille1) As String
Dim tab_random() As String

  ReDim tab_random(Taille1)
End Sub

Si pas ça

Dans ta 1ère macro tu as 2 fois TextBoxUnivers, normal ?

Edit : Bonsoir Banzaï, bon tu m'as encore précédé, ça tombe bien, on est à peu près d'accord

Bonsoir,

Lors de la déclaration d'un tableau, 2 possibilités :

- on lui donne une taille (fixe)

Dim tab_random(10) As String

=> on ne pourra pas mettre plus de 10 éléments dans le tableau

- on ne lui donne pas de taille

Dim tab_random() As String

=> la taille du tableau est illimitée.

on peut le dimensionner ensuite :

et dans ce cas, avec une taille passée en variable ;

Dim tab_random() As String

ReDim tab_random(Taille1)

Par contre on ne peut pas déclarer un tableau avec une taille variable.

cf exemples en pièce jointe

Bonne soirée

Bouben

42tailletableau.xlsm (21.39 Ko)
Rechercher des sujets similaires à "definir taille tableau userform"