Microsoft 365 1ère ligne non vide tableau

  • Initiateur de la discussion Initiateur de la discussion eric72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

je crois que cette formule là pourrait fonctionner mais ca beug, c'est peut-être le fait que la copie se fasse dans un autre fichier?
Derligne = DestFeuil1.Range("tableau13").Rows.Count - Application.CountBlank(DestFeuil1.Range("tableau13[Nom Client]")) + 2
Ca doit être mal formulé je pense.
Eric
 
Bonjour.
On n'a en général pas besoin de savoir où aura été ajoutée la ligne pour pouvoir y coller des données :
La méthode Add de la collection ListRows du ListObject renvoie un ListRow. Or celui ci est muni d'une propriété Range qui représente la plage de cellules couverte par la ligne ajoutée.
 
Ça n'est pas vraiment compliqué en terme de nombre de lignes de code si on enchaine tout en sachant ce que ça veut dire :
VB:
ActiveSheet.ListObjects(1).ListRows.Add.Range.Value = MonTableauDUneLigne
Ou bien
VB:
MonRange.Copy Destination:=ActiveSheet.ListObjects(1).ListRows.Add.Range
 
Bonsoir,
Bien que je ne comprenne pas l'utilité d'une ligne "vide" dans une table structurée,
le code ci-dessous permettra de trouver celle-ci :
VB:
Sub Chercher_Ligne_Vide_de_Tableau()
   
    Lvt [Tableau1], i&, j&
        MsgBox "ligne vide" & vbLf & _
            " =" & i & " dans" & [Tableau1].ListObject.Name & vbLf & _
            " =" & j & " dans " & [Tableau1].Parent.Name
   
    Lvt [Tableau2], i&, j&
        MsgBox "ligne vide" & vbLf & _
            " =" & i & " dans" & [Tableau2].ListObject.Name & vbLf & _
            " =" & j & " dans " & [Tableau2].Parent.Name
           
End Sub
Sub Lvt(Tableau, Optional Ligne_Table As Long, Optional Ligne_Feuille As Long)

    If Tableau.ListObject.DataBodyRange Is Nothing Then
        Ligne_Table = 1
        Ligne_Feuille = Tableau.ListObject.HeaderRowRange.Row + 1
    Else
        Dim R As Range
        For Each R In Tableau.ListObject.DataBodyRange.Rows
             If Application.CountA(R.Cells) = 0 Then
                Ligne_Table = R.Row - Tableau.ListObject.HeaderRowRange.Row
                Ligne_Feuille = R.Row
                Exit For
             End If
        Next
    End If

End Sub
 
Ça n'est pas vraiment compliqué en terme de nombre de lignes de code si on enchaine tout en sachant ce que ça veut dire :
VB:
ActiveSheet.ListObjects(1).ListRows.Add.Range.Value = MonTableauDUneLigne
Ou bien
VB:
MonRange.Copy Destination:=ActiveSheet.ListObjects(1).ListRows.Add.Range

bonjour,

Et bien voilà , c'est tout de suite plus clair comme ça, pas très doué mais je me soigne.
Merci beaucoup pour votre aide.
Eric
 
Bonsoir,
Bien que je ne comprenne pas l'utilité d'une ligne "vide" dans une table structurée,
le code ci-dessous permettra de trouver celle-ci :
VB:
Sub Chercher_Ligne_Vide_de_Tableau()
   
    Lvt [Tableau1], i&, j&
        MsgBox "ligne vide" & vbLf & _
            " =" & i & " dans" & [Tableau1].ListObject.Name & vbLf & _
            " =" & j & " dans " & [Tableau1].Parent.Name
   
    Lvt [Tableau2], i&, j&
        MsgBox "ligne vide" & vbLf & _
            " =" & i & " dans" & [Tableau2].ListObject.Name & vbLf & _
            " =" & j & " dans " & [Tableau2].Parent.Name
           
End Sub
Sub Lvt(Tableau, Optional Ligne_Table As Long, Optional Ligne_Feuille As Long)

Bonjour Fanch55,

Merci beaucoup pour votre réponse, c'est incroyable vous avez toujours des solutions pour tout!!!
Bonne journée
Eric

    If Tableau.ListObject.DataBodyRange Is Nothing Then
        Ligne_Table = 1
        Ligne_Feuille = Tableau.ListObject.HeaderRowRange.Row + 1
    Else
        Dim R As Range
        For Each R In Tableau.ListObject.DataBodyRange.Rows
             If Application.CountA(R.Cells) = 0 Then
                Ligne_Table = R.Row - Tableau.ListObject.HeaderRowRange.Row
                Ligne_Feuille = R.Row
                Exit For
             End If
        Next
    End If

End Sub
 
Bonjour,

je suis débutant peux tu commenter ta fonction?

Attention :

- D'une part la question posée est de trouver la 1ère ligne non vide d'un tableau structuré.
Mais il semble que ce ne soit en fait pas du tout ce qui est recherché en réalité. Ce qui parait logique puisque normalement la première ligne non vide d'un TS est la première ligne dudit TS.
Donc je ne sais pas ce que recherchait exactement eric72. Peut-être la première ligne vide (mais pourquoi avoir une ligne vide dans un TS ???), ou peut-être la dernière lige non vide du TS, ou peut-être la dernière ligne du TS ?

- D'autre part ladite fonction ne répond pas à la question posée puisqu'elle ne tient pas compte du fait que la question porte précisément sur un TS.
Elle ne fait que retourner, en employant une méthode un peu complexe, la dernière ligne non vide de la colonne A.


Mais toi, que cherches-tu à faire ?
 
Dernière édition:
Bonjour,



Attention :

- D'une part la question posée est de trouver la 1ère ligne non vide d'un tableau structuré.
Mais il semble que ce ne soit en fait pas du tout ce qui est recherché en réalité. Ce qui parait logique puisque normalement la première ligne non vide d'un TS est la première ligne dudit TS.
Donc je ne sais pas ce que recherchait exactement @eric72. Peut-être la première ligne vide (mais pourquoi avoir une ligne vide dans un TS ???), ou peut-être la dernière lige non vide du TS, ou peut-être la dernière ligne du TS ?

- D'autre part ladite fonction ne répond pas à la question posée puisqu'elle ne tient pas compte du fait que la question porte précisément sur un TS.
Elle ne fait que retourner, en employant une méthode un peu complexe, la dernière ligne non vide de la colonne A.


Mais toi, que cherches-tu à faire ?
je compare toute les méthodes pour trouver une ligne vide que ce soit dan un tableau ou une colonne.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
104
  • Question Question
Microsoft 365 Formule excel
Réponses
7
Affichages
188
Réponses
4
Affichages
112
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
628
  • Question Question
Microsoft 365 Formulaire
Réponses
2
Affichages
121
Retour