Activer nTextBox selon une valeur n d'une cellule excel.
eddygordofai
-
eddygordofai -
eddygordofai -
Bonjour,
Je suis débutant en VBA et je bug complet là.
J'ai des Textbox que j'ai nommé SN1, SN2, SN3... jusqu'à SN12.
J'ai une valeur dans une cellule de mon tableau excel qui peut-être compris de 1 jusqu'à 12.
Mes Textbox SN1-SN12 sont en *.visible=false.
Je souhaiterais que:
Selon la valeur de ma cellule, les SN1-SN12 s'active.
Par exemple:
Si la valeur de ma cellule est égale à 4, les textbox SN1 à SN4 s'active, donc que je les pas en*.visible=true.
Donc que cellule=n --> les textbox de SN1 jusqu'à SNn passe en*.visible=true.
Y'a-t-il un moyen d'écrire ça s'il vous plaît ?
J'ai un début, mais je pense pas que ce soit bon:
Dim n As Integer
n = Sheets("Feuille de l'Administrateur").Cells(3, 7).Value
For n = 1 To n
Next
[("SN_"& n)].Visible = True
Merci pour votrre temps et vos idées.
Je suis débutant en VBA et je bug complet là.
J'ai des Textbox que j'ai nommé SN1, SN2, SN3... jusqu'à SN12.
J'ai une valeur dans une cellule de mon tableau excel qui peut-être compris de 1 jusqu'à 12.
Mes Textbox SN1-SN12 sont en *.visible=false.
Je souhaiterais que:
Selon la valeur de ma cellule, les SN1-SN12 s'active.
Par exemple:
Si la valeur de ma cellule est égale à 4, les textbox SN1 à SN4 s'active, donc que je les pas en*.visible=true.
Donc que cellule=n --> les textbox de SN1 jusqu'à SNn passe en*.visible=true.
Y'a-t-il un moyen d'écrire ça s'il vous plaît ?
J'ai un début, mais je pense pas que ce soit bon:
Dim n As Integer
n = Sheets("Feuille de l'Administrateur").Cells(3, 7).Value
For n = 1 To n
Next
[("SN_"& n)].Visible = True
Merci pour votrre temps et vos idées.
A voir également:
- Activer nTextBox selon une valeur n d'une cellule excel.
- Déplacer une colonne excel - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Bloquer une cellule excel - Guide
- Liste déroulante excel - Guide
3 réponses
Bonjour,
Dim n As Integer, i As Integer n = Sheets("Feuille de l'Administrateur").Cells(3, 7).Value If n > 12 Then MsgBox "Nombre trop élevé" Exit Sub End If 'TextBox Visible = True For i = 1 To n Me.Controls("SN_"& i).Visible = True Next 'Les autres TextBox Visible = False If n = 12 Then Exit Sub ' au cas ou n = 12 If n + 1 = 12 Then ' au cas ou n = 11 Me.Controls("SN_"& n + 1).Visible = False Exit Sub End If For i = n + 1 To 12 Me.Controls("SN_"& i).Visible = False Next i
Bonjour,
Une métode :
Arrrfff trop rapide Pikaju ^^
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Une métode :
Dim colText As New Collection Dim ctrl As Control Dim i As Long For Each ctrl In Me.Controls If TypeOf ctrl Is MSForms.TextBox Then colText.Add ctrl End If Next ctrl For i = 1 To CInt(Sheets("Feuille de l'Administrateur").Cells(3, 7).Value) colText(i).Visible = True Next i
Arrrfff trop rapide Pikaju ^^
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
euh je suis vraiment désolé les gars, mais j'ai rien compris.
Dim colText As New Collection
Dim ctrl As Control Dim
i As Long For Each ctrl
ça c'est bon.
Mais ensuite j'écris quoi comme fonction pour que quand mon userform s'initialise.
moi j'avais commencé à écrire:
For n = 1 To n
Next
[("SN_"& n)].Visible = True
Sachant que cette dernière ne fonctionne pas. ça me fait une erreur 424.
au niveau de:
[("SN_"&n)].visible=true
je pense pas que c'est une fonction valable.
Encore désolé les gars. mais comme je débute, c'est chaud de vous suivre rapidement.
Dim colText As New Collection
Dim ctrl As Control Dim
i As Long For Each ctrl
ça c'est bon.
Mais ensuite j'écris quoi comme fonction pour que quand mon userform s'initialise.
moi j'avais commencé à écrire:
For n = 1 To n
Next
[("SN_"& n)].Visible = True
Sachant que cette dernière ne fonctionne pas. ça me fait une erreur 424.
au niveau de:
[("SN_"&n)].visible=true
je pense pas que c'est une fonction valable.
Encore désolé les gars. mais comme je débute, c'est chaud de vous suivre rapidement.
Nos deux codes sont à placer dans un événement de ton UserForm. Si tu le veux à l'initialisation, tu utilises :
Soit, avec le code de Pollux (que tu sembles préférer au mien...) :
Private Sub UserForm_Initialize() End Sub
Soit, avec le code de Pollux (que tu sembles préférer au mien...) :
Private Sub UserForm_Initialize() Dim colText As New Collection Dim ctrl As Control Dim i As Long For Each ctrl In Me.Controls If TypeOf ctrl Is MSForms.TextBox Then colText.Add ctrl End If Next ctrl For i = 1 To CInt(Sheets("Feuille de l'Administrateur").Cells(3, 7).Value) colText(i).Visible = True Next i End Sub
Ok c'est fait.
Par contre j'ai entré pour dans la cellule 5.
J'ai qu'un textbox qui s'affice alors que je suis en censé en avoir 5 d'affiché.
Mais en tout cas ça ne plante plus.
Manque plus qu'à trouver pour quoi la valeur de "n" n'est pas pris encompte pour la rendre 5 textbox visivle dans mon test.
Par contre j'ai entré pour dans la cellule 5.
J'ai qu'un textbox qui s'affice alors que je suis en censé en avoir 5 d'affiché.
Mais en tout cas ça ne plante plus.
Manque plus qu'à trouver pour quoi la valeur de "n" n'est pas pris encompte pour la rendre 5 textbox visivle dans mon test.