Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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,D913,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
 

gilbert_RGI

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

bonjour

c'est le range qui pose problème

essayez ceci

Set maplage = Worksheets("Feuil1").Range(Range("B9:B13"), Range("F9:F13"))

déclarez aussi dim maplage as range
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…