Comment vérifier si une une plage dynamique (DECALER) est vide ?

dionys0s

XLDnaute Impliqué
Bonjour le forum

Ma question est toute bête en soi, mais je ne trouve pas de réponse sur le net : comment savoir en VBA sur une plage que j'ai définie comme dynamique avec la fonction DECALER est vide ?

Mon fichier exemple avec la mini macro (qui plante) en Module1 vous aideront à comprendre mon soucis

D'avance merci pour votre aide

dionys0s :cool:
 

Pièces jointes

  • Plage dynamique vide.xlsm
    13.2 KB · Affichages: 68

Efgé

XLDnaute Barbatruc
Re : Comment vérifier si une une plage dynamique (DECALER) est vide ?

Bonjour dionys0s,
Une proposition en VBA
VB:
Dim T As Variant
On Error Resume Next
T = Range("Banque_2")
If Err Then: Err.Clear: Exit Sub
Si non on peux éviter que la plage ne renvoi une erreur,
VB:
=DECALER(Feuil1!$B$1;1;0;SI(NBVAL(Feuil1!$B:$B)-1=0;1;NBVAL(Feuil1!$B:$B)-1);1)
Plus court
VB:
=DECALER(Feuil1!$B$1;1;0;SI(NBVAL(Feuil1!$B:$B)=1;1;NBVAL(Feuil1!$B:$B)-1);1)
Cordialement
 
C

Compte Supprimé 979

Guest
Re : Comment vérifier si une une plage dynamique (DECALER) est vide ?

Salut dionys0s

Tout simplement avec une redirection d'erreur ;)
Code:
Sub Test()  
On Error Resume Next
  Debug.Print Range("Banque_1").Rows.Count
  If Err.Number > 0 Then MsgBox "0 ligne dans la plage 'Banque_1'"
  Debug.Print Range("Banque_2").Rows.Count
  If Err.Number > 0 Then MsgBox "0 ligne dans la plage 'Banque_2'"
  On Error GoTo 0
End Sub

Edit : Oups, salut efgé ;)

A+
 

dionys0s

XLDnaute Impliqué
Re : Comment vérifier si une une plage dynamique (DECALER) est vide ?

Bonjour Bruno, bonjour Efgé

Merci pour vos solutions. Je pense que je vais retenir celle d'Efgé.
Pour ma gouverne, que signifient précisément Err.Number > 0 et On Error GoTo 0 ?

Thanks a lot

dionys0s :cool:
 

hbenalia

XLDnaute Occasionnel
Re : Comment vérifier si une une plage dynamique (DECALER) est vide ?

Bonjour à tous,

On peut utiliser la fonction COUNT (par exemple) et le petit code s'écrira:
Code:
Sub Test()

If Application.WorksheetFunction.Count([Banque_1]) <> 0 Then Debug.Print Range("Banque_1").Rows.Count
If Application.WorksheetFunction.Count([Banque_2]) <> 0 Then Debug.Print Range("Banque_2").Rows.Count

End Sub

Cordialement
 

dionys0s

XLDnaute Impliqué
Re : Comment vérifier si une une plage dynamique (DECALER) est vide ?

Bonjour hbenalia

Je n'ai pas l'impression que ta méthode marche... Il n'y a pas d'erreur à l'exécution, mais rien ne s'affiche dans la fenêtre d'exécution alors que ça devrait.
 

MJ13

XLDnaute Barbatruc
Re : Comment vérifier si une une plage dynamique (DECALER) est vide ?

Bonjour à tous

Je n'ai pas l'impression que ta méthode marche... Il n'y a pas d'erreur à l'exécution, mais rien ne s'affiche dans la fenêtre d'exécution alors que ça devrait.

Dyonisos: As tu débuggé ton programme en mode pas à pas et as tu tapé Ctrl+g dans le VBE ?
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 517
dernier inscrit
hbenaoun63