Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtrage TCD via MSQuery et VBA

9 réponses
Avatar
Choko
Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si vous
voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle garde
les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je n'ai
pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à partir d'un
select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko

9 réponses

Avatar
LSteph
Bonsoir,
non mais une bonne utilisation du TCD devrait
solutionner

Hypothèse 1
Il me serait simple d'utiliser l'option afficher Page du TCD mais
elle garde

les autres vendeurs.
Normalement une fois que tu as fais un copier coller spécial valeurs,

il n'y a plus de rattachement à la source.

Hypothèse 2
A partir de ton TCD global que je suppose tu ne souhaites pas modifier.
Fais un double clic sur le montant correspondant au total général
Tu obtiens dans une feuille l'extraction sous forme de table de tous les
enregistrements.
A partir de celle ci fais un nouveau TCD Somme de Montants avec en
champ de ligne Vendeur.

Maintenant tu peux faire à nouveau doubleclic pour chaque Total d'un
Vendeur extraire sa table.


Cordialement.

lSteph

Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si vous
voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle garde
les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je n'ai
pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à partir d'un
select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko




Avatar
Choko
Merci Lsteph pour ces suggestions,

Ces 2 hypothèses ne correspondent pas tout à fait à ce que je recherche.
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Donc l'hypothèse 1 ne serait pas en mesure de répondre à la demande des
chefs de ventes puisque l'on figerait les données.
L'hypothese 2 est quant à elle trop exhaustive car je devrait recommencer à
chaque mois cette manip et je pense qu'une boucle for next en changeant le
filtre de MSquery ferait mieux le boulot.
La base fait dans les 200 000 lignes et je la garde sur Access pour certains
traitements.
J'ai pensé également à créer les 50 requêtes selection dans Access que je
viendrais lier à une à une un TCD dans excel, mais la solution n'est pas
tres pro et j'aimerai apprendre à manipuler msquery je l'avoue.
J'imaginais qu'il etait possible de manipuler les filtres de MSquery via
Visual Basic.
Dites si je me trompe?

D'avance Merci
Fred

"LSteph" a écrit dans le message de
news:
Bonsoir,
non mais une bonne utilisation du TCD devrait
solutionner

Hypothèse 1
Il me serait simple d'utiliser l'option afficher Page du TCD mais
elle garde

les autres vendeurs.
Normalement une fois que tu as fais un copier coller spécial valeurs,

il n'y a plus de rattachement à la source.

Hypothèse 2
A partir de ton TCD global que je suppose tu ne souhaites pas modifier.
Fais un double clic sur le montant correspondant au total général
Tu obtiens dans une feuille l'extraction sous forme de table de tous les
enregistrements.
A partir de celle ci fais un nouveau TCD Somme de Montants avec en
champ de ligne Vendeur.

Maintenant tu peux faire à nouveau doubleclic pour chaque Total d'un
Vendeur extraire sa table.


Cordialement.

lSteph

Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme
de


TCD pour chaque vendeur sans que ceux ci voient les CA des autres si
vous


voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle
garde


les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je
n'ai


pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à partir
d'un


select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko






Avatar
JB
Bonsoir,

Crée un onglet pour chaque statut:

Sub CreeOnglets()
For s = 1 To
Sheets(1).PivotTables(1).PivotFields("statut").PivotItems.Count
statut =
ActiveSheet.PivotTables(1).PivotFields("statut").PivotItems(s)
ActiveSheet.PivotTables(1).PivotFields("Statut").CurrentPage =
statut
Range("J1:M10").Copy
On Error Resume Next
Sheets(statut).Select
If Err Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = statut
End If
[A1].PasteSpecial Paste:=xlPasteValues
[A1].PasteSpecial Paste:=xlPasteFormats
Sheets("BD").Select
Next s
End Sub

Crée un classeur pour pour chaque statut:

Sub CreeClasseurs()
ChDir ThisWorkbook.Path
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For s = 1 To
Sheets(1).PivotTables(1).PivotFields("statut").PivotItems.Count
statut =
ActiveSheet.PivotTables(1).PivotFields("statut").PivotItems(s)
ActiveSheet.PivotTables(1).PivotFields("Statut").CurrentPage =
statut
Range("J1:M10").Copy
Workbooks.Add
[A1].PasteSpecial Paste:=xlPasteValues
[A1].PasteSpecial Paste:=xlPasteFormats
ActiveWorkbook.SaveAs Filename:=statut
ActiveWorkbook.Close False
Next s
End Sub

