Visual Basic para Aplicaciones - Ayuda, cómo poner un Stop en VBA

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda, cómo poner un Stop en VBA

Publicado por Ana (8 intervenciones) el 11/03/2015 01:11:41
HOla, tengo que hacer este programa:
5. Escriba un programa que muestre el resultado de una tirada de dos dados de forma cíclica hasta que el usuario lo desee.

Ya tengo el código para que los dados escojan un numero al azar...


Function Tirar_dados()

Dim Dado1 As Integer
Dim Dado2 As Integer

Dado1 = Int((6 - 1 + 1) * Rnd + 1)
Dado2 = Int((6 - 1 + 1) * Rnd + 1)

ActiveSheet.Range("B5").Value = Dado1
ActiveSheet.Range("C5").Value = Dado2

End Function

El problema es que NO SE como ponerlo de forma ciclica y que el usuario con un botón lo detenga y le de el par de numero en los que se quedo el ciclo.... Alguien podría orientarme al respecto...

Saludos y Gracias
Ana
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda, cómo poner un Stop en VBA

Publicado por Martin (4 intervenciones) el 12/03/2015 15:33:40
Primero, necesitarás un commandbutton en la hoja para iniciar el proceso y también para detenerlo. Suponiendo que se llame CommandButton1, y leve el texto "Iniciar" al principio, el código que tendrías que colocar en el módulo de la hoja es :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub CommandButton1_Click()
    If CommandButton1.Caption = "Iniciar" Then
        CommandButton1.Caption = "Frenar"
        Do While CommandButton1.Caption = "Frenar"
            Tirar_dados
            DoEvents
        Loop
    Else
        CommandButton1.Caption = "Iniciar"
    End If
End Sub
 
Function Tirar_dados()
 
    Dim Dado1 As Integer
    Dim Dado2 As Integer
 
    Dado1 = Int((6 - 1 + 1) * Rnd + 1)
    Dado2 = Int((6 - 1 + 1) * Rnd + 1)
 
    ActiveSheet.Range("B5").Value = Dado1
    ActiveSheet.Range("C5").Value = Dado2
 
End Function

Es un poco tosco pero funciona. Avisame si te sirvió
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda, cómo poner un Stop en VBA

Publicado por Ana (8 intervenciones) el 12/03/2015 16:21:16
Excelente!!!!

Gracias!!!!
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
sin imagen de perfil

Ayuda, cómo poner un Stop en VBA

Publicado por luis (5 intervenciones) el 19/07/2015 11:19:09
podria ser con un mensaje.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function Tirar_dados()
Dim Mensajes
Dim Dado1 As Integer
Dim Dado2 As Integer
 
Dado1 = Int((6 - 1 + 1) * Rnd + 1)
Dado2 = Int((6 - 1 + 1) * Rnd + 1)
ActiveSheet.Range("B5").Value = Dado1
ActiveSheet.Range("C5").Value = Dado2
 
Mensajes = MsgBox("Te gustan estos Números..........  * *  ¿Sigues...... ?", vbYesNo, "    AVISO")
If Mensajes <> vbYes Then ThisWorkbook.Activate:
 
End Function
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