Sélection dans Tableau structuré de la ligne de la cellule active

Bonjour le Forum,

Je galère vraiment avec ces tableaux structurés dont tout le monde vante les mérites et la simplicité... Marre de lire des pages et des pages qui ne m'apportent pas la solution. Alors je m'adresse au balèzes qui sévissent ici et je sais qu'ils sont nombreux.

Mon problème est simple, il me semble, je voudrais sélectionner par VBA la ligne entière de la cellule active dans un tableau structuré.

Voir dans l'exemple ci-joint quel code VBA me permettrait de sélectionner la plage D9:F9 en utilisant ActiveCell.

34test-v01.xlsm (9.58 Ko)

Bonjour,

Un exemple :

Public Sub SelectEntireRowInTable()
Dim lo As ListObject, lr As ListRow, lRow As Long
    If Not ActiveCell.ListObject Is Nothing Then
        Set lo = ActiveCell.ListObject
        lRow = ActiveCell.Row - lo.HeaderRowRange.Row
        Set lr = lo.ListRows(lRow)
        MsgBox lr.Range.Address
    End If
End Sub

Re,

Merci Jean-Éric c'est Nickel !... Mais pas si simple qu'on veut nous le faire croire...

Re,

Pourquoi je ne peux pas sélectionner directement ?

'...
        Set lr = lo.ListRows(lRow)
        lr.select 'ou lo.ListRow(lRow).Select        
'...

[Édition]

J'ai trouvé !...

lr.Range.Select

Je commence à mieux comprendre la manière de procéder... Merci encore Jean-Éric.

Re,

Réponse rapide : ListRow représente une ligne du tableau, pas un Range.

Cdlt.

Re,

Oui ça y est j'ai compris. Merci encore !

Je suis tellement naze que je ne sais même pas comment faire pour dire que le sujet et résolu...

Re,

Pour ceux ou celles qui suivent le sujet, une indication supplémentaire.

Public Sub SelectEntireRowInTable()
Dim lo As ListObject, lr As ListRow, lRowInTable As Long
    If Not ActiveCell.ListObject Is Nothing Then
        Set lo = ActiveCell.ListObject
        lRowInTable = ActiveCell.Row - lo.HeaderRowRange.Row
        Set lr = lo.ListRows(lRowInTable)
        MsgBox lr.Range.Address
    End If
End Sub
Rechercher des sujets similaires à "selection tableau structure ligne active"