No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Ciclos Do While - Loop

15/17
Recursos

Aportes 84

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Buenas! Una aclaraci贸n: al escribir la sentencia dado = WorksheetFunction.RandBetween(1, 6) fuera del while, el dado se tira una sola vez, por lo tanto la funci贸n calcula cuantas veces entra ese tiro en 100. Si deseamos que sean varios tiros aleatorios, la sentencia debe estar dentro del while!

Public Function DW() As Integer

Dim dado As Integer
Dim i As Integer
Dim s As Integer
Dim z As Integer

z = InputBox("Hasta donde quieres papi")

dado = WorksheetFunction.RandBetween(1, 6)

Do While s < z
    i = i + 1
    s = s + dado
Loop

DW = MsgBox(i)

End Function

Este ejercicio estuvo algo confuso, la profesora no inicializa al contador, no inicializa la variable 鈥渟鈥, en otros ejercicios si lo hace. Es algo tedioso tener que buscar las respuesta cuando se deber铆a quedar claro en cada clase.

Aqu铆 mi aporte:
Cre茅 un funci贸n que le pide al usuario definir un limite de suma de los puntos obtenidos en cada tiro de dado e imprime en las 3 primeras columnas: el # de tiro, los valores obtenidos y la suma acumulada. Finalmente arroja un msgbox que indica en que n煤mero de tiro llega al limite y cual es el valor de la suma que se obtuvo con ese tiro

De hecho puede haber observaciones que se nos pase como declarar variables, como inicializar variables, inclusive comentarios en el documentos programativos , pero se trata de cumplir con los objetivos planteados por el curso, y todos hacen su mejor esfuerzo. Al observar ciertos comentarios entonces se me dio por que la salida sea del tipo string para mantener el procedimiento como funci贸n, probe como procedimiento y constate que suele a veces pasar la observacion que la formula volatil de valores aleatorios no es muy recomendable usarlo, pero tambien se uso solo una vez ya que no estaba inmerso en el do while, la complejidad depende del objetivo del USUARIO que son muy volubles acorde a la creatividad.
Muestro mi ejemplo. Saludos desde Peru

Pidiendo al usuario que ingrese el valor N de la suma


Notas:

  • el valor del dado va de 1 a 6 por lo que declararlo como Byte pienso que ser铆a m谩s correcto.
  • el usuario puede ingresar hasta 30,000
  • para m谩s valor de suma hay que subcribirse a la versi贸n PRO. jeje
  • el l铆mite de 32,767 es del Integer, para usuario pudo haber sido 32,761; pero me gust贸 m谩s 30,000
Function TirarDados() As Integer
    
    'DECLARACION DE VARIABLES
    Dim DadoValor As Byte
    Dim Counter As Integer 'contador
    Dim Accum As Integer 'acumulador
    Dim N As Integer 'Suma a la que se quiere llegar (Limite 32,767)
    
    'INICIALIZACION DE contadores y acumuladores
    'Aunque VBA les asigna 0 autom谩ticamente
    Counter = 0
    Accum = 0
    
    'Establecer N por el usuario
    Do
        N = InputBox("Ingrese la suma l铆mite a la que quiere llegar", "Juego de Dados")
        
        If N <= 0 Or N > 30000 Then
            MsgBox "Ingrese un n煤mero entre 1 y 30 mil", , "Juego de Dados"
        End If
        
    Loop Until (N > 0) And (N <= 30000)
    
    'LETS PLAY
    Do While Accum < N
        Counter = Counter + 1
        'Debug.Print "Contador: " & Counter
        
        DadoValor = Application.WorksheetFunction.RandBetween(1, 6)
        'Debug.Print "Valor del Dado: " & DadoValor
        
        Accum = Accum + DadoValor
        'Debug.Print "Acumulado: " & Accum
        'Debug.Print
    Loop
    
    TirarDados = Counter - 1

End Function

Mi c贸digo

隆Maravilloso curso!

El reto

