Boucle dans Boucle problème

Bonjour à tous,

je ne suis pas particulièrement doué en VBA mais je commence à me débrouiller.

J'ai cependant quelques problèmes pour faire une boucle dans une autre boucle..

Un coup, excel me dit "boucle sans do"!

et si je retire un "loop" (ce qui n'est pas normal) il me dit " do sans boucle"!

je suis perdu..

voic-ci mon code, si quelqu'un peut m'aider..

Sub formule()

Dim tache As Integer

Dim cc As String

Dim MOP As String

Dim MOPa As Variant

Do

tache = ActiveCell.Offset(0, -2)

cc = ActiveCell.Offset(0, -6)

MOPa = ActiveCell.Address

Sheets("ITK").Select

Range("a1").Activate

Do Until tache = ActiveCell.Value

flag1:

ActiveCell.Offset(2, 0).Activate

If "0" = ActiveCell.Value Then

MsgBox ("Tâche non référencée"): Exit Sub

End If

ActiveCell.Offset(1, 0).Activate

If cc = ActiveCell.Value Then

MOP = ActiveCell.Offset(0, 1).Value

Sheets("masterwipTESTMACRO").Select

Range(MOPa).Select

ActiveCell.Value = MOP

ActiveCell.Offset(1, 0).Activate

Else

GoTo flag1

Loop

' il manque la deuxième verif au cas ou le cc ne correspond pas au couple tache/cc

End If

Loop While ActiveCell.Offset(0, -17).Value <> "0"

End Sub

Bonjour

Sans le fichier je n'ai pas testé, mais pas d'erreur de syntaxe

Un conseil : Indentes le code cela t'aidera (souvent) à trouver les erreurs de programmation

Sub formule()
Dim tache As Integer
Dim cc As String
Dim MOP As String
Dim MOPa As Variant

  Do

    tache = ActiveCell.Offset(0, -2)
    cc = ActiveCell.Offset(0, -6)
    MOPa = ActiveCell.Address
    Sheets("ITK").Select
    Range("a1").Activate

    Do Until tache = ActiveCell.Value
flag1:
      ActiveCell.Offset(2, 0).Activate
      If "0" = ActiveCell.Value Then
        MsgBox ("Tâche non référencée"): Exit Sub
      End If
      ActiveCell.Offset(1, 0).Activate
      If cc = ActiveCell.Value Then
        MOP = ActiveCell.Offset(0, 1).Value
        Sheets("masterwipTESTMACRO").Select
        Range(MOPa).Select
        ActiveCell.Value = MOP
        ActiveCell.Offset(1, 0).Activate
      Else
        GoTo flag1
      ' Ici il te manque un End If
      End If
    Loop
    ' il manque la deuxième verif au cas ou le cc ne correspond pas au couple tache/cc
    [surligner=#FFFF80]' Ce End If n'est pas à sa place
[surligner=#FFFF80]'  End If

  Loop While ActiveCell.Offset(0, -17).Value <> "0"
End Sub

C'est top !

merci j'avais pas percuté l'enplacement de mon end if!

bonne journée!

Rechercher des sujets similaires à "boucle probleme"