Problème Incompatibilité de type
D
Bonjour,
J'ai un soucis dans mon programme, dès que je le lance, il se met en incompatibilité de type.
et quand je me met en débogage pas à pas l'erreur se trouve sur la ligne IF avant les numéros de palettes
Sub verif()
'variables
Dim i As Integer
i = 1
Dim e As Integer
e = 1
Dim c As Integer
c = 0
Dim cp As Integer
cp = WorksheetFunction.CountA(Range("D5:I5"))
'Code produit boites
Range("D5").Select
For i = 1 To 6
If Selection <> "" Then
Selection.Offset(1, 0).Select
If Selection = "" Then
MsgBox "Veuillez compléter l'heure de début de production"
c = c + 1
End If
Selection.Offset(1, 0).Select
If Selection = "" Then
MsgBox " Veuillez compléter l'heure de fin de production"
c = c + 1
End If
Selection.Offset(-2, 1).Select
End If
Next
'Boucle vérif
Range("B11").Select
i = 1
For i = 1 To 5
For e = 1 To 6
If Selection <> "" Then
Selection.Offset(1, 0).Select
If Selection = "" Then 'Erreur sur cette ligne
MsgBox "Veuillez entrer les n° de palettes et la date de fabrication"
c = c + 1
End If
Selection.Offset(2, 0).Select
If Selection = "" Then
MsgBox "Veuillez remplir le nombres de boites abîmés"
c = c + 1
End If
Selection.Offset(0, 1).Select
If Selection = "" Then
MsgBox "Veuillez remplir le nombres de boites sales"
c = c + 1
End If
Selection.Offset(-3, 1).Select
End If
Next
Next
If WorksheetFunction.CountA(Range("B37:B42")) < cp Then
MsgBox "Veuillez compléter le nombres de palettes utilisée"
c = c + 1
End If
If WorksheetFunction.CountA(Range("D37:D42")) < cp Then
MsgBox "Veuillez compléter le total des boites"
c = c + 1
End If
If WorksheetFunction.CountA(Range("F37:F42")) < cp Then
MsgBox "Veuillez compléter le nombres de lignes utilisées"
c = c + 1
End If
If WorksheetFunction.CountA(Range("H37:H42")) < cp Then
MsgBox "Veuillez compléter le total boites"
c = c + 1
End If
If WorksheetFunction.CountA(Range("I37:I42")) < cp Then
MsgBox "Veuillez compléter le total générale"
c = c + 1
End If
If WorksheetFunction.CountA(Range("K37:K42")) < cp Then
MsgBox "Veuillez compléter le total boites manquante de la journée"
c = c + 1
End If
If WorksheetFunction.CountA(Range("M37:M42")) < cp Then
MsgBox "Veuillez compléter le total boites abîmées de la journée"
c = c + 1
End If
If c = 0 Then
ThisWorkbook.SaveAs ("\\GBNCDATA1\tech\05-Conditionner Bière & BG\2 - Suivi prod\1.Formulaire_A_Valider\Auto-contrôle dépaléttiseur boites du " & Format(Now(), "DD-MMM-YYYY hh-mm"))
ThisWorkbook.Close
End If
End SubJe vous transmet mon document, son but est de rendre obligatoire la saisi de cellules dépendante d'autres cellules.
A
Bonjour,
Le code doit se trouver dans un module standard et non dans celui de la feuille.
Votre code réécrit:
Sub Verif()
'variables
Dim i As Integer, e As Integer, cp As Integer
Application.ScreenUpdating = False
cp = WorksheetFunction.CountA(Range("D5:I5"))
'Code produit boites
For i = 4 To 9 'de la colonne D à I
If Cells(5, i) <> "" Then
If Cells(6, i) = "" Then
MsgBox "Veuillez compléter l'heure de début de production dans la cellule " & Replace(Cells(6, i).Address, "$", "")
Exit Sub
End If
If Cells(7, i) = "" Then
MsgBox " Veuillez compléter l'heure de fin de production dans la cellule " & Replace(Cells(7, i).Address, "$", "")
Exit Sub
End If
End If
Next
'Boucle vérif
For i = 11 To 31 Step 5 'de la ligne 11 à 31 avec un saut toutes les 5 lignes
For e = 2 To 12 Step 2 'de la colonne B à L avec un saut toutes les 2 colonnes
If Cells(i, e) <> "" Then
If Cells(i + 1, e) = "" Then
MsgBox "Veuillez entrer les n° de palettes et la date de fabrication dans la cellule " & Replace(Cells(i + 1, e).Address, "$", "")
Exit Sub
End If
If Cells(i + 3, e) = "" Then
MsgBox "Veuillez remplir le nombres de boites abîmés dans la cellule " & Replace(Cells(i + 3, e).Address, "$", "")
Exit Sub
End If
If Cells(i + 3, e + 1) = "" Then
MsgBox "Veuillez remplir le nombres de boites sales dans la cellule " & Replace(Cells(i + 3, e + 1).Address, "$", "")
Exit Sub
End If
End If
Next
Next
If WorksheetFunction.CountA(Range("B37:B42")) < cp Then
MsgBox "Veuillez compléter le nombres de palettes utilisée"
Exit Sub
End If
If WorksheetFunction.CountA(Range("D37:D42")) < cp Then
MsgBox "Veuillez compléter le total des boites"
Exit Sub
End If
If WorksheetFunction.CountA(Range("F37:F42")) < cp Then
MsgBox "Veuillez compléter le nombres de lignes utilisées"
Exit Sub
End If
If WorksheetFunction.CountA(Range("H37:H42")) < cp Then
MsgBox "Veuillez compléter le total boites"
Exit Sub
End If
If WorksheetFunction.CountA(Range("I37:I42")) < cp Then
MsgBox "Veuillez compléter le total générale"
Exit Sub
End If
If WorksheetFunction.CountA(Range("K37:K42")) < cp Then
MsgBox "Veuillez compléter le total boites manquante de la journée"
Exit Sub
End If
If WorksheetFunction.CountA(Range("M37:M42")) < cp Then
MsgBox "Veuillez compléter le total boites abîmées de la journée"
Exit Sub
End If
ThisWorkbook.SaveAs ("\\GBNCDATA1\tech\05-Conditionner Bière & BG\2 - Suivi prod\1.Formulaire_A_Valider\Auto-contrôle dépaléttiseur boites du " & Format(Now(), "DD-MMM-YYYY hh-mm"))
ThisWorkbook.Close
End SubCdlt
D
Merci Arturo83 pour le temps que tu as consacré à mon problème, je viens d'essayer ton code et il fonctionne parfaitement.