Comment écrire des Checks de cohérence sous VBA

Résolu/Fermé
Nonnoo Messages postés 25 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 9 juin 2016 - 20 mai 2016 à 10:45
Nonnoo Messages postés 25 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 9 juin 2016 - 25 mai 2016 à 14:02
Bonjour à tous,

Je cherche à écrire sous VBA des checks de cohérence avant qu'on enregistre le fichier. Je voudrai que si dans la colonne C, une cellule se nomme PERM :
- si la cellule de colonne I est égale à 0 alors msg box...
- si la cellule de la colonne X est vide alors msg box
- si la somme des cellules Y à AJ est égale à 0 alors msg box

De la même manière si la cellule se nomme TT.

Cependant je n'arrive pas à écrire sous VBA "la cellule de la colonne", j'ai écris "Column(I)" mais cela m'affiche un message d'erreur... De la même manière je n'arrive pas à écrire une somme sous VBA... Avez vous une idée ?

Ci-dessous le code,

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

For Each Cell In this worbooks

If Cell.Value = "PERM" Then
If Column(I) = 0 Then MsgBox ("Honoraire à 0 pour le candidat")
If Colomn(X) = "" Then MsgBox ("Mentionner Facturé/Potentiel pour le candidat")
If Sum("Y:AJ") = 0 Then MsgBox ("Pas de donnée sur le détail par moi spour le candidat")
Next Cell
End If

If Cell.Value = "TT" Then
If Column(P) = 0 Then MsgBox ("Coefficient à 0 pour le candidat")
If Colomn(Q) = 0 Then MsgBox ("Taux de MB à 0 pour le candidat")
If Colomn(X) = "" Then MsgBox ("Mentionner Facturé/Potentiel pour le candidat")
If Sum("Y:AJ") = 0 Then MsgBox ("Pas de donnée sur le détail par moi spour le candidat")
Next Cell
End If

End Sub



Merci par avance

Nono
A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
20 mai 2016 à 15:54
Bonjour
A tester
Option Compare Text

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    For i = 2 To [C100000].End(xlUp).Row
        If Cells(i, 3) = "PERM" Then
            If Cells(i, 9) = 0 Then MsgBox ("Honoraire à 0 pour le candidat")
            If Cells(i, 24) = "" Then MsgBox ("Mentionner Facturé/Potentiel pour le candidat")
            If Application.WorksheetFunction.Sum(Range(Cells(i, 25), Cells(i, 36))) = 0 Then MsgBox ("Pas de donnée sur le détail par mois pour le candidat")
        ElseIf Cells(i, 3) = "TT" Then
            If Cells(i, 16) = 0 Then MsgBox ("Coefficient à 0 pour le candidat")
            If Cells(i, 17) = "" Then MsgBox ("Mentionner Facturé/Potentiel pour le candidat")
            If Application.WorksheetFunction.Sum(Range(Cells(i, 25), Cells(i, 36))) = 0 Then MsgBox ("Pas de donnée sur le détail par mois pour le candidat")
        End If
    Next i
 End Sub

Cdlt
0
Nonnoo Messages postés 25 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 9 juin 2016
25 mai 2016 à 14:02
Merci beaucoup pour votre aide !!!
0