Pour passer des valeurs entre procédure il faut déclarer :
en variable "public" les variables à transmettre d'un module à un autre module (d"claration dans un module),
en début de module les variables visibles par les procédure d'un module
ou transmettre les données au niveau de l'appel des procédures
Call toto( truc, machin)
Dans le fichier le plus simple est d'écrire
Call generateur_numitem(deb1)
et Sub generateur_numitem(deb1 as variant) ou deb1 as string ou deb1 as long en fonction de la nature de la variable.
pas sur qu'il faille utiliser une variable dans le cas présent, à noter les "select" sont que très rarement utiles en vba, je modifierais le code du bouton "valider" comme suit :
Code:
Private Sub CommandButton1_Click() 'bouton "Valider"
With Sheets("CRITERES")
.Range("a2").Value = TextBox1.Value
End With
With Sheets("toto")
.Range("a2").Value = TextBox1.Value
End With
Unload Me
End Sub