Si tableau vide alors

Bonjour à tous,

Je bloque sur un bout de code, il s'agirait que si le tableau est vide alors msgbox sinon on ouvre un userform, voici ce que j'ai mis, mais j'ai toujours une erreur :

Sub RecupAttente()

      If Sheets("Attente").Range("TabSave") = Array(0) Then
           MsgBox "Pas de facture en attente.", vbInformation, "Pas de facture"
          else

FormAttente.Show

      End If

End Sub

Merci pour vos retours,

RQ

re, si c'est un tableau structuré, alors ...

(si la macro se trouve dans le module d'une feuille,il faut y ajouter la feuille, sinon, inutile de le faire, donc "RecupAttente se trouve dans quel type de module ?

Sub RecupAttente()

      If Range("TabSave").listobject.listrows.count=0 Then
           MsgBox "Pas de facture en attente.", vbInformation, "Pas de facture"
          else

FormAttente.Show

      End If

End Sub

Bonjour,

Si vous voulez vérifier que le tableau a 1 seule ligne (c'est le minimum) et que celle-ci est vide, vous pouvez procéder ainsi :

Sub RecupAttente()
  If Range("TabSave").ListObject.ListRows.Count > 1 Then
    ' le tableau a +1 ligne
    FormAttente.Show
    Exit Sub
  Else
    ' le tableau a 1 ligne, est-elle vide ?

    Dim vals As Variant
    vals = WorksheetFunction.Transpose(WorksheetFunction.Transpose( _
      Range("TabSave").ListObject.ListRows(1).Range.Value))

    If VBA.Join(vals, "") = vbNullString Then
      ' la ligne est vide
      MsgBox "Pas de facture en attente.", vbInformation, "Pas de facture"
      Exit Sub
    End If
  End If

  ' le tableau a 1 ligne, non vide
  FormAttente.Show
End Sub

@saboh12617,

pour vérifier si le tableau n'est pas vide, c'est plus simple comme ceci

if worksheetfunction.counta(Range("TabSave"))>0 then ...

eventuellement

Sub RecupAttente()
     Dim c     As Range: Set c = Range("tabsave").ListObject.DataBodyRange 'contenu du TS
     If c Is Nothing Then
          MsgBox "aucune ligne dans le TS"
     else
          If WorksheetFunction.CountA(c) = 0 Then
               MsgBox "TS est vide"
          Else
               FormAttente.Show
          End If
     End If
End Sub

Bonjour,

Merci BsAlv, cela fonctionne parfaitement !

Merci !!

RQ

Rechercher des sujets similaires à "tableau vide"