Excel - Hacer referencia a elementos segun un nombre

 
Vista:
sin imagen de perfil

Hacer referencia a elementos segun un nombre

Publicado por jesus (1 intervención) el 09/04/2020 17:39:34
Buenas tardes

No sé muy bien que título poner a la pregunta, a ver si explicándolo me hago entender mejor.

Yo tengo una formulario con muchas label (Label1, Label2, Label3... Label30)

El caso es que quiero poner un valor a cada label dependiendo de una celda, pero no quiero tener que escribir el código teniendo que nombrar cada una de las label, por lo que yo había pensado en poner un código como el que sigue:


1
2
3
4
5
6
7
8
9
10
11
12
13
DATO1 = Range("A1").Value
DATO2 = Range("A2").Value
DATO3 = Range("A3").Value
 
NUMERO = "1"
 
Do While NUMERO < 4
NOMBRE = "Label" & NUMERO 'Se supone que coge el valor de Label1, Label2, Label3...
 
NOMBRE.Caption = "DATO" & NUMERO 'Se supone que pone a Label1, Label2, Label3... los valores de DATO1, DATO2, DATO3
 
NUMERO = NUMERO + 1
Loop


No sé como hacerlo, para no tener que escribir todos los Label y todo los datos con un while.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Hacer referencia a elementos segun un nombre

Publicado por Antoni Masana (2482 intervenciones) el 10/04/2020 00:17:12
Este código valida que los 10 TextBox tengan datos antes de grabar.

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
32
33
34
35
36
37
38
39
40
41
42
43
Private Sub CommandButton1_Click()
    Dim Vacio As Boolean
    Vacio = False
    For Each Control In Me.Controls
        tipo = UCase(TypeName(Control))
        If tipo = "TEXTBOX" Then
            If Control.Text = Empty Then
                Vacio = True
                MsgBox ("CAMPO VACIO"), vbCritical, "AVISO"
                Control.SetFocus
                Exit For
            End If
        End If
    Next Control
    If Vacio Then Exit Sub
 
    ' ---&--- Guarda lo datos
 
    Sheets("programarprev").Select
    Selection.ListObject.ListRows.Add (1)
 
    Range("a2") = Format(TextBox1, "dd/mm/yyyy")
    Range("B2") = Me.TextBox2.Value
    Range("C2") = Me.TextBox3.Value
    Range("D2") = Me.TextBox4.Value
    Range("E2") = Me.TextBox5.Value
    Range("F2") = Me.TextBox6.Value
    Range("G2") = Format(TextBox7, "dd/mm/yyyy")
    Range("H2") = Me.TextBox8.Value
    Range("I2") = Me.TextBox9.Value
    Range("K2") = Me.TextBox10.Value
 
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
    TextBox7 = ""
    TextBox8 = ""
    TextBox9 = ""
    TextBox10 = ""
End Sub

Si no sabes como adaptarlo sube el libro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar