Microsoft 365 VBA selection d'un tableau à partir d'une cellule

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

rafi93

XLDnaute Occasionnel
bonjour

très basique : je pointe sur une cellule à l'intérieur d'un tableau
quel est le code vb pour selectionner le tableau qui entoure cette cellule ?

merci...
 

rafi93

XLDnaute Occasionnel
merci mapomme !

j'ai pas fourni le fichier que tu n'as pas vu, car c'est juste très générique...

1679493285974.png

voila ce que j'obtiens quand je pointe sur une cellule d'un tableau quelconque
c'est bien ça qu'il faut écrire ?

j'ai tout essayé ActiveSheet.ActiveCell.CurrentRegion.Select et j'en passe
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Un essai avec deux tableaux TCD, deux tableaux structurés et deux plages quelconques.
Sélectionner une cellule et cliquer sur le bouton Hop!

Pour les plages quelconques, la manière dont le "tableau" est rempli détermine la sélection (cf tableau vert => seules les cellules entourées en vert sélectionne toute la plage).

Si on sélectionne une cellule en dehors d'un TCD ou d'un tableau structuré le résultat est aléatoire.
=> essayez avec une cellule adjacente aux tableaux de la feuille et voyez...



Le code est dans module1:
Code:
Sub SélectionnerTableau()
Dim cel As Range, tcd, tcdsel As Range, x As Range
   On Error Resume Next
   Set cel = Range(Selection.Address)
   If cel Is Nothing Then Exit Sub
   Set cel = ActiveCell
   For Each tcd In ActiveSheet.PivotTables
      tcd.PivotSelect "", xlDataAndLabel, True
      If Not Intersect(Selection, cel) Is Nothing Then Exit Sub
   Next tcd
   Set x = cel.ListObject.Range
   If Not x Is Nothing Then x.Select: Exit Sub
   cel.CurrentRegion.Select
End Sub
 

Pièces jointes

Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

ActiveSheet n'est pas une propriété de feuille de calcul mais de fenêtre (d'affichage) Excel.
ActiveSheet.ActiveCell n'existe donc pas dans le modèle objet d'Excel.

ActiveCell est une propriété de fenêtre Excel. D'ailleurs ActiveWindow.ActiveCell est correct.

Excel autorise une contraction d'écriture en ActiveCell pour ActiveWindow.ActiveCell.

Voir le fichier joint avec une seule fenêtre et deux fenêtres de cette feuille.

Quand on change la sélection dans une des deux fenêtres, la macro Test dans module1 affiche un message avec le titre de la fenêtre, l'adresse de la cellule active et le nom de la feuille contenant la cellule active.
 

Pièces jointes

Discussions similaires

Réponses
11
Affichages
401
Réponses
13
Affichages
370
Réponses
8
Affichages
107
Réponses
2
Affichages
202

Statistiques des forums

Discussions
315 297
Messages
2 118 171
Membres
113 444
dernier inscrit
Yves GUIBERT