[VBA Excel] Pb avec IsEmpty

Résolu/Fermé
saian-sugus Messages postés 34 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 20 avril 2010 - 1 sept. 2008 à 09:11
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 1 sept. 2008 à 14:44
Bonjour,

j'aimerai tester si un groupe de cellules ne sont pas vides.

Mon code:
Range("B9:B11,B17:B19,B25:B26,B32:B33,B38:B39,B47:B48,B53:B56,B63:B68,B78:B81,B88:B91").Select
If Not IsEmpty(ActiveCell.Value) Then
Else
MsgBox ("Veuillez remplir les chiffres définitifs de l'année en cours")
Exit Sub
End If


Mais ce test ne marche que sur B9 et non sur toute la sélection comme souhaité, je ne trouve la solution nul part, pourriez-vous m'aider?

Merci d'avance :)
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 sept. 2008 à 09:31
re-re

test = Application.CountA(Range("B9:B11,B17:B19,B25:B26,B32:B33,B38:B39,B47:B48,B53:B56,B63:B68,B78:B81,B88:B91"))

te donne le nombre de cellules non vides dans ta zone, donc...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 sept. 2008 à 09:47
Bonjour Michel, comme quoi ont apprend tout les jours, connaissais pas CountA
A+
Edit: Je trouve d'ailleur rien sur CountA dans l'aide ?? pas étonnant que je connais pas.
La seule solution trouvée dans l'aide renvoi à For Each...
-1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
1 sept. 2008 à 13:27
Salut lermite

CountA est le terme anglais pour nbval

en écrivant Application.countA(...) j'utilise la syntaxe simplifiée de application.worksheetfunction.countA(.....)
vola,vloila

bon après midi
-1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 sept. 2008 à 09:44
Bonjour,
la macro qui fait ce que tu veux
Sub TestVide()
Dim TB
Dim i As Integer
Dim cel As Range
    TB = Array("B9:B11", "B17:B19", "B25:B26", "B32:B33", "B38:B39", _
    "B47:B48", "B53:B56", "B63:B68", "B78:B81", "B88:B91")
    For i = 0 To UBound(TB)
        For Each cel In Range(TB(i))
            If cel = "" Then
                MsgBox ("Veuillez remplir les chiffres définitifs de l 'année en cours")
                Exit Sub
            End If
        Next cel
    Next i
End Sub

A+
0
saian-sugus Messages postés 34 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 20 avril 2010
1 sept. 2008 à 12:55
Merci lermite, parfait :)
-1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190 > saian-sugus Messages postés 34 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 20 avril 2010
1 sept. 2008 à 14:29
Mes avis que tu n'a pas compris le code donner par Michel, il est beaucoup plus cour.

Cogite un peu dessus et tu verras...
Si vraiment tu ne trouve pas Michel ou moi te donnerons plus d'explications.
A+
-1
saian-sugus Messages postés 34 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 20 avril 2010
1 sept. 2008 à 09:13
J'ai oublié de souligner que j'aimerais que toutes les cellules ne doivent pas être vides et non pas une seule..
-1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 sept. 2008 à 14:44
Aller... je me dévoue...
Sub SiVide()
If Application.CountA(Range _
("B9:B11,B17:B19,B25:B26,B32:B33,B38:B39, B47: B48 , B53: B56 , B63: B68 , B78: B81 , B88: B91 ")) < 32 Then
               MsgBox ("Veuillez remplir les chiffres définitifs de l 'année en cours")
                Exit Sub
end if

End Sub

C'est pas plus simple ??
A+
-1