Pb utilisation fonction countblank avec VBA

Résolu/Fermé
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 - 14 déc. 2012 à 11:07
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 - 14 déc. 2012 à 15:11
Bonjour à tous,
J'ai besoin une fois plus de votre aide précieuse. J'ai souhaite trouver un code qui me permette de vérifier si une plage de donnée discontinue, que j'ai nommée "data", contient des cellules vides. Et si c'est le cas, je souhaite qu'un message d'alerte s'affiche.

J'ai donc rédiger les instructions ci-dessous. Or, lorsque je click sur le bouton auquel j'ai associé ces instructions, VBA me renvoie le message d'erreur suivant:
"Run Time Error:1004", Unable to get the countblank property of worksheet function."
Ce qui me surprend, c'est que j'ai déjà utiliser un code identique pour réaliser la même action, et je n'ai eu acun problème.


Mon code VBA:

Private Sub CommandButton2_Click()
Dim c as Integer

c = WorksheetFunction.CountBlank(Range("data"))
If c <> 0 ThenMsgBox " Please fill all the boxes", vbOKOnly + vbExclamation, "Error"
End If
Exit Sub


Quel qu'un saurait-il m'expliquer ce que signifie cette erreur? Et comment la corriger?


Merci d'avance,

Kayna

3 réponses

cousinhub29 Messages postés 883 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 2 mai 2024 339
14 déc. 2012 à 13:53
Bonjour,

J'ai bien peur que la fonction "CountBlank" (équivalent de Nb.Vide sur une feuille) ne fonctionne pas sur une plage de cellules non contiguës..

Un moyen "autre" :

If Application.CountA(Range("data")) <> Range("data").Cells.Count Then
MsgBox " Please fill all the boxes", vbOKOnly + vbExclamation, "Error"
End If


Bonne journée
0
cousinhub29 Messages postés 883 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 2 mai 2024 339
14 déc. 2012 à 13:58
Re-,

Et pour sélectionner la première cellule vide, tu peux faire ainsi :

If Application.CountA(Range("data")) <> Range("data").Cells.Count Then
    MsgBox " Please fill all the boxes", vbOKOnly + vbExclamation, "Error"
    Range("data").SpecialCells(xlCellTypeBlanks)(1).Select
End If
0
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 5
14 déc. 2012 à 15:11
Bonjour cousinhub29!


Tu as résolu mon problème :-) . Ta solution marche parfaitement!

Encore MERCI!


Bonne journée!
0