[RESOLU] MACO/TCD - Filtre automatiques

gaouul

XLDnaute Nouveau
Bonjour,

J'arrive pas a activer le filtre automatique, via macro, pour le TCD que j'ai effectué.

J'aurai besoin d'effectuer des filtres en fonction du N° de Societ et du nom de l'hotel.

Je vous joins mon fichier et ce que j'ai préparé avec mes quelques connaissances.

J'ai toujours le même méssage d'erreur :
"ERREUR 1004" :
Impossible de définir la propriété _défault de la classe PivotItem.

Je ne comprend pas trop d'ou viens le probleme.

Pouvez vous m'aider SVP?

Un grand merci.

A plus tard.

Bonne soirée.
Gael
 
Dernière édition:

gaouul

XLDnaute Nouveau
Re : MACO/TCD - Filtre automatiques

Bonjour,

Voyant que personne n'a réagit à mon probleme je me permet de mettre plus de détail.

Alors je dispose d'une liste plus ou moins longue en fonction des années.

J'ai besoin de faire un listing en fonction des siociétés et des noms d'hotel j'ai besoin de retrouver les montants de commissions et de charges sociales, et pour chaque hotel dans une société je dois imprimer le TCD.

Il faut donc que je filtre mon TCD en fonction de ma base Hotel, qui est le détail de tous les hotels, sans doublons, et ma base Société, qui est le détail de tous les hotels, sans doublons.

J'ai surement pas pris la meilleur option afin de retraiter l'information, mais d'abord je fais une boucle sur les Sociétés, et j'isole dans une celllule le N° de société souhaité.

Sub Phase01()

'Creer les variantes société
Sheets("Base Societe").Select
liste_soc = Range("A2:A" & Range("A" & Cells.Rows.Count).End(xlUp).Row)

Sheets("CONCIERGE").Activate
For Each Cel In liste_soc
Range("num_soc_choi") = Cel

Call Phase02
Next

End Sub

Je fais exactement la même manip pour les hotels.
Sub Phase02()

'Creer les variantes hotel
Sheets("Base Hôtel").Select
liste_hot = Range("A2:A" & Range("A" & Cells.Rows.Count).End(xlUp).Row)

Sheets("CONCIERGE").Activate
For Each Cel In liste_hot
Range("num_hot_choi") = Cel
Call Phase03
Next

End Sub

J'obtiens donc mes criteres de tri du TCD. Il me reste plus qu'a filtrer automatiquement mon TCD.

Pour ce faire j'enregistre une macro, je filtre mon TCD et j'obtiens le code suivant :
ActiveSheet.PivotTables("ETAT PAR HOTEL").PivotFields("N° SOCIETE").CurrentPage = "238" ActiveSheet.PivotTables("ETAT PAR HOTEL").PivotFields("Hôtel").CurrentPage = "ASTOR SAINT HONORÉ"

Une fois l'enregistrment effectué je lance la macro et la c'est le drame! ;)
J'ai le message d'erreur cité ci-dessus.

Pouvez vous me donner un coup de pousse SVP?

Je vous rejoind un fichier.

Merci.

Cordialement.
Gael
 

Pièces jointes

  • gael.xls
    189 KB · Affichages: 57
Dernière édition:

Misange

XLDnaute Barbatruc
Re : MACO/TCD - Filtre automatiques

Bonjour

il n'y a toujours pas fichier joint, ceci explique peut être l'absence de réponse ?
Mode avancé cliquer sur le trombone et joindre un PETIT fichier ILLUSTRANT la question (pas tout le classeur qui trop gros ne passe pas et perd les répondeurs dans des pages inutiles à la compréhension de la question)/
Pourquoi faut-il manipuler ce TCD par macro ?
Peux tu montrer exactement le tableau de sortie que tu attends ? (quelques lignes)
Attention à ce que tes données soient bien anonymes !
 

gaouul

XLDnaute Nouveau
Re : MACO/TCD - Filtre automatiques

J'ai pas répondu a ta derniere question qui est :
Pourquoi faut-il manipuler ce TCD par macro ?

Car je dois en faite imprimer la page concierge pour chaque hotel de chaque société soit environ 400 fois la manipulation de filtre, mais aussi le risque d'erreur.
Le fait de passer par une macro automatise et limite l'erreur humaine, et surtout fait gagner énormément de temps.

Voila, j'espere qu'il ne manque plus rien dans ma demande.

Merci pour l'aide que vous pourrez m'apporter.
 

gaouul

XLDnaute Nouveau
Re : MACO/TCD - Filtre automatiques

Bonjour,

J'ai legerement l'impression de faire un monologue mais cela m'aide a investiguer dans mon tableaux.

J'ai reussi a faire que les fitres de mon TCD change en fonction de mes cellules.
En revanche la page s'imprime même si aucune donnée n'est renseigné dans le TCD.

Voici le code utilisé pour changer de filtre et imprimer.
'Lancer l'impression pour chaque hotel dans chacune des société
Sheets("CONCIERGE").Activate
j = Range("B7")

With ActiveSheet
.PivotTables("Tableau croisé dynamique3").PivotFields("HOTEL").CurrentPage = j
End With
Range("A1:C" & Range("A" & Cells.Rows.Count).End(xlUp).Row).PrintOut Copies:=1, Collate:=True

Qu'est-ce que je peux rajouter pour ne pas imprimer si dans le TCD il n'y a pas de données.

Merci pour l'aide que vous pouvez m'apporter.

Bonne journée.