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!