Message si les cases ne sont pas remplies

Bonjour,

Je ne peux pas vous envoyer le fichier car les données sont confidentielles, mais je vais essayer d'être la plus précise possible.

Dans mon fichier (dont vous avez l'extrait ci-dessous) j'aimerai que les cases dans la colonne "D" soient toutes à Oui ou Non. Si elles ne le sont pas alors j'aimerai qu'un message s'affiche.

Il est possible que des lignes soient rajoutées. Il faudrait que le code fonctionne également pour ces nouvelles lignes.

Voici ce que j'ai fait :

Sub Code()
   ' ***************************************************************
    ' Contrôle de la saisie de toutes les 2. Caractéristiques du projet
    ' ***************************************************************
    Sheets("Choix des risques").Select

Col = 4
Lig = 12
Correct = True
While Cells(Lig, Col) <> ""
A_tester = Cells(Lig, Col)
 test = (A_tester = "OUI") Or (A_tester = "NON")

If test = False Then
Correct = False
End If
Lig = Lig + 1
Wend
    If Not Correct Then
        MsgBox ("Impossible de mettre l'onglet EVRP. Toutes les cases Présence doivent être à 'Oui' ou 'Non'.")
    Else

End Sub

Celui-ci ne fonctionne pas car il ne reconnaît pas le "test=".

Merci de votre aide !

extrait

Bonjour

Essayez comme ceci

Sub Code()
   ' ***************************************************************
    ' Contrôle de la saisie de toutes les 2. Caractéristiques du projet
    ' ***************************************************************
Dim Nbligne As Integer, NbLigOuiNon As Integer

With Sheets("Choix des risques")
    Nbligne = .UsedRange.Rows.Count 'ou ceci --> Application.WorksheetFunction.CountA(.Range("B:B"))
    NbLigOuiNon = Application.WorksheetFunction.CountA(.Range("Q:Q"))
    If NbLigOuiNon <> Nbligne Then
        MsgBox ("Impossible de mettre l'onglet EVRP. Toutes les cases Présence doivent être à 'Oui' ou 'Non'.")
    End If
End With
End sub

Deux solutions pour la variable nbligne car je ne ne sais pas ce que vous avez en dessous de la dernière ligne dans les colonnes B, C et D. Donc à vérifier

Cordialement

Bonjour à tous,

autre version qui contrôle si les saisies sont bien conformes :

Sub code()
    Dim nblig As Long, pl As Range, nbOk As Long
    nblig = Cells(Rows.Count, 2).End(xlUp).Row - 1
    Set pl = Range("D2").Resize(nblig)
    nbOk = Application.CountIf(pl, "oui") + Application.CountIf(pl, "non")
    If nbOk <> nblig Then
        MsgBox ("Impossible de mettre l'onglet EVRP. Toutes les cases Présence doivent être à 'Oui' ou 'Non'.")
    End If
End Sub

rien d'autre sous le tableau...
Tu pouvais mettre un fichier d'une feuille anonymisée, ça nous évite de devoir refaire (parfois mal)
eric

Bonjour,

ça ne fonctionne pas, il m'affiche la boîte de dialogue alors que toutes les cases sont remplies.

Pour répondre à votre interrogation, en-dessous se trouve similairement la même chose des risques avec leurs définitions et le choix oui/non et ceci jusqu'à la ligne 12 et plus probablement par la suite.

on s'est croisés, voir au-dessus...

Bonjour,

C'est parfait !

Merci beaucoup :)

re

Bon je reviens trop tard. Pour le cas où vous reviendriez lire....

ça ne fonctionne pas, il m'affiche la boîte de dialogue alors que toutes les cases sont remplies.

Oui si vous avez autre chose qu'un Oui ou un Non dans la colonne Q.
Pour cela le code d'Eriic compte des Oui et des Non et c'est mieux comme cela.

Cordialement

Rechercher des sujets similaires à "message cases pas remplies"