Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester si une plage ne contient aucune valeur

6 réponses
Avatar
defluc
Bonjour à tous

Dans une macro, je voudrais vérifier si une plage ne contient aucune
valeur sans utiliser de boucle sur chaque cellule pour ne pas pénaliser
le temps d'exécution.
Je teste avec le code suivant :

Set Plage = Range(Cells(1, 1), Cells(10, 3))
If IsNull(Plage) Then MsgBox ("La plage est vide") _
Else MsgBox ("La plage contient au moins une valeur")

Malheureusement, le message qui m'est renvoyé est toujours "La plage
contient au moins une valeur", même si aucune cellule ne contient de valeur.

J'ai également essayé «IsNull(Plage.Value)» et «IsEmpty» sans que cela
ne change quoi que ce soit.

Alors, faut-il vraiment passer par une boucle.

Merci d'avance pour toute réponse

6 réponses

Avatar
Daniel.C
Bonjour.
Set plage = Range(Cells(1, 1), Cells(10, 3))
If Application.CountA(plage) = 0 Then
MsgBox ("La plage est vide")
Else: MsgBox ("La plage contient au moins une valeur")
End If


Bonjour à tous

Dans une macro, je voudrais vérifier si une plage ne contient aucune valeur
sans utiliser de boucle sur chaque cellule pour ne pas pénaliser le temps
d'exécution.
Je teste avec le code suivant :

Set Plage = Range(Cells(1, 1), Cells(10, 3))
If IsNull(Plage) Then MsgBox ("La plage est vide") _
Else MsgBox ("La plage contient au moins une valeur")

Malheureusement, le message qui m'est renvoyé est toujours "La plage contient
au moins une valeur", même si aucune cellule ne contient de valeur.

J'ai également essayé «IsNull(Plage.Value)» et «IsEmpty» sans que cela ne
change quoi que ce soit.

Alors, faut-il vraiment passer par une boucle.

Merci d'avance pour toute réponse


Avatar
defluc
Merci à toi Daniel

Je venais de trouver sur un autre site
Par contre, cette fonction n'est pas documentée dans l'aide

Daniel.C a écrit :
Bonjour.
Set plage = Range(Cells(1, 1), Cells(10, 3))
If Application.CountA(plage) = 0 Then
MsgBox ("La plage est vide")
Else: MsgBox ("La plage contient au moins une valeur")
End If


Bonjour à tous

Dans une macro, je voudrais vérifier si une plage ne contient aucune
valeur sans utiliser de boucle sur chaque cellule pour ne pas
pénaliser le temps d'exécution.
Je teste avec le code suivant :

Set Plage = Range(Cells(1, 1), Cells(10, 3))
If IsNull(Plage) Then MsgBox ("La plage est vide") _
Else MsgBox ("La plage contient au moins une valeur")

Malheureusement, le message qui m'est renvoyé est toujours "La plage
contient au moins une valeur", même si aucune cellule ne contient de
valeur.

J'ai également essayé «IsNull(Plage.Value)» et «IsEmpty» sans que cela
ne change quoi que ce soit.

Alors, faut-il vraiment passer par une boucle.

Merci d'avance pour toute réponse






Avatar
Daniel.C
C'est la fonction Excel NBVAL.
Daniel

Merci à toi Daniel

Je venais de trouver sur un autre site
Par contre, cette fonction n'est pas documentée dans l'aide

Daniel.C a écrit :
Bonjour.
Set plage = Range(Cells(1, 1), Cells(10, 3))
If Application.CountA(plage) = 0 Then
MsgBox ("La plage est vide")
Else: MsgBox ("La plage contient au moins une valeur")
End If


Bonjour à tous

Dans une macro, je voudrais vérifier si une plage ne contient aucune
valeur sans utiliser de boucle sur chaque cellule pour ne pas pénaliser le
temps d'exécution.
Je teste avec le code suivant :