Public Function DW() As Integer

    Dim dado As Integer
    Dim i As Integer
    Dim s As Integer
    Dim meta As Integer
    
    meta = InputBox("Cual es la meta a la que quieres llegar", "Suma de tiros")
    dado = WorksheetFunction.RandBetween(1, 6)
    
    Do While s < meta
        i = i + 1
        s = s + dado
        
    Loop
    
    DW = MsgBox(i)
    
End Function

Hola que tal.
Les paso mi versi贸n. Yo la combine con las clases anteriores y unas cuantas cosillas mas e hice un juego. 馃槃
Muestro los resultados en cada vuelta y su acumulado.
Me dicen que les parece.

Public Function DoWhile()
    Dim i As Integer
    Dim Dado As Integer
    Dim Objetivo As Integer
    Dim Acumulado As Integer
    Cells(1, 1) = "Num de Vuelta"
    Cells(1, 2) = "Valor de dado"
    Cells(1, 3) = "Puntos Acumulados"
    Range("A2:C100").Clear
    Objetivo = InputBox("驴En cuantas vueltas llegar谩s a 100?", "Vueltas de Dado")
    MsgBox ("Dijiste que " & Objetivo & " vueltas. Veamos")
    
    Do While Acumulado <= 100
        i = i + 1
        Dado = WorksheetFunction.RandBetween(1, 6)
        Acumulado = Dado + Acumulado
        Cells(i + 1, 1) = i
        Cells(i + 1, 2) = Dado
        Cells(i + 1, 3) = Acumulado
    Loop
    
    DoWhile = MsgBox("El final se necesitaron " & i & " vueltas. Y se acumul贸 un total de " & Acumulado & " Puntos.")
    
    If Objetivo > i Then
        MsgBox ("Perdiste! :( Te pasaste por muy poco. Te Volvamos a intentarlo")
    ElseIf Objetivo = i Then
        MsgBox ("Ganaste! :D Felicidades!")
    Else
        MsgBox ("Perdiste! :( Te Falto muy poco. Volvamos a intentarlo")
    End If
    
End Function

Comparto Visualizaci贸n de Macro para sorteo de Dado, dando un valor , aplicado un Ciclo Do While - Loop.

Buenas, creo que ahi me quedo bien! Consulta que sumatoria maxima queremos y muestra el numero de tiradas.

Public Function Dados() As Integer
Dim suma As Integer
Dim suma1 As Integer
Dim dado As Integer
Dim i As Integer

suma = InputBox("Introducir numero maximo de sumatoria", "Sumatoria")
i = 1
suma1 = 0

Do While suma1 < suma
    dado = WorksheetFunction.RandBetween(1, 6)
    i = i + 1
    suma1 = suma1 + dado
Loop

Cartel = MsgBox("Cantidad de tiradas" & i)

End Function

Comparto mi funci贸n SAD鈥ara terminar el curso鈥ens茅 que feliz pero鈥︷煒

