Vérifier qu'une plage est vide

Troudz

XLDnaute Occasionnel
Bonjour à tous,

Je me suis créée une fonction qui vérifie si les cellules d'une plages sont vides mais elle devient très lente lorsque la plage observée est grande :
Code:
Function PlageVide(PlageObservee As Range) As Boolean
Dim i As Long
Dim j As Long
PlageVide = True
    
    With PlageObservee
        For i = 1 To .Rows.Count
            For j = 1 To .Columns.Count
                If .Item(i, j) <> "" Then PlageVide = False
            Next
        Next
    End With

End Function

Auriez vous une idée pour accélérer ce traitement ?

Merci d'avance,

Bonne journée

PS : j'aurai bien utilisé l'équivalent de la formule "ESTVIDE" mais j'aurai bien aimé faire ça entièrement avec du code VBA.
 

Efgé

XLDnaute Barbatruc
Re : Vérifier qu'une plage est vide

Bonjour Troudz,
Peut être en sortant dès qu'une cellule est non vide:

VB:
Function PlageVide(PlageObservee As Range) As Boolean
Dim i As Long
Dim j As Long
PlageVide = True
    With PlageObservee
        For i = 1 To .Rows.Count
            For j = 1 To .Columns.Count
                If .Item(i, j) <> "" Then
                PlageVide = False
                Exit Function
                End If
            Next
        Next
    End With
End Function
Cordialement
 

Troudz

XLDnaute Occasionnel
Re : Vérifier qu'une plage est vide

Bonjour Efgé et merci
C'est effectivement une solution à laquelle que je n'avais pas pensé. C'est vraiment que c'est plus rapide quand la plage n'est pas vide. Malheureusement, lorsque la plage est vide, le code est toujours très très long à exécuter.
 

mth

XLDnaute Barbatruc
Re : Vérifier qu'une plage est vide

Bonjour le fil :)

Une tentative (en espérant ne pas faire de bêtise ...)

Code:
Function PlageVide(PlageObservee As Range) As Boolean
PlageVide = True
    With PlageObservee
        If WorksheetFunction.CountA(PlageObservee) > 0 Then PlageVide = False
    End With
End Function

Bonne journée à tous,

mth
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa