Visual Basic - Mostrar varios valores MSGBOX

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Mostrar varios valores MSGBOX

Publicado por Hector (1 intervención) el 27/01/2021 20:08:55
Buenas tardes estoy escribiendo este procedimiento en VBA
El problema es que quiero que muestre los diferentes valores que toma la variable i y los muestre en MsgBox ya que solo me aparece uno

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
Dim i As Long, num As Long, s As Long
Dim x As String
num = CLng(InputBox("Indique un número ", "Indique..."))
Do While num <= 0
    num = CLng(InputBox("Indique un número ", "Indique..."))
Loop
If num > 1 Then
    s = 0
    i = 0
 
    Do While i < Fix(num / 2)
        i = i + 1
        If (num Mod i = 0) Then
            s = s + i
            MsgBox "Sus divisores son: " & i acá es donde solo me muestra un valor cada ventana, me gustaria que me mostrara todos los valores en la misma ventana. Gracias por su ayuda
        End If
    Loop
    x = " es un numero imperfecto a la derecha "
    If s = num Then
        x = " es un numero perfecto "
        c = c + 1
    Else
        If s < num Then
            x = " es un numero imperfecto a la izquierda "
        End If
    End If
    MsgBox "En conclusión el numero " & num & x
Else
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: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Mostrar varios valores MSGBOX

Publicado por raul (160 intervenciones) el 29/01/2021 17:41:32
Analisemos por parte tu idea y lo que has escrito

Lo que tu quieres es que el resultado de un procedimiento se muestre en un mensage. Ahora la intrucción que has dado es muy diferente

1
2
3
4
5
6
7
Do While i < Fix(num / 2)
    i = i + 1
    If (num Mod i = 0) Then
        s = s + i
        MsgBox "Sus divisores son: " & i O sea que cada vez que que la condicional sea cierta emita un mensage ****Error*****
    End If
Loop

Realmente se lo que debiste escribir era

1
2
3
4
5
6
7
dim VAR_INTERMEDIA as string
Do While i < Fix(num / 2)
    i = i + 1
    If (num Mod i = 0) Then
           VAR_INTERMEDIA = VAR_INTERMEDIA + I & vbCrLf
    end if
Loop
MsgBox "Sus divisores son: " & VAR_INTERMEDIA 'Ahora se muestra el mensage con una columna de los divisores"
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