![](https://static.platzi.com/media/user_upload/DO%20WHILE%20-%20LOOP-8254892e-65f1-41e2-8308-042af108a847.jpg) Quedo atento
![](https://static.platzi.com/media/user_upload/image-7c7fa3bd-e2c7-49db-a457-abf81cbee4b7.jpg)
Aqu铆 est谩 mi soluci贸n para cuando el usuario ingresa el l铆mite de la suma: ![](https://static.platzi.com/media/user_upload/image-c661269d-8874-4f35-b691-012b7c58a025.jpg) Cada vez que coloque =DW() saldr谩 una ventana solicitando el valor m谩ximo: ![](https://static.platzi.com/media/user_upload/image-24ad2baf-0402-4a68-a8c1-9614daf0b1bd.jpg)
Mi codigo con rango a seleccionar es:```js Public Function DW() As Integer Dim dado As Integer Dim suma As Integer Dim contador As Integer Dim rango As Integer rango = InputBox("Defina el rango", "Rango") dado = WorksheetFunction.RandBetween(1, 6) Do While suma < rango suma = suma + dado i = i + 1 Loop DW = i End Function ```Public Function DW() As Integer Dim dado As Integer Dim suma As Integer Dim contador As Integer Dim rango As Integer rango = InputBox("Defina el rango", "Rango") dado = WorksheetFunction.RandBetween(1, 6) Do While suma < rango suma = suma + dado i = i + 1 Loop DW = i End Function
![](https://static.platzi.com/media/user_upload/imagen-92263d34-e815-4770-a95e-0f5784a2650f.jpg)![](https://static.platzi.com/media/user_upload/imagen-7727843d-35f9-4c49-88f2-893486ecc9e0.jpg)![](https://static.platzi.com/media/user_upload/imagen-5be1ff4c-77a8-4fed-a786-951f2ba6c3a7.jpg)
yo resolv铆 el reto de esta manera ![](https://static.platzi.com/media/user_upload/image-ed344d30-2eeb-4c61-96a2-cad3ed6570d5.jpg)
Este fue el resultado del reto: ```js Public Function DW() Dim dado As Integer Dim n As Integer Dim i As Integer Dim intentos As Integer n = InputBox("Indique la suma a la que quiere llegar", "Suma final") i = 0 intentos = 0 Do While i < n dado = WorksheetFunction.RandBetween(1, 6) intentos = intentos + 1 i = i + dado Loop DW = MsgBox("Se requierieron " & intentos & " intentos tiros para llegar a la suma especificada") End Function ```Public Function DW() Dim dado As Integer Dim n As Integer Dim i As Integer Dim intentos As Integer n = InputBox("Indique la suma a la que quiere llegar", "Suma final") i = 0 intentos = 0 Do While i < n dado = WorksheetFunction.RandBetween(1, 6) intentos = intentos + 1 i = i + dado Loop DW = MsgBox("Se requierieron " & intentos & " intentos tiros para llegar a la suma especificada") End Function
![](https://static.platzi.com/media/user_upload/image-c955a0ce-6506-421f-9ca2-3cbf58b04a86.jpg)
```js Public Function doWhile() As Integer Dim dado As Integer Dim i As Integer Dim s As Integer Dim sumToReach As Integer sumToReach = InputBox("Until what sum do you want to reach?") dado = WorksheetFunction.RandBetween(1, 6) Do While s < sumToReach i = i + 1 s = s + dado Loop doWhile = i End Function ```
Dato interesante: Despues de utilizar la funci贸n 7746 veces, el promedio es igual a 40,74, lo que quiere decir, que en teor铆a se necesita en promedio tirar un dado de 6 caras alrededor de 41 veces para que la suma de las tiradas sobrepase el valor de 100, lo que corresponde

Con la funci贸n de lanzamiento de dado aleatorio dentro del ciclo Do While

Do While donde el usuario ingresa hasta donde detener el ciclo:

ejercicio ![](https://static.platzi.com/media/user_upload/image-2dac3d26-d5e5-405b-a319-f0a48852bf1a.jpg)
![](https://static.platzi.com/media/user_upload/image-b612d2ad-b175-44cb-9669-31cc7d1ca004.jpg)

Este ejerci贸 un poco dif铆cil para las personas que recen empezamos a utilizar a fondo excel.

este es mi c贸digo ```js Public Function DW() As Integer Dim dado As Integer Dim i As Integer Dim a As Integer Dim b As Integer b = InputBox("ingresa el numero hasta donde llegar") dado = WorksheetFunction.RandBetween(1, 6) Do While s < b i = i + 1 s = s + dado Loop DW = i End Function ```Public Function DW() As Integer Dim dado As Integer Dim i As Integer Dim a As Integer Dim b As Integer b = InputBox("ingresa el numero hasta donde llegar") dado = WorksheetFunction.RandBetween(1, 6) Do While s < b i = i + 1 s = s + dado Loop DW = i End Function
tire el dado 154 veces y este fue el resultado jeje![](https://static.platzi.com/media/user_upload/image-0c653ac1-25a4-4fff-985e-b93b441d6a60.jpg)

Genial clase鈥!

'Do while - loop loops

Public Function DW() As Integer

    Dim dice As Integer
    Dim i As Integer
    Dim sum As Integer
    
    s = 0
    i = 0
        
    Do While s <= 100
        dice = WorksheetFunction.RandBetween(1, 6)
        i = i + 1
        s = s + dice
        
        If s > 80 And s <= 100 Then
            MsgBox (dice & " and " & s)
        End If
        
    Loop
    
    DW = i

Ingresando hasta que suma se queore llegar

Public Function DW() As Integer

Dim dado As Integer
Dim i As Integer
Dim s As Integer
Dim n As Integer

n = InputBox("Hasta que suma quiere llegar?")

dado = WorksheetFunction.RandBetween(1, 6)

Do While s <= n
    i = i + 1
    s = s + dado
Loop

DW = i

End Function

Buen dia,

adjunto mi aporte

Public Function DW() As Integer
    Dim dado As Integer
    Dim i As Integer
    Dim s As Integer
    Dim response As VbMsgBoxResult

    Do While s < 100
        ' Roll the die
        dado = WorksheetFunction.RandBetween(1, 6)
        
        ' Increment the roll count and update the sum
        i = i + 1
        s = s + dado
        
        ' Inform the user about the result of the roll and the current total
        response = MsgBox("Roll #" & i & ": You rolled a " & dado & "." & vbCrLf & _
                          "Total so far: " & s, vbOKCancel + vbInformation, "Dice Game")

        ' If the user clicks "Cancel", exit the game
        If response = vbCancel Then Exit Do
    Loop
    
    ' Return the number of rolls it took to exceed or reach 100
    DW = i
End Function

Se me ocurre que podr铆a usarla para que vaya eliminando filas mientras el valor de una columna sea blanco o vac铆o

Les dejo mi codigo de la solucion del reto, Espero les sirva de ayuda

Public Function DW()
'Aprendiendo de ciclos Do While - Loop'
    Dim dado As Integer
    Dim i As Integer
    Dim s As Integer
    Dim e As Integer
'El valor del dado ahora es con funcion del libro de excel'
    e = InputBox("驴Hasta que n煤mero deseas llegar?", "Numero deseado")
       
    Do While s < e
        dado = WorksheetFunction.RandBetween(1, 6)
        i = i + 1
        s = s + dado
    Loop
    DW = i

Reto cumplido!

<code> 

Public Function DADODW() As Integer 'Cuantas veces debo tirar el dado para que me sume 100
Dim DADO As Integer 'LADOS DEL 1 AL 6
Dim I As Integer 'CONTADOR
Dim S As Integer 'SUMA
Dim L As Integer

DADO = WorksheetFunction.RandBetween(1, 6)
L = InputBox("HASTA QUE NUMERO QUIERES SUMAR", "SUMA  DADO")
Do While S < L

I = I + 1
S = S + DADO

Loop
DADODW = I

End Function

![](

Muy funcional, puede ser util para hacer conteos, para llenar celdas con valores que podemos calcular al interior del loop y muchas otras funcionalidades y aplicaicones en el trabajo del dia a dia

Yo lo haria asi:

Public Function DW() As Integer

    Dim dado As Integer
    Dim i As Integer
    Dim s As Integer
    
    dado = WorksheetFunction.RandBetween(1, 6)
    suma = InputBox("Hasta donde debe ir la suma?")
    
    Do While s < suma
        i = i + 1
        s = s + dado
    Loop
    
    DW = i
           

Hola a todos, comparto algunas cosas que a帽ad铆.
Se imprime resultados de los lanzamientos en hoja de excel! y un Do While por si ingresan un valor fuera del rango.

Public Function DW() As Integer
Dim dado As Integer
Dim i As Integer 'contador
Dim Suma As Integer 'suma de valores del dado
Dim ALCANCE As Integer
Dim m
Dim m2

Suma = 0
i = 0

'Mensaje para que vuelva ingrese un valor
ALCANCE = InputBox("驴Hasta d贸nde quieres ir? Elige un n煤mero mayor al 1 y menor o igual a 100", "El cielo es el l铆mite")

        'Ciclo por si se recibe un valor fuera de rango
        Do While ALCANCE <= 1 Or ALCANCE > 100
            'Mensaje de error y mensaje para que vuelva a ingresar un valor
            m = MsgBox("Ingrese un n煤mero mayor a 1 o menor o igual a 100", , "ERROR")
            ALCANCE = InputBox("Hasta d贸nde quieres ir, del 1 al 100", "El cielo es el l铆mite")
        Loop
    
        'Ciclo para lanzar el dado y acumular su valoro
        Do While Suma < ALCANCE
            'Aleatorio entre 1 y 6
            dado = WorksheetFunction.RandBetween(1, 6)
            'Cantidad de veces que tiramos el dado
            i = i + 1
            'Acumulado del valor del dado
            Suma = Suma + dado
            'Mensaje con informaci贸n de cada lanzamiento
            m = MsgBox("En el lanzamiento No. " & i & " el valor acumulado de suma es: " & Suma & " y el valor de dado es: " & dado, , "Lanzamientos")
            'Pegar informaci贸n del lanzamiento en excel
            Cells(2 + i, 8) = i
            Cells(2 + i, 9) = dado
            Cells(2 + i, 10) = Suma
        Loop
    
    'Guardar cantidad de lanzamientos
    DW = i
    'Mensaje con informaci贸n de los lanzamientos
    m = "Esta vez el dado se lanz贸 " & DW & " veces para  llegar a sumar " & Suma & "."
    m2 = MsgBox(m, , "Resultado")
    'Pegar informaci贸n de los lanzamientos en la hoja de c谩lculo
    Cells(4 + i, 8) = m
End Function 

Ciclos Do While - Loop:

Una recomendacion que creo es muy importante y as铆 lo manifiesta lo comunidad en programacion, es que cuando se crean variables no se usen may煤sculas y menos que empiecen con n煤meros. Esto hace parte de las buenas practicas en programamaci贸n.

Con este c贸digo se podra hacer seguimiento a los valores que van tomando el contador, la suma acumulada y el lanzamiento. Para que el valor aleatorio del lanzamiento del dado cambie en cad iteracion del contador, esta instrucci贸n debe estar dentro del ciclo Do While - Loop

'Usando el ciclo Do While Loop. Usando la funcion dado anteriormente creada vamos a contar las veces que se lanza un dato para que sume 100

Public Function dw() As Integer

    Dim dado As Integer
    Dim i As Integer
    Dim suma As Integer
    Dim m
    Dim m2
    Dim m3
    Dim m4
    
    m = MsgBox("El valor de i es: " & i & " y el valor de suma es: " & suma)
    
    Do While suma < 100
    
        dado = WorksheetFunction.RandBetween(1, 6)
        i = i + 1
        suma = suma + dado
        
        m2 = MsgBox("El valor de dado es: " & dado)
        m3 = MsgBox("En el ciclo No. " & i & " el valor de suma es: " & suma & " y el valor de dado es: " & dado)
        
    Loop
    
    dw = i
    m4 = MsgBox("La cantidad de lanzamientos para llegar a 100 o m谩s fu茅 de: " & dw)

End Function

Pueden poner los mensajes m, m2 y m3 como comentario y dejar solamente el m4 para obtener la respuesta por ventana.

Buena clase.

Qu茅 bien se sinti贸 hacer el ejercicio solita

Public Function DW1() As Integer

Dim DADO As Integer
Dim i As Integer
Dim SUMA As Integer
Dim n As Integer

DADO = WorksheetFunction.RandBetween(1, 6)
n = InputBox("cifra deseada", "sumatoria")

Do While SUMA < n
    i = i + 1
    SUMA = SUMA + DADO
Loop

DW1 = i

End Function

Buena tarde para todos, este es mi reto:

Public Function DW() As String

Dim dado As Integer
Dim s As Integer
Dim z As Integer
Dim e

z = InputBox("驴Cu谩ntas veces quieres sumar cada lanzamiento de los dados?")

If z < 1 Then

 e = MsgBox("Debes ingresar al menos una vez. Ud. ingres贸 " & z & " veces")

Else
s = 0
i = 1
Do While i <= z
dado = WorksheetFunction.RandBetween(1, 6)
s = s + dado
i = i + 1
Loop

DW = MsgBox("Ud. pidi贸 sumar " & z & " veces. " & " La Suma de los dados es " & s)

End If

End Function

DO WHILE -LOOP
Divirtiendome un poco con el ejercicio de la clase antes que la docente muestre su soluci贸n.

Public Function DW() As Integer
    Dim t As Integer 'tiro aleatorio
    Dim st As Integer 'suma del valor de los tiros
    Dim a
    DW = 0
    st = 0
    Do While st <> 7
        
        t = Application.WorksheetFunction.RandBetween(1, 6)
        If st > 7 Then
        st = st - t
        Else:
            st = st + t
              
        End If
        
        DW = DW + 1 'CUENTA LA CANTIDAD DE TIROS HASTA OBTENER LA SUMA DE 7
        Sheets("Hoja2").Select
        Cells(DW + 1, 3) = DW 'Imprime el n煤mero de tiros
        Cells(DW + 1, 4) = t  'imprime el valor del tiro
        Cells(DW + 1, 5) = st 'imprime la suma si es menor o resta si es mayor a 7 del valor de los tiros aleatorio
    Loop
    
    a = MsgBox("El n煤mero de tiros para obtener: " & st & "es: " & DW, vbInformation)
End Function

A continuaci贸n el desarrollo de la actividad propuesta:

Public Function DW() As Integer
    Dim dado As Integer
    Dim i As Integer
    Dim s As Integer
    Dim suma As Integer
    suma = InputBox("Ingresa un resultado a sumar", "Suma Dados")
    Dim r As Integer
    
    dado = WorksheetFunction.RandBetween(1, 6)
    
    Do While s < suma
        i = i + 1
        s = s + dado
    Loop
    
    DW = i
    r = MsgBox("El dado se lanz贸 las siguientes veces: " & i, , "Suma dado")
    
End Function
Public Function DoWhile() As Integer
    Dim dado As Integer
    Dim contador As Integer
    Dim sumas As Integer
    
    Dim veces As Integer
    
    veces = InputBox("ingrese hasta que numero debemos lanzar el dado", "Repeticiones")
    
    dado = WorksheetFunction.RandBetween(1, 6)
    
    Do While sumas < veces
    contador = contador + 1
    sumas = sumas + dado
    Loop
    
    DoWhile = MsgBox(contador)
    
End Function

驴Para qu茅 nos sirven los ciclos Do While - Loop?

Public Function dw() As Integer

    Dim dado As Integer
    Dim i As Integer
    Dim s As Integer
    Dim usuario As Integer
    
    ''initializer
    i = 0
    s = 0
    ''user request
    usuario = InputBox("Hasta que numero quieres llegar", "Suma dados")
    
    Do While s < usuario
        'la funcion random debe se estar en el ciclo
        ''si no es como si no lanzara los dados varias veces
        dado = WorksheetFunction.RandBetween(1, 6)
        i = i + 1
        s = s + dado
    Loop
    
    dw = i

End Function

Public Function DW() As Integer
Dim dado As Integer
Dim numerodado As Integer
Dim i As Integer
Dim s As Integer

Z = InputBox("Numero a llegar")
s = 0
i = 0

Do While s < numerodado
    dado = WorksheetFunction.RandBetween(1, 6)
    i = i + 1
    s = s + dado
Loop

DW = i

End Function

Le puse que se impriman los resultados en las celdas para ver que estaba haciendo la funcion en cada ciclo. Entonces veo que el dado es lanzado una sola vez y ese resultado es sumado en cada iteracion hasta el maximo de suma que le ingresamos.

Function DW() As Integer

	Dim dado As Integer
Dim contador As Integer
Dim suma As Integer
Dim cantidad As Integer

    dado = WorksheetFunction.RandBetween(1, 6)

    cantidad = InputBox("Cula es la suma a la que deseas llegar?", "Suma deseada")

Do While suma < cantidad
    contador = contador + 1
    Cells(contador, 2) = contador
                    
    suma = suma + dado
    Cells(contador, 3) = suma
Loop

DW = contador


End Function

calidad?

Soluci贸n al reto

Public Function DW() As Integer
Dim dado As Integer
Dim i As Integer
Dim s As Integer
Dim limit As Integer

limit = InputBox("Ingresa el l铆mite de la suma ")


Do While s < limit
dado = WorksheetFunction.RandBetween(1, 6)
i = i + 1
s = s + dado
Loop

DW = i

End Function

F贸rmula de Clase

'Funci贸n que cuenta cuantos lanzamientos de un dado de la cantidad de lados que el usuario necesita para llegar al valor indicado por el usuario.

Public Function cuenta_dados() As Integer
    Dim dado As Integer
    Dim i As Integer
    Dim suma As Integer
    suma = 0
    i = 0
    Dim numero_meta As Integer
    numero_meta = InputBox("Ingresa el n煤mero al que quieres llegar")
    cantidad_lados = InputBox("Ingresa la cantidad de lados del dado")
    Do While suma < numero_meta
'Crea un n煤mero aleatorio de 6 lados
        dado = WorksheetFunction.RandBetween(1, cantidad_lados)
        i = i + 1
        suma = suma + dado
'Cierra el ciclo y vuelve a ejecutar lo que est茅 dentro del ciclo
    Loop
'Devuelve el valor de contador para saber cuantas veces se ha lanzado el dado
    cuenta_dados = i
End Function

'Funci贸n que cuenta cuantos lanzamientos de un dado de 6 lados necesito para llegar al valor indicado por el usuario.

Public Function cuenta_dados() As Integer
    Dim dado As Integer
    Dim i As Integer
    Dim suma As Integer
    suma = 0
    i = 0
    Dim numero_meta As Integer
    numero_meta = InputBox("Ingresa el n煤mero al que quieres llegar")
    Do While suma < numero_meta
        dado = WorksheetFunction.RandBetween(1, 6)
        i = i + 1
        suma = suma + dado
'Cierra el ciclo y vuelve a ejecutar lo que est茅 dentro del ciclo
    Loop
'Devuelve el valor de contador para saber cuantas veces seha lanzado el dado
    cuenta_dados = i
End Function

Aqu铆 est谩 mi ejercicio

a diferencia del ejemplo de la profesora yo decid铆 que cada vez que se ejecute el ciclo se tenga que lanzar el dado

Ac谩 va un peque帽o ajuste para que el usuario pueda indicar la fila y columna donde desea que empiece la sucesi贸n:
(

Public Function DW() As Integer
    Dim dado As Integer
    Dim c As Integer
    Dim sum As Integer
    Dim a As Integer
    a = InputBox("Limite de la suma que desea llegar", "Limite")
    dado = WorksheetFunction.RandBetween(1, 6)
    
    Do While sum < a
        c = c + 1
        sum = sum + dado
    
    Loop
    
    DW = c

End Function

Mi resultado 馃憞:

Do while lo que hace es que ejecutamos primero todo el bloque de instrucciones, y al final siempre comprobaremos la condici贸n para salir.

lo que se pidio que el usuario pusiera un numero aleatorio y luego lo muestre

Do while.
aprendido

Public Function DW() As Integer
Dim dado As Integer
Dim i As Integer
Dim suma As Integer
Dim numero_user As Integer

numero_user = InputBox("Ingrese n煤mero de la suma", "Dado")

dado = WorksheetFunction.RandBetween(1, 6)

Do While s < numero_user
    i = i + 1
    s = s + dado
Loop
DW = i

End Function