OVH Cloud OVH Cloud

userform help

1 réponse
Avatar
Frederic
bonjour
Je désire faire une UserForm avec 18 textBox, donc 18 Label.
Pour écrire des données dans une feuille, sous forme de données.
je voudrais que Label1= Feuil1.range("A1")
et que le TextBox1 renseigne Feuil1.Range(" A2")
ensuite un offset de l' Activecell(0,1)
et TextBox2 renseigne l'Activecell
puis offset de nouveaux
et ainsi de suite jusqu'a 18.
j'ai deja ecrit une boite comme cela mais je cherche un code moins long
je peux me passé du code pour les Labels, ce n'est ppas le plus compliqué

j'ai exploré la piste du FOR EACH mais j'ai un problème de groupe
je suis sur que vous allez pourvoir m'aider
Merci d'avance
Fred

fpracht@wanadoo.fr

1 réponse

Avatar
michdenis
Bonsoir Frédéric,

Une suggestion pour ton problème de regroupement des textbox :

Dans le haut d'un module standard, déclare une variable de type "Tableau" qui contiendra la totalité des noms de tes textbox
que tu désires traiter. Tu pourras utiliser l'événement suivant pour initialiser ton tableau : Private Sub
UserForm_Initialize .

'Module standard :
Public Tblo As String

Module Formulaire
'-------------------------------
Private Sub UserForm_Initialize()

Dim A As Integer
For Each c In UserForm1.Controls
If TypeName(c) = "TextBox" Then
ReDim Preserve Tblo(A + 1)
A = A + 1
Tblo(A) = c.Name
End If
Next
End Sub
'-------------------------------


Et lorsque tu voudras traiter le groupe de textbox, tu pourras utiliser ce type de code :

Exemple : Rend tous les textbox du groupe invisible :
'---------------------------------
Private Sub CommandButton1_Click()

For A = 1 To UBound(Tblo)
Controls(Tblo(A)).Visible = False
Next
End Sub
'---------------------------------


Salutations!







"Frederic" a écrit dans le message de news:OTVJds%
bonjour
Je désire faire une UserForm avec 18 textBox, donc 18 Label.
Pour écrire des données dans une feuille, sous forme de données.
je voudrais que Label1= Feuil1.range("A1")
et que le TextBox1 renseigne Feuil1.Range(" A2")
ensuite un offset de l' Activecell(0,1)
et TextBox2 renseigne l'Activecell
puis offset de nouveaux
et ainsi de suite jusqu'a 18.
j'ai deja ecrit une boite comme cela mais je cherche un code moins long
je peux me passé du code pour les Labels, ce n'est ppas le plus compliqué

j'ai exploré la piste du FOR EACH mais j'ai un problème de groupe
je suis sur que vous allez pourvoir m'aider
Merci d'avance
Fred