Visual Basic - Estructura do until

Life is soft - evento anual de software empresarial
 
Vista:

Estructura do until

Publicado por Luciano Miranda (1 intervención) el 30/01/2020 15:11:50
Hola como estás? Soy nuevo en visual basic y tengo un código en el que se crean en tiempo de ejecución una cierta cantidad de labels a partir de una selección de un combobox. Cuando depuro el programa todo sale bien, se crean los labels que necesito y cambian según la opción elegida en combobox, pero el formulario pareciera que siguiera agregando lineas y se hace cada vez más grande. Este es el codigo:
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
44
45
46
47
48
49
Sub Mostrarvardeproceso()
Dim fila As Integer
Dim TopControl As Integer
Dim Labelleft As Integer
Dim Vardeproceso As String
Dim producto As String
Dim columna As Integer
Dim Nombredelabel As Integer
 
 
 
producto = ComboBox1.Value
TopControl = 60
Labelleft = 5
fila = 5
columna = 1
Nombredelabel = 0
 
For columna = 1 To 10
 
Vardeproceso = Sheets("Tabladinámicavardeprocesohoja").Cells(fila, columna)
 
Do Until Vardeproceso = ""
 
Vardeproceso = Sheets("Tabladinámicavardeprocesohoja").Cells(fila, columna)
    Set Label = UserForm1.Controls.Add("forms.label.1")
    Label.Left = Labelleft
    Label.Top = TopControl
    Label.Caption = Vardeproceso
    Label.Width = 100
    Label.Name = "etiqueta" & (Nombredelabel)
    Nombredelabel = Nombredelabel + 1
    fila = fila + 1
    TopControl = TopControl + 40
    Vardeproceso = Sheets("Tabladinámicavardeprocesohoja").Cells(fila, columna)
    UserForm1.Height = UserForm1.Height + 20
    UserForm1.Height = UserForm1.Height + 20
 
 
Loop
fila = 4
Labelleft = 100
Labelleft = Labelleft + (columna * 30)
Label.Width = 70
TopControl = 40
Nombredelabel = Nombredelabel + 1
Next columna
 
End Sub
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: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Estructura do until

Publicado por Antoni Masana (558 intervenciones) el 30/01/2020 17:14:55
Después de hacer unos cambios para leer mejor el código:

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
Sub Mostrarvardeproceso()
    Dim fila As Integer
    Dim TopControl As Integer
    Dim Labelleft As Integer
    Dim Vardeproceso As String
    Dim producto As String
    Dim columna As Integer
    Dim Nombredelabel As Integer
    producto = ComboBox1.Value
    TopControl = 60
    Labelleft = 5
    fila = 5
    columna = 1
    Nombredelabel = 0
    For columna = 1 To 10
        Vardeproceso = Sheets("Tabladinámicavardeprocesohoja").Cells(fila, columna)
        Do Until Vardeproceso = ""
            Vardeproceso = Sheets("Tabladinámicavardeprocesohoja").Cells(fila, columna)
            Set Label = UserForm1.Controls.Add("forms.label.1")
            Label.Left = Labelleft
            Label.Top = TopControl
            Label.Caption = Vardeproceso
            Label.Width = 100
            Label.Name = "etiqueta" & (Nombredelabel)
            Nombredelabel = Nombredelabel + 1
            fila = fila + 1
            TopControl = TopControl + 40
            Vardeproceso = Sheets("Tabladinámicavardeprocesohoja").Cells(fila, columna)
            UserForm1.Height = UserForm1.Height + 20
            UserForm1.Height = UserForm1.Height + 20
        Loop
        fila = 4
        Labelleft = 100
        Labelleft = Labelleft + (columna * 30)
        Label.Width = 70
        TopControl = 40
        Nombredelabel = Nombredelabel + 1
    Next columna
End Sub

Primera cuestión:
- La primera columna la recorres desde la fila 5 hasta el ultima con datos.
- La segunda columna la recorres desde la fila 4 hasta el ultima con datos. ¿Por?

Preguntas:
- ¿Cuantas celdas con datos hay en las diez columnas que recorres?

Te pregunto por celdas cuando tu hablas de combobox que no los veo, no se que datos tienes ni que haces o dejas de hacer, que lee o deja de leer.

Por los datos que aportas lo único que puedo decir es que la macro no tiene errores y funciona perfectamente, ahora bien, ¿que se espera que haga? ni pajotera idea.

Sube el libro y explica que hace mal y que quieres que haga.

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