Microsoft 365 1ère ligne non vide tableau

eric72

XLDnaute Accro
Bonjour à tous,
J'essaie désespéremment de trouver la 1ère ligne non vide d'un tableau structuré, sans succès
J'ai cherché sur les forums mais ce que j'ai trouvé ne fonctionne pas
J'ai besoin de votre lumière.
Merci beaucoup
Eric
 

Pièces jointes

  • Classeur1.xlsm
    21.6 KB · Affichages: 34

job75

XLDnaute Barbatruc
Bonjour le forum,

Pour sélectionner la 1ère ligne non vide d'un tableau structuré (le titre du fil) c'est très simple :
VB:
Sub LigneNonVide()
Dim i&
With ActiveSheet.ListObjects(1).Range
    For i = 2 To .Rows.Count
        If Application.CountIf(.Rows(i), "><") Then .Rows(i).Select: Exit Sub
    Next
    MsgBox "Tableau vide"
End With
End Sub
Pour sélectionner la 1ère ligne vide d'un tableau structuré c'est aussi simple :
VB:
Sub LigneVide()
Dim i&
With ActiveSheet.ListObjects(1).Range
    For i = 2 To .Rows.Count
        If Application.CountIf(.Rows(i), "><") = 0 Then .Rows(i).Select: Exit Sub
    Next
    .Rows(i).Select
End With
End Sub
Je traite les cellules contenant un texte vide "" comme les cellules vides.

A+
 

fanch55

XLDnaute Barbatruc
Salut à tous,
1727422992035.png
@essaitest :
chercher la première ligne ou plutôt cellule vide d'une colonne et la première ligne vide d'un tableau structuré, ce n'est pas du tout la même chose
1727429511244.png
@job75 : bonjour, dans la sub LigneVide, si une cellule=zéro, la sub considère que c'est une ligne vide ? ...
 

job75

XLDnaute Barbatruc
Ah oui j'avais oublié "><" élimine les nombres.

CountA n'élimine pas les textes vides renvoyés par les formules ni les espaces.

Alors utilisez :
Code:
Sub LigneNonVide()
Dim i&
With ActiveSheet.ListObjects(1).Range
    For i = 2 To .Rows.Count
        If Application.CountIf(.Rows(i), "><") + Application.Count(.Rows(i)) Then .Rows(i).Select: Exit Sub
    Next
    MsgBox "Tableau vide"
End With
End Sub

Sub LigneVide()
Dim i&
With ActiveSheet.ListObjects(1).Range
    For i = 2 To .Rows.Count
        If Application.CountIf(.Rows(i), "><") = 0 And Application.Count(.Rows(i)) = 0 Then .Rows(i).Select: Exit Sub
    Next
    .Rows(i).Select
End With
End Sub
 

Discussions similaires

Réponses
9
Affichages
250

Membres actuellement en ligne

Statistiques des forums

Discussions
314 121
Messages
2 106 129
Membres
109 495
dernier inscrit
jerome bonneau