http://boisgontierj.free.fr/fichiers/Tabcrois/TabCrois_Onglets.xls

JB

On 29 mar, 17:58, "Choko" wrote:
Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si vous
voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle ga rde
les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je n'ai
pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à part ir d'un
select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko


Avatar
LSteph
Bonsoir,

Fais un tour sur le forum Access, il me semble
qu'au lieu de faire cinquante requêtes sélection
tu peux en faire une seule pour la création de 50 tables.


Sinon pour rester dans excel:
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Pas vraiment ...d'accord ...heu ;-) du tout d'ailleurs ) pourquoi


serait-ce obligé à part que cela soit ton souhait?
Si tu leur donnes à chacun l'ensemble des données qui lui échoit
rien n'empêche de les manipuler et même de s'en faire un TCD.

Cordialement.

lSteph


Merci Lsteph pour ces suggestions,

Ces 2 hypothèses ne correspondent pas tout à fait à ce que je recherche.
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Donc l'hypothèse 1 ne serait pas en mesure de répondre à la demande des
chefs de ventes puisque l'on figerait les données.
L'hypothese 2 est quant à elle trop exhaustive car je devrait recommencer à
chaque mois cette manip et je pense qu'une boucle for next en changeant le
filtre de MSquery ferait mieux le boulot.
La base fait dans les 200 000 lignes et je la garde sur Access pour certains
traitements.
J'ai pensé également à créer les 50 requêtes selection dans Access que je
viendrais lier à une à une un TCD dans excel, mais la solution n'est pas
tres pro et j'aimerai apprendre à manipuler msquery je l'avoue.
J'imaginais qu'il etait possible de manipuler les filtres de MSquery via
Visual Basic.
Dites si je me trompe?

D'avance Merci
Fred

"LSteph" a écrit dans le message de
news:
Bonsoir,
non mais une bonne utilisation du TCD devrait
solutionner

Hypothèse 1
Il me serait simple d'utiliser l'option afficher Page du TCD mais
elle garde

les autres vendeurs.
Normalement une fois que tu as fais un copier coller spécial valeurs,

il n'y a plus de rattachement à la source.

Hypothèse 2
A partir de ton TCD global que je suppose tu ne souhaites pas modifier.
Fais un double clic sur le montant correspondant au total général
Tu obtiens dans une feuille l'extraction sous forme de table de tous les
enregistrements.
A partir de celle ci fais un nouveau TCD Somme de Montants avec en
champ de ligne Vendeur.

Maintenant tu peux faire à nouveau doubleclic pour chaque Total d'un
Vendeur extraire sa table.


Cordialement.

lSteph

Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme
de


TCD pour chaque vendeur sans que ceux ci voient les CA des autres si
vous


voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle
garde


les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je
n'ai


pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à partir
d'un


select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko










Avatar
LSteph
.. tu peux même envisager la manip du tcd par VBA.

@+

Bonne soirée.

lSteph

Merci Lsteph pour ces suggestions,

Ces 2 hypothèses ne correspondent pas tout à fait à ce que je recherche.
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Donc l'hypothèse 1 ne serait pas en mesure de répondre à la demande des
chefs de ventes puisque l'on figerait les données.
L'hypothese 2 est quant à elle trop exhaustive car je devrait recommencer à
chaque mois cette manip et je pense qu'une boucle for next en changeant le
filtre de MSquery ferait mieux le boulot.
La base fait dans les 200 000 lignes et je la garde sur Access pour certains
traitements.
J'ai pensé également à créer les 50 requêtes selection dans Access que je
viendrais lier à une à une un TCD dans excel, mais la solution n'est pas
tres pro et j'aimerai apprendre à manipuler msquery je l'avoue.
J'imaginais qu'il etait possible de manipuler les filtres de MSquery via
Visual Basic.
Dites si je me trompe?

D'avance Merci
Fred

"LSteph" a écrit dans le message de
news:
Bonsoir,
non mais une bonne utilisation du TCD devrait
solutionner

Hypothèse 1
Il me serait simple d'utiliser l'option afficher Page du TCD mais
elle garde

les autres vendeurs.
Normalement une fois que tu as fais un copier coller spécial valeurs,

il n'y a plus de rattachement à la source.

Hypothèse 2
A partir de ton TCD global que je suppose tu ne souhaites pas modifier.
Fais un double clic sur le montant correspondant au total général
Tu obtiens dans une feuille l'extraction sous forme de table de tous les
enregistrements.
A partir de celle ci fais un nouveau TCD Somme de Montants avec en
champ de ligne Vendeur.

Maintenant tu peux faire à nouveau doubleclic pour chaque Total d'un
Vendeur extraire sa table.


Cordialement.

lSteph

Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme
de


TCD pour chaque vendeur sans que ceux ci voient les CA des autres si
vous


voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle
garde


les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je
n'ai


pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à partir
d'un


select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko










Avatar
Choko
Lsteph,

Je me complique peut etre la vie en supposant qu'il est possible de créer
une petite boucle qui ferait 50 filtres différents en VBA avec l'aide de
Msquery pour cacher les données d'un vendeur à l'autre, mais je trouve ca
amusant d'apprendre à le manipuler depuis le VBA.

Concernant:
Pas vraiment ...d'accord ...heu ;-) du tout d'ailleurs ) pourquoi
serait-ce obligé à part que cela soit ton souhait?
- En fait c'est le souhait du Directeur des Ventes. Cela faisait 1 an que

l'on cherchait à mettre à dispositition aux commerciaux leur CA et le format
TCD est le plus adapté pour la lecture vu la masse de clients et de produits
et de dates, et d'autres attributs...
Et tu as raison, c'est également un peu mon souhait de leur apporter une
meilleure visibilité sur leurs marchés et ma problematique est certainement
un peu tiré par les cheveux.

Si tu leur donnes à chacun l'ensemble des données qui lui échoit
rien n'empêche de les manipuler et même de s'en faire un TCD.
- Ils ne savent pas comment faire un TCD et travaillent sur toute l'Europe,

impossible de les former bien que ce soit assez simple j'en convient.

Je vais regarder sur le forum Access pour la creation des tables au cas ou

Je reste ouvert à tout lien vers un site expliquant l'utilisation de MSquery
via le VBA car c'est vraiment l'interet de l'exercice.

merci pour ton aide.
Choko


"LSteph" a écrit dans le message de
news:%
Bonsoir,

Fais un tour sur le forum Access, il me semble
qu'au lieu de faire cinquante requêtes sélection
tu peux en faire une seule pour la création de 50 tables.


Sinon pour rester dans excel:
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Pas vraiment ...d'accord ...heu ;-) du tout d'ailleurs ) pourquoi


serait-ce obligé à part que cela soit ton souhait?
Si tu leur donnes à chacun l'ensemble des données qui lui échoit
rien n'empêche de les manipuler et même de s'en faire un TCD.

Cordialement.

lSteph


Merci Lsteph pour ces suggestions,

Ces 2 hypothèses ne correspondent pas tout à fait à ce que je recherche.
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Donc l'hypothèse 1 ne serait pas en mesure de répondre à la demande des
chefs de ventes puisque l'on figerait les données.
L'hypothese 2 est quant à elle trop exhaustive car je devrait
recommencer à


chaque mois cette manip et je pense qu'une boucle for next en changeant
le


filtre de MSquery ferait mieux le boulot.
La base fait dans les 200 000 lignes et je la garde sur Access pour
certains


traitements.
J'ai pensé également à créer les 50 requêtes selection dans Access que
je


viendrais lier à une à une un TCD dans excel, mais la solution n'est pas
tres pro et j'aimerai apprendre à manipuler msquery je l'avoue.
J'imaginais qu'il etait possible de manipuler les filtres de MSquery via
Visual Basic.
Dites si je me trompe?

D'avance Merci
Fred

"LSteph" a écrit dans le message de
news:
Bonsoir,
non mais une bonne utilisation du TCD devrait
solutionner

Hypothèse 1
Il me serait simple d'utiliser l'option afficher Page du TCD mais
elle garde

les autres vendeurs.
Normalement une fois que tu as fais un copier coller spécial valeurs,

il n'y a plus de rattachement à la source.

Hypothèse 2
A partir de ton TCD global que je suppose tu ne souhaites pas modifier.
Fais un double clic sur le montant correspondant au total général
Tu obtiens dans une feuille l'extraction sous forme de table de tous
les



enregistrements.
A partir de celle ci fais un nouveau TCD Somme de Montants avec en
champ de ligne Vendeur.

Maintenant tu peux faire à nouveau doubleclic pour chaque Total d'un
Vendeur extraire sa table.


