Se pueden trabajar bucles for de más de dos ciclos en Visual Basic para Aplicaciones

La presente porque quisiera pedirles el favor de aclararme si es posible usar bucles For de más de dos ciclos en VBA. Lo pregunto porque he intentado en varias ocasiones construir bucles grandes, pero al llevarlos a dos dimensiones son más funcionales y mis cálculos resultan correctos, mientras que con bucles más complejos detecto errores y fallas.

Muchas gracias por sus respuestas y por la ilustración que me puedan dar al respecto.

1 Respuesta

Respuesta
1

03/11/16

Buenos días, Luz

He desarrollado rutinas con más de dos ciclos, como la que te comparto a continuación, funcionando correctamente.

La cuestión es identificar claramente los valores que van tomando las variables en cada bucle.

En la siguiente rutina aplicada a una planilla de MS Excel verás cómo interactúan:

Sub acomoda()
'---- Variables modificables ----
    IniColPaq = "I5" 'Columna inicio detalle de paquetes
    ColCant = "D" 'columna donde están los numeros de parte
'---- fin Variables
'
'---- inicio de rutina:
'   
UltFila = Range(ColCant & Rows.Count).End(xlUp).Row
CantCols = Range(IniColPaq).CurrentRegion.Columns.Count
For LaFila = 1 To UltFila
    For LaColumna = 0 To CantCols - 1
    CelAct = Range(IniColPaq).Offset(LaFila, LaColumna).Address
        If IsEmpty(Range(CelAct)) Then
            For LaCeldaN = LaColumna + 1 To CantCols - 1
                If Not IsEmpty(Range(IniColPaq).Offset(LaFila, LaCeldaN)) Then
                    Range(CelAct).Value = Range(IniColPaq).Offset(LaFila, LaCeldaN).Value
                    Range(IniColPaq).Offset(LaFila, LaCeldaN).ClearContents
                    Exit For
                End If
            Next
        End If
    Next
Next
End Sub

Este procedimiento tiene el típico doble bucle de revisar una matriz fila por fila y columna por columna y cumplida una condición revisar celda por celda de una misma fila.

Espero que sirva de ayuda.

Saludos

Fernando

(Buenos Aires, Argentina)

.

Mil gracias Fernando por el ejemplo tan ilustrativo y por tan pronta y oportuna respuesta, me fue de mucha utilidad. Éxitos y bendiciones por su excelente labor. Felicitaciones y muchos saludos.

Atentamente

Luz González

.

Un placer haber sido de ayuda

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas