Macro para mostrar valores de una variable en Msgbox

Experto recurro a ti para solicitar de tu valiosa ayuda en el siguiente problema, resulta que yo tengo un código el cual me ayuda para de una serie ordenada avisarme cuáles folios consecutivos son los que me faltan en esa serie, así que cuando detecta que falta un consecutivo me manda un mensaje mediante un Msgbox y esto lo hace en cada evento, pero lo que yo quisiera es que en vez de irme mostrando uno por uno hiciera todo el proceso y al final en el Msgbox me muestre todos los consecutivos faltantes en la serie. Te anexo el código para que lo veas:
Sub folios()
    Dim folio As Integer
    'Me Posiciono en la celda con el 1er. Valor de la lista
    Range("A2").Select
    'Se toma  el valor de la celda como valor inicial para el contador
    folio = ActiveCell.Value
    'Establezco el límite hasta donde va a actuar la macro
    Do While ActiveCell <> ""
    'Reinicio el valor de la variable iniciando así el contador de la macro para evaluar la sig. Fila
folio = folio + 1
        ActiveCell.Offset(1, 0).Select
    'Si el valor de la celda actual es dif. Al contador se mandara el mensaje al usuario
        If ActiveCell.Value <> folio Then
        'Mientras el valor de la celd sea mayor al de la variable se mandará el aviso al usuario
            Do While ActiveCell.Value > folio
                MsgBox ("Falta el folio: " & folio)
                    ' Una vez avisado, el contador se incrementa en 1 para hacer la sig. Iteración
                folio = folio + 1 '
            Loop
         End If
    Loop
'Cuando encuentra la 1er. Fila vacia termina el bucle
End Sub
De antemano agradezco tu atención y quedo en espera de tu amable respuesta

1 Respuesta

Respuesta
1
Modificado:
Mira: el te va a poner en la columna b a partir de la b2, la lista de los folos faltantes, al final te manda el mensaje de los folios que faltan..
Puedes modificar en que columna te ponga la lista de folios Faltanted nada más cambia los valores de en
Range("b65536"). End(xlUp). Offset(1,0). select = Folio
en ves de la b65536 puedes poner cualquier otra columna por ejemplo d65536 o h65536, y te los pondra en esa columna.
Depues cambia los valores a dato, dato1, dato2, etc en ves de range("b2"), pon Range("d2") o Range("h2") segun la columna en la que aparecen los datos de Folios Faltantes..
Sub folios()
    Dim folio As Integer
    'Me Posiciono en la celda con el 1er. valor de la lista
    Range("A2").Select
    'Se toma  el valor de la celda como valor inicial para el contador
    folio = ActiveCell.Value
    'Establezco el límite hasta donde va a actuar la macro
    Do While ActiveCell <> ""
    'Reinicio el valor de la variable iniciando así el contador de la macro para evaluar la sig. fila
folio = folio + 1
    ActiveCell.Offset(1, 0).Select
    'Si el valor de la celda actual es dif. al contador se mandara el mensaje al usuario
    If ActiveCell.Value <> folio Then
        'Mientras el valor de la celd sea mayor al de la variable se mandará el aviso al usuario
            Do While ActiveCell.Value > folio
             Range("b65536").End(xlUp).Offset(1, 0).Value = folio
            'MsgBox ("Falta el folio: " & folio)
                    ' Una vez avisado, el contador se incrementa en 1 para hacer la sig. iteración
            folio = folio + 1 '
            Loop
    End If
    Loop
            dato = Range("b2").Value
            Dato1 = Range("b3").Value
            Dato2 = Range("b4").Value
            Dato3 = Range("b5").Value
            Dato4 = Range("b6").Value
            Dato5 = Range("b7").Value
            Dato6 = Range("b8").Value
            MsgBox ("Faltan los Folios: " & dato & "," & Dato1 & "," & Dato2 & "," & Dato3 & "," & Dato4 & "," & Dato5 & "," & Dato6)
'Cuando encuentra la 1er. fila vacia termina el bucle
End Sub
De cualquier manera aparecerá el archivo en lalista de descargas de misitio para si quieres descargarlo..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas