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

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
 

rafi93

XLDnaute Occasionnel
ok merci

voir fichier test ci joint :)
je sélectionne une cellule dans Tableau1

pourquoi le code
ActiveCell.CurrentRegion.Select
et pas
ActiveSheet.ActiveCell.CurrentRegion.Select
 

Pièces jointes

  • test TCD MFC.xlsm
    20 KB · Affichages: 1

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

  • rafi93- Selection tableau- v1.xlsm
    28.6 KB · Affichages: 1
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

  • rafi93- Selection tableau- v2.xlsm
    16.6 KB · Affichages: 1

Discussions similaires

Réponses
13
Affichages
327
Réponses
2
Affichages
152

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette