Comment écrire des Checks de cohérence sous VBA
Résolu
Nonnoo
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
Nonnoo Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Nonnoo Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Comment écrire des Checks de cohérence sous VBA
- Ecrire en gras sur whatsapp - Guide
- Comment écrire # sur pc - Guide
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
1 réponse
Bonjour
A tester
Cdlt
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
Nonnoo
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup pour votre aide !!!