[VBA EXCEL] userform=véritable casse-tête
Résolu
sterog
Messages postés
20
Statut
Membre
-
sterog Messages postés 20 Statut Membre -
sterog Messages postés 20 Statut Membre -
Bonjour,
dans le cadre d'un stage, je fais face à un problème que je n'arrive vraiment pas à résoudre.
J'ai une premiere userform dans lequel l'utilisateur rentre plusieurs chiffres correspondant aux nombres de chaque appareil dans une installation. Puis, en cliquant sur un bouton dans la userform, une deuxième userform se lance, et le but serait d'avoir un nombre de label par appareil égal au nombre indiqué dans la première userform.
Par exemple, si je choisis dans la userform qu'il y: nombre frigo=2 et nombre four=4, je voudrai que dans la 2e userform on est 4 label frigo et 2 label four.
Voici mon code associé au bouton de la première userform lançant la deuxième:
Excel trouve une erreur aux lignes UserForm2.labeln.Caption = "frigo" et UserForm2.labeln.Caption = "four" car il essaie de trouver un label nommé labeln dans la userform 2, mais moi je voudrai qu'il comprenne que cela veut dire label1 puis label2 ...
J'ai essayé de contourner le problème en créant une variable temporaire du type var=lalel & n mais la ligne UserForm2.var.Caption = "four" ne lui va pas non plus.
Je ne sais pas si c'est un casse-tête ou si la solution est évidente et je ne l'ai pas vue, mais je vous défi de trouver la solution. ça me serait d'une grande aide!!!
Merci d'avance
dans le cadre d'un stage, je fais face à un problème que je n'arrive vraiment pas à résoudre.
J'ai une premiere userform dans lequel l'utilisateur rentre plusieurs chiffres correspondant aux nombres de chaque appareil dans une installation. Puis, en cliquant sur un bouton dans la userform, une deuxième userform se lance, et le but serait d'avoir un nombre de label par appareil égal au nombre indiqué dans la première userform.
Par exemple, si je choisis dans la userform qu'il y: nombre frigo=2 et nombre four=4, je voudrai que dans la 2e userform on est 4 label frigo et 2 label four.
Voici mon code associé au bouton de la première userform lançant la deuxième:
Private Sub CommandButton1_Click() 'création userform2 adaptée Dim i As Integer i = UserForm1.labelfrigo.Value For n = 1 To i UserForm2.labeln.Caption = "frigo" Next n Dim j As Integer j = UserForm1.labelfour.Value For n = 1 To i UserForm2.labeln.Caption = "four" Next n UserForm2.Show End Sub
Excel trouve une erreur aux lignes UserForm2.labeln.Caption = "frigo" et UserForm2.labeln.Caption = "four" car il essaie de trouver un label nommé labeln dans la userform 2, mais moi je voudrai qu'il comprenne que cela veut dire label1 puis label2 ...
J'ai essayé de contourner le problème en créant une variable temporaire du type var=lalel & n mais la ligne UserForm2.var.Caption = "four" ne lui va pas non plus.
Je ne sais pas si c'est un casse-tête ou si la solution est évidente et je ne l'ai pas vue, mais je vous défi de trouver la solution. ça me serait d'une grande aide!!!
Merci d'avance
A voir également:
- [VBA EXCEL] userform=véritable casse-tête
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
je vais peut etre dire une bétise.. attention je ne suis pas sur de ma réponse.
Essaye de mettre des parenthèses autour du compteur.
label(n)
Essaye de mettre des parenthèses autour du compteur.
label(n)
Bonjour,
Exemple :
Issue d'un exemple d'excelabo.net (John Fauss)
Lupin
Exemple :
Option Explicit
'
Public Function NomDuControle(varForme As UserForm, varControle As String) As Object
On Error Resume Next
Set NomDuControle = varForme.Controls(varControle)
End Function
'
Private Sub CommandButton1_Click()
' Création [UserForm2] adaptée
Dim i As Integer, j As Integer, n As Long
Dim Fonction As Variant
UserForm2.Show
UserForm2.Hide
If (Me.TxtBoxFrigo.Value <> "") Then
i = CInt(Me.TxtBoxFrigo.Value)
If (i > 0) Then
For n = 1 To i
NomDuControle(UserForm2, "label" & n).Caption = "Frigo No: " & n
Next n
End If
End If
If (Me.TxtBoxFour.Value <> "") Then
j = CInt(Me.TxtBoxFour.Value)
If (j > 0) Then
For n = 1 To j
NomDuControle(UserForm2, "label" & n).Caption = "Four No: " & n
Next n
End If
End If
UserForm2.Show
End Sub
'
Issue d'un exemple d'excelabo.net (John Fauss)
Lupin