Bonsoir,
je voudrais initialiser un userform et créer automatiquement les labels sur base d'un tableau
ex :
A1 txt1
A2 Txt2
B1 Or1
B2 OR2
Je voudrais label 1 = txt 1 et etc
Merci de m'orienter..
Bonsoir,
je voudrais initialiser un userform et créer automatiquement les labels sur base d'un tableau
ex :
A1 txt1
A2 Txt2
B1 Or1
B2 OR2
Je voudrais label 1 = txt 1 et etc
Merci de m'orienter..
Bonjour,
C'est tout à fait possible de le faire avec un code dans ce style :
Tu définis la variable 'obj' par exemple : Dim obj As Control
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Set obj = Me.Controls.Add("Forms.Label.1", "nom" & numéro, True) With obj .Left = 'position gauche .Top = 'position haut .Caption = 'intitulé de ta rubrique End With
tu adaptes les rubriquess soulignées à ton cas
et tu peux initialiser toutes les propriétés de tes contrôles (taille,police,etc) de même que leur position que tu dois bien sûr adapter.
Tu peux insérer ainsi tous tes titres et bien sûr rajouter les textbox ou combobox de saisie afférents.
Bonjour
Voilà un "etc" bien inquiétant, surtout si pléthorique ...Je voudrais label 1 = txt 1 et etc
Les contrôles Labels n'étant que des étiquettes (non éditables), il parait bien plus sage d'utiliser en leurs lieu et place une listbox, plutôt que de charger un userform d'une énorme quantité de labels
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Bonjour,
dans l'exemple, les entetes de ListBox sont crées avec des labels.
Boisgontier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub EnteteListBox() x = Me.ListBox1.Left + 8 Y = Me.ListBox1.Top - 12 For i = 1 To NbCol Set lab = Me.Controls.Add("Forms.Label.1") lab.Caption = Rng.Offset(-1).Cells(1, i) lab.Top = Y lab.Left = x x = x + Rng.Columns(i).Width * 1.1 temp = temp & Rng.Columns(i).Width * 1.1 & ";" Next temp = Left(temp, Len(temp) - 1) Me.ListBox1.ColumnWidths = temp End Sub
Bonjour …
« Voilà un "etc" bien inquiétant, surtout si pléthorique ... »
Salut unparia, il est vrai qu’une éruption de boutons peut générer des alarmes inquiétantes donc, on peut s’amuser à réduire leur nombre comme dans l’exemple suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Option Explicit Dim dc As Byte, n As Byte, L As Integer, t As Byte Private Sub UserForm_Initialize() Me.Height = 160 dc = [Bd].Columns.Count Lst.ColumnCount = dc For n = 1 To dc: Lst.ColumnWidths = [Bd].Columns(n).Width: Next Lst.Width = 80 * dc + 80: Usf.Width = Lst.Left + Lst.Width + 80 Lst.RowSource = [Bd].Address Col.List = Application.Transpose([Bd].Rows(0)) End Sub Private Sub Lst_Click() L = Lst.ListIndex + 1 Me.Height = 200 End Sub Private Sub Col_Click() If Lst.ListIndex < 0 Then Exit Sub t = Col.ListIndex Modif = Lst.List(Lst.ListIndex, t) End Sub Private Sub Modif_Change() Change.Visible = Modif <> "" End Sub Private Sub Change_Click() If MsgBox("Accepter ?", vbYesNo, "Attention, la base sera changée !") = vbNo Then Modif = "" Else [Bd].Item(L, t + 1) = Modif.Value UserForm_Initialize End If End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager