Excel - Mostrar varias veces un userform segun condicion

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

Mostrar varias veces un userform segun condicion

Publicado por Delinger (1 intervención) el 24/10/2019 15:22:57
Buenos dias, quiero hacer lo siguiente, tengo un macro que me escanea varios datos y cuando haya un dato determinado "Aqui" (ejemplo) me muestre una userform. El problema es que si tengo varios "Aqui" no se ejecuta la forma en la segunda opcion.

con este codigo llamo al userform

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Do While ActiveCell.Value <> Empty
 
If ActiveCell.Value = "Aqui" Then
Dim formvet As New vetcajones
 
Load formvet
formvet.Show
 
Unload formvet
 
ActiveCell.Offset(1, 0).Select
End If
ActiveCell.Offset(1, 0).Select
Loop

y este es el user form, tiene dos lista de datos que muestra ,
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
Private Sub ListBox1_Click()
 
Dim answer As Integer
 
        answer = MsgBox("Estas seguro?", vbYesNo + vbQuestion, "Vetas")
        If answer = vbYes Then
        Range("M14").Value = ListBox1.List(i)
 
        Unload Me
        End If
 
 
End Sub
 
Private Sub ListBox2_Click()
 
End Sub
 
Private Sub UserForm_Initialize()
 
Me.ListBox1.RowSource = "N" & ActiveCell.Row
Me.ListBox1.ColumnCount = 1
Me.ListBox1.ColumnWidths = "25"
 
Me.ListBox2.RowSource = "O" & ActiveCell.Row
Me.ListBox2.ColumnCount = 1
Me.ListBox2.ColumnWidths = "25"
 
 
End Sub

Agradecido de antemano por su ayuda
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: 3.874
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Mostrar varias veces un userform segun condicion

Publicado por Antoni Masana (1291 intervenciones) el 24/10/2019 19:27:50
Voy a poner bien el código que se lea bien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub ...
    ...
    Do While ActiveCell.Value <> Empty
        if ActiveCell.Value = "Aqui" Then
            Dim formvet As New vetcajones
            Load formvet
            formvet.Show
            Unload formvet
            ActiveCell.Offset(1, 0).Select
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    ....
End Sub

A parte que no se que hace antes ni después del código veo que si encuentra la palabra Aqui salta dos líneas ¿Es correcto?

El segundo 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
Private Sub ListBox1_Click()
    Dim answer As Integer
 
    answer = MsgBox("Estas seguro?", vbYesNo + vbQuestion, "Vetas")
    If answer = vbYes Then
        Range("M14").Value = ListBox1.List(i)
        Unload Me
    End If
End Sub
 
Private Sub ListBox2_Click()
 
End Sub
 
Private Sub UserForm_Initialize()
    Me.ListBox1.RowSource = "N" & ActiveCell.Row
    Me.ListBox1.ColumnCount = 1
    Me.ListBox1.ColumnWidths = "25"
 
    Me.ListBox2.RowSource = "O" & ActiveCell.Row
    Me.ListBox2.ColumnCount = 1
    Me.ListBox2.ColumnWidths = "25"
End Sub

¿De donde sale el valor i del índice del ListBox.List()?
¿Cuando regresa de la llamada al formulario ¿Que celda esta activa?

Sin ver lo que hace ni entender lo que pretendes hacer sobre el terreno es muy difícil ayudarte.

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