XL 2010 recuperer les donnees de plusieurs textbox creer avec une boucle for

vincent7388

XLDnaute Nouveau
Bonjour je debute en vba est je peche sur la recuperation des valeurs des textbox creer en fonction des lignes d'un tableau. il se creer dans une boucle for i=1 to ligne next i
j'ai "x" textbox et je creer une variable collection qui enregistre les textbox a faire et a mesure. dans userform_initialize()
ils s'enregistre bien , l'on vois les items .
Mais lors de la procedure d'un boutton_clik() la collection est vide.
merci d'avance de votre reponse
 

xUpsilon

XLDnaute Accro
Bonjour,

Je ne suis pas sur de bien viser ton problème mais si j'ai bien compris le problème est que tu cherches à récupérer la valeur d'une variable inclue dans une Sub d'initialisation. Le problème, c'est qu'à moins de déclarer ta variable en tant que Static, celle-ci va se réinitialiser à la fin de l'exécution de ta macro : dès qu'une macro est finie, ses variables se remettent à 0.
Pour récupérer les valeurs stockées tu as plusieurs possibilités :
- stocker ta variable en tant que Static (ainsi, à la fin de l'exécution, la variable garde sa dernière valeur). Par contre attention ! Elle aura toujours la même valeur à l'exécution suivante, à moins que tu lui dises de se remettre à 0.
- stocker la valeur de ta variable dans une cellule, ce qui la stocke "physiquement". Il faut alors, dans ton bout de code de l'initialisation, dire que telle plage prendra la valeur de ta Collection. Tu peux ensuite appeler cette plage à l'activation de ton CommandButton.

Bonne continuation
 

vincent7388

XLDnaute Nouveau
Bonjour,

Je ne suis pas sur de bien viser ton problème mais si j'ai bien compris le problème est que tu cherches à récupérer la valeur d'une variable inclue dans une Sub d'initialisation. Le problème, c'est qu'à moins de déclarer ta variable en tant que Static, celle-ci va se réinitialiser à la fin de l'exécution de ta macro : dès qu'une macro est finie, ses variables se remettent à 0.
Pour récupérer les valeurs stockées tu as plusieurs possibilités :
- stocker ta variable en tant que Static (ainsi, à la fin de l'exécution, la variable garde sa dernière valeur). Par contre attention ! Elle aura toujours la même valeur à l'exécution suivante, à moins que tu lui dises de se remettre à 0.
- stocker la valeur de ta variable dans une cellule, ce qui la stocke "physiquement". Il faut alors, dans ton bout de code de l'initialisation, dire que telle plage prendra la valeur de ta Collection. Tu peux ensuite appeler cette plage à l'activation de ton CommandButton.

Bonne continuation
Merci de votre aide mais comment puis je faire sinon pour récupérer la valeur des textbox que l utilisateur rentre. Ou sinon comment fait on pour définir ma variable en static
 

vincent7388

XLDnaute Nouveau
Sub UserForm_Initialize()

Dim obj As msforms.TextBox
Static numboxes As Collection
Dim ref As String
Dim mybox As numbox
Set numboxes = New Collection

For i = 1 To 3

ref = Sheets("Bases_produits").Range("A" & 4 + i)
dec = 30 + dec

Set obj = UserForm3.Controls.Add("forms.Textbox.1")
With obj

.Left = left_box '60 de decalage avec le label
.top = top_box + dec
.Enabled = True 'ecriture
End With

Set mybox = New numbox
Set mybox.TargetBox = obj
numboxes.Add mybox

next i
end sub

'module de classe numbox

Public WithEvents TargetBox As msforms.TextBox
Private Sub TargetBox_KeyPress(ByVal KeyAscii As msforms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub





Sub valider_Click() ' bouton de validation pour récupérer les données

'il me faut récupérer les données des textbox mais je ne sais pas comment faire ?????????????????? en sachant que ma collection est "null"

end sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Déclarer 'Private numboxes As Collection' en tête de module du UserForm avant tout autre procédure, pour que la collection soit accessible de n'importe quelle procédure dans le module
Si ça va pas , joignez un fichier exemple
Bonne continuation
 

Discussions similaires

Statistiques des forums

Discussions
312 098
Messages
2 085 267
Membres
102 845
dernier inscrit
Baticle.geo