anthooooony
Messages postés28Date d'inscriptionmercredi 1 février 2012StatutMembreDernière intervention17 avril 2013
-
7 févr. 2012 à 23:22
Utilisateur anonyme -
8 févr. 2012 à 12:33
Bonjour,
Je cherche une piste pour la fin d'un projet, je demande à une âme charitable de me diriger vers la lumière :D
J'ai un fichier Excel ou est présent deux onglets:
- BDD
- TCD
Sur l'onglet tableau croisé dynamique il y a un bouton"créer les pages" celle ci extrait autant de tcd que de champs en filtre de rapport.
j'ai un deuxième bouton "créer la page en cours" celle ci extrait l’extract brute de la bdd de la personne qui est sélectionné en filtre de rapport.
Mon problème est de savoir comment en gardant "TOUT"(NOM) en filtre de rapport avoir pour chaque nom la base de donnée lui correspondant
On m'a dit de mettre
Range("A1").PivotTable.ShowPages "Nom"
mais ça ne marche pas.
J'ai mi le document sur mon hotmail. Autrement, je mets en bas les codes présents sur mes docs.
Merci d'avance pour l'aide apporter depuis le début !
Anthooooony
Option Explicit
Private Sub CommandButton1_Click()
Range("A1").PivotTable.ShowPages
End Sub
Private Sub CommandButton2_Click()
Dim nomFeuille As String
With Range("A1").PivotTable
nomFeuille = .PivotFields("NOM").CurrentPage.Name
On Error Resume Next
Sheets(nomFeuille).Name = nomFeuille
If Err = 0 Then
If MsgBox("La feuille '" & nomFeuille & "' existe déjà!" & vbCrLf & "En cliquant sur oui elle sera détruite puis recréée avec les nouvelles données" & vbCrLf & vbCrLf & "Continuer?", vbQuestion + vbYesNo, "Création feuille " & nomFeuille) = vbYes Then
Application.DisplayAlerts = False
Sheets(nomFeuille).Delete
Application.DisplayAlerts = True
End If
End If
On Error GoTo 0
.TableRange1.Cells(.TableRange1.Cells.Count).ShowDetail = True
ActiveSheet.Name = nomFeuille
End With
End Sub
Dans le module
Option Explicit
Sub Macro2()
'
' Macro2 Macro
'
'
Range("H8").Select
Selection.ShowDetail = True
End Sub
anthooooony
Messages postés28Date d'inscriptionmercredi 1 février 2012StatutMembreDernière intervention17 avril 2013 8 févr. 2012 à 10:06
Et bien non tableau croisé Dynamique.
J'ai omis de faire quelque chose?, J'aurais du renseigner plus d'éléments plus expliquer les lignes de code?
Merci de me dire si j'ai mal fait mon post?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 8 févr. 2012 à 10:35
Bonjour,
pas certain d'avoir compris ton affaire de "TOUT"
Mais je pense deviner qu'il te suffit de faire une boucle
With Range("A1").PivotTable
For i = 1 To .PivotFields.Count ' <<<<<<=========================================
nomFeuille = .PivotFields(i).CurrentPage.Name
On Error Resume Next
Sheets(nomFeuille).Name = nomFeuille
If Err = 0 Then
If MsgBox("La feuille '" & nomFeuille & "' existe déjà!" & vbCrLf & "En cliquant sur oui elle sera détruite puis recréée avec les nouvelles données" & vbCrLf & vbCrLf & "Continuer?", vbQuestion + vbYesNo, "Création feuille " & nomFeuille) = vbYes Then
Application.DisplayAlerts = False
Sheets(nomFeuille).Delete
Application.DisplayAlerts = True
End If
End If
On Error GoTo 0
.TableRange1.Cells(.TableRange1.Cells.Count).ShowDetail = True
ActiveSheet.Nam = nomFeuille
Next ' <<<<<===============================================
End With
ou encore une boucle du genre
For each machin .PivotFields
nomFeuille = machin.CurrentPage.Name
..............
Next
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 8 févr. 2012 à 10:36
For each machin in
.PivotFields
bien sur
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Vous n’avez pas trouvé la réponse que vous recherchez ?
anthooooony
Messages postés28Date d'inscriptionmercredi 1 février 2012StatutMembreDernière intervention17 avril 2013 8 févr. 2012 à 11:08
Bonjour,
"pas certain d'avoir compris ton affaire de "TOUT" "
En faite je dois créer des rapports pour des agences en tableau croisé dynamique.
Seulement pour des raisons de confidentialité je dois trouver une solution de contourner les infos et des les limiter à l'agence. Comme je n'ai pas réussi à soit supprimer en masse toutes les connexions vers la bdd ca garderait la mise en page et d'interactivité du tcd juste sur l'agence(et limiterait la taille du fichier), ou de bloquer le champs agence parce qu'il bloque et le filtre et la possibilité d'avoir tt les elements du tcd sur l'agence!
Mon idée était de ressortir la bdd de chaque agence et dy associer les tcd
c'est des fois difficile d'associer un besoin et sa compréhension.
Il y a une erreur "variable non définie", ca s'arrete au for "i". je vais voir pourquoi.