Revenir au début d'une boucle For

Bonjour cher forum,

Une fois de plus je me permets de vous solliciter, vous qui m'aidez tant :)

Je souhaite effectuer les actions suivantes :

1-On demande à l'utilisateur d'entrer le nom d'un dossier

2-Une fois la ligne où le nom du dossier est écrit, on lit les dates successives dans un tableau, grâce à une boucle For. Mais attention, c'est là que ça se corse,! Certaines cellules sont vides, et je souhaite passer directement à la colonne suivante si la case est vide.
Néanmoins, seule l'indication "Next" me permet de passer à la colonne suivante, et j'obtiens alors le message d'erreur suivant :"Next sans boucle For"...

Voici mon code :

Sub DecalageColonnes() 'Pour le bouton Valider

    Dim i%, j%
    Dim Arr, EchR
    Dim Doss$

    Arr = [TabDonnees].Value

    Application.ScreenUpdating = False

   Sheets("depart").Activate
    Doss = InputBox("Indiquez le nom du dossier choisi (dire ici Dossier3)")

    For i = 1 To UBound(Arr) 'On parcourt les lignes du tableau

       If Arr(i, 1) = Doss Then 'On repère le nom du dossier car c'est dans cette ligne uniquement que l'on va travailler

            For j = 2 To UBound(Arr, 2)  'les échéances démarrent à la colonne 2
                EchR = Arr(i, j)  'on reste à la ligne i, qui correspond au dossier ; colonne j
                If EchR = "00:00:00" Then 'Si la case est vide, on décale d'une colonne et on revient au debut de la boucle, et ainsi de suite
                    Next j <--L'ERREUR EST ICI
                End If
                Cells.Interior.ColorIndex = 3 'Sinon on colorie en rouge par exemple
            Next j
        End If
    Next i

End Sub

J'ai essayé beaucoup de possibilités : goTo Suite avec une étiquette de suite du code mais ça ne fonctionne pas car dans mon code perso, il y a beaucoup de boucles imbriquées. Par ailleurs, GoTo n'est pas très rigoureux ..

J'ai essayé aussi avec j=j+1 mais ça ne fonctionne pas non plus ..

Auriez-vous une idée s'il vous plaît ?

J'ai indiqué dans le fichier joint un onglet "depart" pour dire d'où on part, et "arrivee" pour dire ce qu'on voudrait à la fin. (J'ai indiqué à la fin des cases coloriées en rouge. Dans mon code perso, je ne souhaite pas faire ça, mais c'est juste pour l'exemple).

merci d'avance !

Bonjour,

Si j'ai bien compris la demande ...

Un essai ...

Option Explicit

Sub DecalageColonnes() 'Pour le bouton Valider
Dim i%, j%
Dim Arr, EchR
Dim Doss$

    Application.ScreenUpdating = False
    Arr = [TabDonnees].Value

   Sheets("depart").Activate
    Doss = InputBox("Indiquez le nom du dossier choisi (dire ici Dossier3)")

    For i = 1 To UBound(Arr) 'On parcourt les lignes du tableau
       If Arr(i, 1) = Doss Then 'On repère le nom du dossier car c'est dans cette ligne uniquement que l'on va travailler
            For j = 2 To UBound(Arr, 2)  'les échéances démarrent à la colonne 2
                If [TabDonnees].Cells(i, j) = "" Then
                    [TabDonnees].Cells(i, j).Interior.ColorIndex = 3 'Sinon on colorie en rouge par exemple
                Else
                    EchR = Arr(i, j) 'on reste à la ligne i, qui correspond au dossier ; colonne j
                End If
            Next j
        End If
    Next i
End Sub

ric

Bonjour Ric!

Merci beaucoup pour votre réponse ! C'est quasiment ça (j'ai juste inversé le contenu des 2 boucles, mais c'est un détail).

Mille mercis ! vous me dépannez drôlement !

Excellente journée !!

Rechercher des sujets similaires à "revenir debut boucle"