[VBA Excel] Pb avec IsEmpty

Résolu
saian-sugus Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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   Statut Membre Dernière intervention  
 
Merci lermite, parfait :)
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191 > saian-sugus Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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