vérifier si un file avec l'en-tête est vide

J'écris un code VBA pour vérifier si d'autres files sont vides ou non. Ces files ont tous des en-têtes, donc je souhaite vérifier si la cellule "A2" est vide ou a une longueur zéro. Mon code est ci-dessous, file1, dir1, dirfile1 sont filename, directory, path d'access. J'ai également un problème, je dois ouvrir le file pour accéder à sa cellule "A2".

Private Sub CommandButton2_Click() Dim file1, dir1, dirfile1 As Ssortingng file1 = "NAMBS." & Range("f3") dir1 = Range("D11") dirfile1 = dir1 & "\" & file1 Range("F14").Clear If Len(Dir(dirfile1)) = 0 Then Range("F14") = "missing" Else Workbooks.Open (dirfile1) If IsEmpty(ThisWorkbook.Sheets(dirfile1).Range("a2")) Then Range("F14") = "empty" End If Workbooks(file1).Close End If End Sub 

Le message d'erreur msg est l'erreur d'exécution '9': l'indice hors gamme. Fondamentalement, je souhaite accéder à la cellule "A2" dans une autre table et vérifier si elle est vide ou non, puis fermez-la.

Essayez de définir une variable de type d'object de classur lorsque vous ouvrez le file.

 Private Sub CommandButton2_Click() Dim file1 As Ssortingng, dir1 As Ssortingng, dirfile1 As Ssortingng Dim wbo As Workbook With ThisWorkbook.ActiveSheet file1 = "NAMBS." & .Range("f3") dir1 = .Range("D11") dirfile1 = dir1 & "\" & file1 .Range("F14").Clear If Len(Dir(dirfile1)) = 0 Then .Range("F14") = "missing" Else Set wbo = Workbooks.Open(dirfile1) If IsEmpty(wbo.Sheets(1).Range("a2")) Then .Range("F14") = "empty" End If wbo.Close , False Set wbo = Nothing End If End With End Sub 

Toutes les references de la gamme de cellules sont renvoyées au parent déterminé par le bloc With/End With . Le classur ouvert est mentionné explicitement par la variable wbo affectée à l'object classur.

Si ces files sont des CSV et qu'ils possèdent tous un en-tête commun, vérifiez la taille du file pour tout ce qui est plus grand qu'un file en-tête uniquement et vous ne devrez pas les ouvrir pour déterminer s'ils sont peuplés.