Set Plage = Range(Cells(1, 1), Cells(10, 3))
If IsNull(Plage) Then MsgBox ("La plage est vide") _
Else MsgBox ("La plage contient au moins une valeur")

Malheureusement, le message qui m'est renvoyé est toujours "La plage
contient au moins une valeur", même si aucune cellule ne contient de
valeur.

J'ai également essayé «IsNull(Plage.Value)» et «IsEmpty» sans que cela ne
change quoi que ce soit.

Alors, faut-il vraiment passer par une boucle.

Merci d'avance pour toute réponse








Avatar
defluc
NBVAL n'est pas documenté dans Excel 2000.
J'ai trouvé ClearContents qui fait la même chose
Daniel.C a écrit :
C'est la fonction Excel NBVAL.
Daniel

Merci à toi Daniel

Je venais de trouver sur un autre site
Par contre, cette fonction n'est pas documentée dans l'aide

Daniel.C a écrit :
Bonjour.
Set plage = Range(Cells(1, 1), Cells(10, 3))
If Application.CountA(plage) = 0 Then
MsgBox ("La plage est vide")
Else: MsgBox ("La plage contient au moins une valeur")
End If


Bonjour à tous

Dans une macro, je voudrais vérifier si une plage ne contient aucune
valeur sans utiliser de boucle sur chaque cellule pour ne pas
pénaliser le temps d'exécution.
Je teste avec le code suivant :

Set Plage = Range(Cells(1, 1), Cells(10, 3))
If IsNull(Plage) Then MsgBox ("La plage est vide") _
Else MsgBox ("La plage contient au moins une valeur")

Malheureusement, le message qui m'est renvoyé est toujours "La plage
contient au moins une valeur", même si aucune cellule ne contient de
valeur.

J'ai également essayé «IsNull(Plage.Value)» et «IsEmpty» sans que
cela ne change quoi que ce soit.

Alors, faut-il vraiment passer par une boucle.

Merci d'avance pour toute réponse












Avatar
Caetera
"defluc" a écrit dans le message de news:
%
NBVAL n'est pas documenté dans Excel 2000.
J'ai trouvé ClearContents qui fait la même chose



NBVAL est une fonction de feuille de calcul
ClearContents est une méthode en Vba

Strictement aucun rapport entre les deux...
Me semble que c'est la grande confusion...

Etc
Avatar
Daniel.C
Ca n'a pourtant rien à voir; NBVAL compte les cellules non vides.
ClearContents efface les valeurs...
Daniel

NBVAL n'est pas documenté dans Excel 2000.
J'ai trouvé ClearContents qui fait la même chose
Daniel.C a écrit :
C'est la fonction Excel NBVAL.
Daniel

Merci à toi Daniel

Je venais de trouver sur un autre site
Par contre, cette fonction n'est pas documentée dans l'aide

Daniel.C a écrit :
Bonjour.
Set plage = Range(Cells(1, 1), Cells(10, 3))
If Application.CountA(plage) = 0 Then
MsgBox ("La plage est vide")
Else: MsgBox ("La plage contient au moins une valeur")
End If


Bonjour à tous

Dans une macro, je voudrais vérifier si une plage ne contient aucune
valeur sans utiliser de boucle sur chaque cellule pour ne pas pénaliser
le temps d'exécution.
Je teste avec le code suivant :

Set Plage = Range(Cells(1, 1), Cells(10, 3))
If IsNull(Plage) Then MsgBox ("La plage est vide") _
Else MsgBox ("La plage contient au moins une valeur")

Malheureusement, le message qui m'est renvoyé est toujours "La plage
contient au moins une valeur", même si aucune cellule ne contient de
valeur.

J'ai également essayé «IsNull(Plage.Value)» et «IsEmpty» sans que cela
ne change quoi que ce soit.

Alors, faut-il vraiment passer par une boucle.

Merci d'avance pour toute réponse