Cordialement.

lSteph

Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous
forme




de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si
vous


voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle
garde


les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je
n'ai


pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple
de




l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à
partir




d'un
select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko












Avatar
JB
Création d'un tableau croisé à partir d'une BD ACCESS:

Sub CréeTabCrois()
Range("A5:G100").Clear
Répertoire = ThisWorkbook.Path
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = "ODBC;DSN=MS Access Database;DBQ=" & Répertoi re
& "BDPERS.mdb;" & _
"DefaultDir=" & Répertoire & ";" & "DriverId%;FIL=MS
Access;MaxBufferSize 48;PageTimeout=5;"
.CommandType = xlCmdSql
.CommandText = "SELECT
Nom,Sexe,Service,DateEntrée,Age,Statut,Salaire " & _
" FROM `" & Répertoire & "BDPERS`.Personnel WHERE
(Service='" & [A2] & " ')"

.CreatePivotTable TableDestination:="[" & ThisWorkbook.Name &
"]" & ActiveSheet.Name & "!R5C1", _
TableName:="Tableau croisé dynamique1",
DefaultVersion:=xlPivotTableVersion10
End With
'--- TCD
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Statut", ColumnFields:="Sexe"
With ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Salaire" _
)
.Orientation = xlDataField
.Caption = "Moyenne de Salaire"
.Function = xlAverage
End With
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Statut", ColumnFields:="Sexe"
ActiveWorkbook.ShowPivotTableFieldList = False
'-- mise en forme
[A5].CurrentRegion.Style = "comma"
Columns("A:D").EntireColumn.AutoFit
End Sub

http://boisgontierj.free.fr/fichiers/Tabcrois/TabCroisAccess.zip

JB

On 29 mar, 17:58, "Choko" wrote:
Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si vous
voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle ga rde
les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je n'ai
pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à part ir d'un
select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko


Avatar
LSteph
...

en bidouillant le SQL ton idée paraît réalisable!

Bon courage.

@+

lSteph


Lsteph,

Je me complique peut etre la vie en supposant qu'il est possible de créer
une petite boucle qui ferait 50 filtres différents en VBA avec l'aide de
Msquery pour cacher les données d'un vendeur à l'autre, mais je trouve ca
amusant d'apprendre à le manipuler depuis le VBA.

Concernant:
Pas vraiment ...d'accord ...heu ;-) du tout d'ailleurs ) pourquoi
serait-ce obligé à part que cela soit ton souhait?
- En fait c'est le souhait du Directeur des Ventes. Cela faisait 1 an que

l'on cherchait à mettre à dispositition aux commerciaux leur CA et le format
TCD est le plus adapté pour la lecture vu la masse de clients et de produits
et de dates, et d'autres attributs...
Et tu as raison, c'est également un peu mon souhait de leur apporter une
meilleure visibilité sur leurs marchés et ma problematique est certainement
un peu tiré par les cheveux.

Si tu leur donnes à chacun l'ensemble des données qui lui échoit
rien n'empêche de les manipuler et même de s'en faire un TCD.
- Ils ne savent pas comment faire un TCD et travaillent sur toute l'Europe,

impossible de les former bien que ce soit assez simple j'en convient.

Je vais regarder sur le forum Access pour la creation des tables au cas ou

Je reste ouvert à tout lien vers un site expliquant l'utilisation de MSquery
via le VBA car c'est vraiment l'interet de l'exercice.

merci pour ton aide.
Choko


"LSteph" a écrit dans le message de
news:%
Bonsoir,

Fais un tour sur le forum Access, il me semble
qu'au lieu de faire cinquante requêtes sélection
tu peux en faire une seule pour la création de 50 tables.


Sinon pour rester dans excel:
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Pas vraiment ...d'accord ...heu ;-) du tout d'ailleurs ) pourquoi


serait-ce obligé à part que cela soit ton souhait?
Si tu leur donnes à chacun l'ensemble des données qui lui échoit
rien n'empêche de les manipuler et même de s'en faire un TCD.

Cordialement.

lSteph


Merci Lsteph pour ces suggestions,

Ces 2 hypothèses ne correspondent pas tout à fait à ce que je recherche.
En effet, j'ai besoin de garder l'interactivité du TCD car les vendeurs
doivent pouvoir filtrer produit par produit (250) ou date par date, ou
encore client par client....(au moins 50)
Donc l'hypothèse 1 ne serait pas en mesure de répondre à la demande des
chefs de ventes puisque l'on figerait les données.
L'hypothese 2 est quant à elle trop exhaustive car je devrait
recommencer à


