Exécution incohérente d'une condition IF
Bonjour le forum,
Lors d'exécution d'un Userform, contenant 40 textbox disposées en ligne par groupe de 4, je cherche à vérifier que si ma 1ère textbox est remplie, et que la 3ème et la 4ème sont vides un message s'affiche.
Sinon, l'exécution du reste du code s'exécute.
Le problème est que si les textbox du groupe suivant étant vides, le message s'affiche malgré tout, alors qu'il ne devrait pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Set Wb1 = Workbooks("Book1.xlsb")
Set Ws1 = Wb1.Worksheets("Sheet 1")
Set Ws2 = Wb1.Worksheets("Sheet 2")
Set Ws3 = Wb1.Worksheets("Sheet 3")
If Me.Controls("TxtBox1").Value = "" Then
MsgBox "Veuillez la première case", vbExclamation + vbOKOnly
Exit Sub
End If
'------------------------------------------------------------------------
'Loop on each textbox written
'------------------------------------------------------------------------
For j = 1 To 10
If Me.Controls("TxtBox1" & j).Value <> "" And Me.Controls("TxtBox3" & j).Value = "" Or Me.Controls("TxtBox4" & j).Value = "" Then
MsgBox "Veuillez renseigner les textbox " & j & "", vbExclamation + vbOKOnly
Exit Sub
Else
'Write the values into the cells
If Me.Controls("TxtBox_Action" & j).Value <> "" And Me.Controls("TxtBox_Pilote" & j).Value <> "" And Me.Controls("TxtBox_Deadline" & j).Value <> "" Then
Ws2.Cells(j + 1, 1) = Label_1.Caption
Ws2.Cells(j + 1, 2) = CDate(Format(CStr(Date), "dd/mm/yyyy"))
Ws2.Cells(j + 1, 3) = WsHAP.Cells(1, 1)
Ws2.Cells(j + 1, 4) = Me.Controls("Label_2" & j).Caption
Ws2.Cells(j + 1, 5) = Label_3.Caption
Ws2.Cells(j + 1, 6) = Label_4.Caption
Ws2.Cells(j + 1, 7) = Me.Controls("TxtBox1" & j).Value
Ws2.Cells(j + 1, 8) = Me.Controls("TxtBox2" & j).Value
Ws2.Cells(j + 1, 9) = Me.Controls("TxtBox3" & j).Value
Ws2.Cells(j + 1, 10) = CDate(Format(CStr(Me.Controls("TxtBox4" & j).Value), "dd/mm/yyyy"))
'Write the values of closed action
If Ws3.Cells(j, 3) <> "" Then
Ws2.Cells(j + 1, 13) = CDate(Format(CStr(Date), "dd/mm/yyyy"))
Ws2.Cells(j + 1, 14) = Ws3.Cells(1, 1)
Ws2.Cells(j + 1, 15) = Ws3.Cells(j, 3)
End If
' End If
End If
Next j |
J'imagine que le problème se situe au niveau de la ligne 15.