Taille d'un champ de Page d'un TCD
#1
Aspirant XLPages

Inscription: 07/03/2008
De Amiens

Messages: 33

Système d'exploitation:
PC
Version Excel utilisée:
2002,2003,2010
Posté le : 31-03-2010 12h26

Bonjour,

Dans l'exemple ci-joint le but est de figer lors de sa sélection, la présentation du  champ Club à 20 éléments.
La taille de la fenêtre, présentant les éléments,  peut-être fixée manuellement. Seulement elle ne se maintient pas après sauvegarde.

Une solution est à l'ouverture de lancer une macro à l'ouverture du classeur (gestion de plusieurs feuilles) qui vienne faire la mise en forme.

soit une macro
Private Sub Workbook_Open()
'
'Position le champs Club dans la zone Page du TCD
   Sheets("Feuil2").PivotTables("Tableau croisé dynamique1").PageFields("Club").Orientation = xlPageField

'Une ligne pour indiquer le nombre d'éléments visible lorsque l'on veux sélectionner un élément

Sheets("Feuil2").PivotTables("Tableau croisé dynamique1").PageFields("Club").Items=20 ' of course it's no goodf!
End Sub

L'enregistreur de macro ne donne pas le code de manipulation de la liste.


Merci d'avance pour votre aide







Pièce jointe:
zip TCDtest.zip   [ Taille: 75.74 Ko - Téléchargements: 534 ]
Edité par JackyAmiens le 31/03/2010 13:33:53
Hors Ligne
Rapport   Haut 

Re: Taille d'un champ de Page d'un TCD
#2
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 31-03-2010 14h16
Bonjour JackyAmiens,

Voici un code inspiré de MichelXLD:

With Worksheets("Feuil2").PivotTables("Tableau croisé dynamique1")
    x = .PivotFields("Club").PivotItems.Count
           
        For x = 1 To 22
            .PivotFields("Club").PivotItems.Item(x).Visible = True
        Next
        For x = 22 To .PivotFields("Club").PivotItems.Count
            .PivotFields("Club").PivotItems.Item(x).Visible = False
        Next
  End With
 

J'ai testé sur 2007, en revanche je n'ai pas regardé sur ta version...

Bon après-midi et à bientôt,

mth
Hors Ligne
Rapport   Haut 

Re: Taille d'un champ de Page d'un TCD
#3
Aspirant XLPages

Inscription: 07/03/2008
De Amiens

Messages: 33

Système d'exploitation:
PC
Version Excel utilisée:
2002,2003,2010
Posté le : 31-03-2010 15h58
Bonjour,

Et merci de ta participation,
mais, je me suis mal exprimé.
Mon code (en gras) ne fonctionne pas, il est simplement l'expression de l'idée de l'instruction que je cherche.

Le code  VBA   doit permettre de  dimensionner le champ déposer en zone Page lors de sa sélection par l'utilisateur.
Si Club comporte 100 éléments, un clique sur le sélecteur d'élément doit faire apparaître une zone comprenant 20 éléments au lieu 6 ou 8.

Le code MichelXLD  permet de sélectionner ou déselectionner les éléments présent dans "Club" et ne répond pas à ma recherche.

Cdlt, JackyAmiens


Hors Ligne
Rapport   Haut 

Re: Taille d'un champ de Page d'un TCD
#4
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 31-03-2010 21h58
Bonjour JackyAmiens,

J'ai fouillé ici et là et encore là et ici : rien.

Si j'ai bien compris la question la fenêtre que tu cherches à redimensionner automatiquement selon des paramètres personnels, dans le cas qui nous occupe afficher 20 éléments, n'est pas pilotable par VBA.

Il s'agit d'une fenêtre de type bosa_sdm_XL9.

Il y a bien les API comme FindWindow et MoveWindow qui pourraient te permettre de zigonner* avec cette fenêtre.
Je te le déconseille. J'ai bricolé plusieurs parades de mon cru tout l'après-midi et bof... ni convainquant ni solide.

En plus le type de fenêtre bosa_sdm_XL9 est utilisé pour tout autre chose comme par exemple la fenêtre d'avertissement suivante est ausi une fenètre bosa_sdm_XL9.



Alors si tu joues avec les API assure-toi de bien distinguer le ceci du cela.

Bref, je crois que la réponse à ta question est : Impossible. Désolé.

Cordialement,

Guy

____
*zigonner : (québécisme) Travailler à l'aveuglette sans trop savoir quoi ou comment faire. Perdre son temps.
Edité par Guy le 01/04/2010 00:55:54

Hors Ligne
Rapport   Haut 

Re: Taille d'un champ de Page d'un TCD
#5
Aspirant XLPages

Inscription: 07/03/2008
De Amiens

Messages: 33

Système d'exploitation:
PC
Version Excel utilisée:
2002,2003,2010
Posté le : 01-04-2010 08h09
Bonjour,

Merci Guy d'avoir consacrer du temps à ma problèmatique, Je voulais un seul champ de page présentant une liste d'au moins 20 clubs.
Comme les clubs appartiennent à des Ligues, je peux ajouter un filtre supplémentaire avec un champ dit "Ligue".
Le filtrage par ligue permet la présence de moins de clubs mais contraint à deux sélections.

Cdlt, Jacky
Hors Ligne
Rapport   Haut 

Re: Taille d'un champ de Page d'un TCD
#6
Aspirant XLPages

Inscription: 07/03/2008
De Amiens

Messages: 33

Système d'exploitation:
PC
Version Excel utilisée:
2002,2003,2010
Posté le : 07-04-2010 16h42

Bonjour,

N'ayant pas de solution apparente, j'ai utilisé un subterfuge.

Le tableau croisé dynamique est piloté à travers une liste redimensionnable ici de 20 éléments.

Le code est


Public Sub SelectTcd()
        zoneSelect = Range("SelEquipes")
        Sheets("Feuil2").PivotTables("Tableau croisé dynamique1").PivotFields("Club").CurrentPage = zoneSelect
        Sheets("Feuil2").PivotTables("Tableau croisé dynamique1").PivotFields("Club").CurrentPage = zoneSelect
End Sub


Sub MaJEquipes()
'
'
' Macro enregistrée le 31/03/2010 par JackyAmiens
'Détermination de la liste des clubs présent sur la feuille equipes

Sheets("Equipes").Columns("A:A").ClearContents
Sheets("Equipes").Range("A1") = "Equipes"

    With Worksheets("Feuil2").PivotTables("Tableau croisé dynamique1")
        x = .PivotFields("Club").PivotItems.Count
           
            For i = 1 To x
                Sheets("Equipes").Cells(i + 1, 1).Value = .PivotFields("Club").PivotItems.Item(i)
            Next i
    End With
  
    Sheets("Equipes").Range("A2:A" & x + 1 & "").Select
    ActiveWorkbook.Names.Add Name:="L_Equip", RefersToR1C1:= _
        "=Equipes!R2C1:R" & x + 1 & "C1"


End Sub


Le fichier d'exemple est joint (ce n'est pas le projet réel)

Pièce jointe:
zip TCDtest.zip   [ Taille: 78.32 Ko - Téléchargements: 607 ]
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes