ActiveSheet.UsedRange.Select ne sélectionne pas la bonne zone

Sebast

XLDnaute Impliqué
Bonsoir à tous,

Par l'instruction ActiveSheet.UsedRange.Select, je définis une zone à imprimer.
Dans la plupart des cas, le résultat attendu est exact mais pour certains onglets, la sélection s'étend au-delà de ce qui devrait être (on le voit par le rectangle noir qui entoure la zone).

Il s'agit de tableaux croisés dynamiques, par définition variables, selon les mois, les années et les différentes dimensions sélectionnées.
Sur certains, la sélection est bonne, sur d'autres, elle est erronée car trop large (les TCD sont pourtant construits sur le même modèle) !
J'ai bien contrôlé qu'il n'y ait pas un caractère parasite caché ...

Quelqu'un a-t-il eu cette même mauvaise surprise et quelle pourrait être la solution ?

Merci d'avance pour vos lumières
 

Sebast

XLDnaute Impliqué
Re : ActiveSheet.UsedRange.Select ne sélectionne pas la bonne zone

Bonjour,

après recherche, effectivement, il y avait bien un format caché, en fait au-delà de mon TCD, j'avais (il y a longtemps) fait un simple calcul, effacé depuis mais visiblement, il y a des traces ...

Je ne pensais pas que ça avait une incidence sur cette instruction !

Merci de m'avoir ouvert les yeux
 

Pierrot93

XLDnaute Barbatruc
Re : ActiveSheet.UsedRange.Select ne sélectionne pas la bonne zone

Bonjour,

pour selectioner la plage de cellules contenant un TCD :
Code:
With ActiveSheet
    If .PivotTables.Count > 0 Then .PivotTables(1).TableRange2.Select
End With
bonne journée
@+
 

Sebast

XLDnaute Impliqué
Re : ActiveSheet.UsedRange.Select ne sélectionne pas la bonne zone

Bonjour Pierrot93,

un grand merci pour ton aide, qui effectivement résoud mon problème.
Là où ActiveSheet.UsedRange.Select sélectionne tout, yc les éventuels formats alentours donc des colonnes parasites, ton instruction ne sélectionne bel et bien QUE ce qui m'intéresse, à savoir le tableau.

En revanche, ça reste un peu du chinois pour moi : pourquoi PivotTables(1) (pourquoi 1 ?) et TableRange2 (pourquoi 2 ?)
Même si ça marche parfaitement, je voudrais comprendre


Encore merci pour tes lumières
 

Pierrot93

XLDnaute Barbatruc
Re : ActiveSheet.UsedRange.Select ne sélectionne pas la bonne zone

Re,

PivotTables(1)
le 1er tcd de la feuille en question, ici est utilisé le numéro d'index du tcd dans la collection de tous les tcd de la feuille... tu peux également utiliser le nom du tcd à placer entre guillemets à la place du 1...

TableRange2 (pourquoi 2 ?)
c'est le nom de la propriété qui renvoie un objet "range" (les cellules), il existe égament la propriété "TableRange1", celle-ci par contre exclu les champs de page du tcd...
 

Sebast

XLDnaute Impliqué
Re : ActiveSheet.UsedRange.Select ne sélectionne pas la bonne zone

Re,

je comprends désormais un peu mieux. Heureusement que j'ai posté ma question , sinon je me voyais galérer manuellement, persuadé que seule l'instruction ActiveSheet.UsedRange.Select existait pour mon besoin.

Tu m'enlèves une sacrée épine !

Encore merci
 

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 837
dernier inscrit
CRETE