Compter le nombre de cellules vides dans une plage discontinue

jmh1

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à récupérer en VBA le nombre de cellules vides contenu dans une plage discontinue.

Le code plante et j'ai un message "Impossible de lire la propriété de la fonction.

Ci-dessous, le code que j'utilise :

Set maPlage = Worksheets("Feuil1").Range("B9:B13,D9:D13,F9:F13")

Response = Application.WorksheetFunction.CountBlank(maPlage)

If Response > 0 Then

MsgBox "Il y a des cellules vides"

Else

MsgBox "Toutes les cellules sont remplies"

End If


Je pense que l'erreur vient de la plage, mais comment faire pour résoudre mon problème ?

Merci à tous ceux qui voudront bien m'aider.
 

pierrejean

XLDnaute Barbatruc
Re : Compter le nombre de cellules vides dans une plage discontinue

Bonjour jmh1

Un essai

Code:
Sub test()
Set maPlage = Worksheets("Feuil1").Range("B9:B13,D913,F9:F13")
For Each cel In maPlage
 If cel.Value = "" Then
  MsgBox "Il y a des cellules vides"
  Exit Sub
 End If
Next
MsgBox "Toutes les cellules sont remplies"
End Sub
 

jmh1

XLDnaute Occasionnel
Re : Compter le nombre de cellules vides dans une plage discontinue

Bonjour Pierrejean et gilbert_RGI

Merci pour vous réponses.

La solution de pierrejean fonctionne.

Par contre, la solution de gilbert_RGI fonctionne avec 2 plages discontinues mais plante si j'en rajoute une 3ème.
 

ROGER2327

XLDnaute Barbatruc
Re : Compter le nombre de cellules vides dans une plage discontinue

Bonjour à tous.


Autre solution :​
VB:
Sub toto()

Dim Response&, Zone As Range, maPlage As Range

    Set maPlage = Worksheets("Feuil1").Range("B9:B13,D913,F9:F13")
    
    For Each Zone In maPlage.Areas
        Response = Response + Application.WorksheetFunction.CountBlank(Zone)
    Next
    
    If Response > 0 Then
    
    MsgBox "Il y a des cellules vides"
    
    Else
    
    MsgBox "Toutes les cellules sont remplies"
    
    End If

End Sub



ℝOGER2327
#6952


Jeudi 5 As 141 (Saint Van Meegeren, faussaire - fête Suprême Quarte)
17 Brumaire An CCXXII, 3,8228h - cresson
2013-W45-4T09:10:29Z
 

Si...

XLDnaute Barbatruc
Re : Compter le nombre de cellules vides dans une plage discontinue

salut

et 2 autres, la seconde avec détails
Code:
Sub vide1()
  Dim P, n As Byte
  P = Array("B9:B13", "D9:D13", "F9:F13")
  For n = 0 To UBound(P)
    If Application.CountBlank(Range(P(n))) > 0 Then
      MsgBox "Il y a des cellules vides !"
      Exit Sub 'pas besoin de continuer
    End If
  Next
  MsgBox "Toutes les cellules sont remplies"
End Sub
'------------------------------
Sub Vide2()
  Dim P, n As Byte, x As Long, R As String
  P = Array("B9:B13", "D9:D13", "F9:F13")
  For n = 0 To 2
    x = Application.CountBlank(Range(P(n)))
    If x > 0 Then R = R & P(n) & "(" & x & ")" & vbLf
  Next
  If R = "" Then
    MsgBox "Toutes les cellules sont remplies"
  Else
    MsgBox "Il y a des cellules vides en" & vbLf & R, , ""
  End If
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 180
dernier inscrit
Vcr