chaque mois cette manip et je pense qu'une boucle for next en changeant
le


filtre de MSquery ferait mieux le boulot.
La base fait dans les 200 000 lignes et je la garde sur Access pour
certains


traitements.
J'ai pensé également à créer les 50 requêtes selection dans Access que
je


viendrais lier à une à une un TCD dans excel, mais la solution n'est pas
tres pro et j'aimerai apprendre à manipuler msquery je l'avoue.
J'imaginais qu'il etait possible de manipuler les filtres de MSquery via
Visual Basic.
Dites si je me trompe?

D'avance Merci
Fred

"LSteph" a écrit dans le message de
news:
Bonsoir,
non mais une bonne utilisation du TCD devrait
solutionner

Hypothèse 1
Il me serait simple d'utiliser l'option afficher Page du TCD mais
elle garde

les autres vendeurs.
Normalement une fois que tu as fais un copier coller spécial valeurs,

il n'y a plus de rattachement à la source.

Hypothèse 2
A partir de ton TCD global que je suppose tu ne souhaites pas modifier.
Fais un double clic sur le montant correspondant au total général
Tu obtiens dans une feuille l'extraction sous forme de table de tous
les



enregistrements.
A partir de celle ci fais un nouveau TCD Somme de Montants avec en
champ de ligne Vendeur.

Maintenant tu peux faire à nouveau doubleclic pour chaque Total d'un
Vendeur extraire sa table.


Cordialement.

lSteph

Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous
forme




de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si
vous


voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle
garde


les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je
n'ai


pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple
de




l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à
partir




d'un
select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko















Avatar
Choko
Merci JB


"JB" a écrit dans le message de
news:
Création d'un tableau croisé à partir d'une BD ACCESS:

Sub CréeTabCrois()
Range("A5:G100").Clear
Répertoire = ThisWorkbook.Path
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = "ODBC;DSN=MS Access Database;DBQ=" & Répertoire
& "BDPERS.mdb;" & _
"DefaultDir=" & Répertoire & ";" & "DriverId%;FIL=MS
Access;MaxBufferSize 48;PageTimeout=5;"
.CommandType = xlCmdSql
.CommandText = "SELECT
Nom,Sexe,Service,DateEntrée,Age,Statut,Salaire " & _
" FROM `" & Répertoire & "BDPERS`.Personnel WHERE
(Service='" & [A2] & " ')"

.CreatePivotTable TableDestination:="[" & ThisWorkbook.Name &
"]" & ActiveSheet.Name & "!R5C1", _
TableName:="Tableau croisé dynamique1",
DefaultVersion:=xlPivotTableVersion10
End With
'--- TCD
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Statut", ColumnFields:="Sexe"
With ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Salaire" _
)
.Orientation = xlDataField
.Caption = "Moyenne de Salaire"
.Function = xlAverage
End With
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Statut", ColumnFields:="Sexe"
ActiveWorkbook.ShowPivotTableFieldList = False
'-- mise en forme
[A5].CurrentRegion.Style = "comma"
Columns("A:D").EntireColumn.AutoFit
End Sub

http://boisgontierj.free.fr/fichiers/Tabcrois/TabCroisAccess.zip

JB

On 29 mar, 17:58, "Choko" wrote:
Bonjour à tous,

J'ai ma base des ventes sous Access et je la requete depuis un TCD via
MSquery.
J'ai 50 vendeurs et je dois mensuellement envoyer un rapport sous forme de
TCD pour chaque vendeur sans que ceux ci voient les CA des autres si vous
voyer le schema...
Il me serait simple d'utiliser l'option afficher Page du TCD mais elle
garde

les autres vendeurs.
Je pense donc qu'il me faut filtrer donc à la source les données. Je n'ai
pas réussi à trouver dans mes bouquins ni sur la toile un bon exemple de
l'utilisation de MS query et des filtres.
Il me serait simple de créer une liste des vendeurs (variable) à partir
d'un

select distinct de la bdd et ensuite créer une boucle qui pour chaque
vendeur remette à jour mon champ filtre dans MSquery.

Ma question est ou puis-je apprendre à faire ce genre de manip
Merci pour votre aide

Choko