Gestion TCD par macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chipriote

XLDnaute Occasionnel
Bonjour à toutes et à tous,

J'aurais besoin de votre aide pour gérer un TCD par macro à savoir:
Mettre le N° de semaine en automatique en fonction d'une donnée saisie dans une cellule de la feuille.

Merci d'avance pour votre aide à tous
 

Pièces jointes

Re : Gestion TCD par macro

Bonjour Chipriote

essaye le code ci-dessous, attenttion ne fonctionne pas avec le tcd que tu nous as transmis, données altérées.... j'ai été obligé d'en créer un autre...

Code:
Sub test()
Dim p As PivotItem
For Each p In ActiveSheet.PivotTables(1).PivotFields("N° sem début").PivotItems
    p.Visible = True
Next p
For Each p In ActiveSheet.PivotTables(1).PivotFields("N° sem début").PivotItems
    If p.Value <> Range("B10").Value Then p.Visible = False
Next p
End Sub

bon après midi
@+
 
Re : Gestion TCD par macro

je pense que c'est du au fait que certain items sont dans la liste mais son vide en réalité.
La question est donc peut-on rafraichir les item pour que ce soit ceux réelement contenu dans le TCD.
Désolé si les termes employés ne sont pas les bons mais j'épère être clair.
 
Re : Gestion TCD par macro

j'ai essayé le code ci-apres
Sub Test()
Sheets("TCD").Select
a = "L12"
b = "L14"
c = "L15"
d = "L16"
e = "L17"
f = "L24"
g = "L25"
h = "L27"
i = "L28"
j = "L30"
k = "L40"
Dim p As Object, x, y, z, w
x = "" & Sheets("GRAPH").Range("h1") & ""
y = "" & Sheets("GRAPH").Range("i1") & ""
z = "" & Sheets("GRAPH").Range("j1") & ""
w = "" & Sheets("GRAPH").Range("k1") & ""
'Application.ScreenUpdating = False
On Error Resume Next
With ActiveSheet.PivotTables(a).PivotFields("N° sem début")
For Each p In .PivotItems
p.Visible = True (le problème est ici)
Next
For Each p In .PivotItems
If p.Name <> x Or y Or z Or w Then p.Visible = False
Next
End With
'Application.ScreenUpdating = True
On Error GoTo 0
End Sub

Ne fonctionne pas car en cas de presence d'erreur il passe carrement à l'autre étape
Je pense qu'il faudrait pouvoir faire un on error et passer sur next p (le pb est comment faire)
 
Dernière édition:
Re : Gestion TCD par macro

Bonjour tout le monde,

Je n'ai pas pu ouvrir ton dossier car j'ai un problème avec mon excel, mais si j'ai bien compris je crois que la solution est celle-là:


With ActiveSheet.PivotTables(a).PivotFields("N° sem début")
For Each p In .PivotItems
On Error Resume Next
p.Visible = True (le problème est ici)
On Error GoTo 0
Next

Bonne chance
Al
 
Re : Gestion TCD par macro

Merci pour ta réponse,
J'ai essayé ton code, il ne fonctionne pas!
Le problème reside sans doute dans le fait que la semaine demandée peu ne pas etre dans le TCD

La question reste donc de savoir comment faire peut-etre pour tester la présence ou non de la semaine dans le TCD
 
Re : Gestion TCD par macro

Salut Chipriote,

C'est au niveau des déclarations de variables que cela coinçait. En déclarant SemNr et PiC en as byte ça a marché.

En espérant que c'est bien le résultat que tu cherchais.
Salutations
Al
 

Pièces jointes

Re : Gestion TCD par macro

Re Salut,

En fait tu n'es même pas obligé de passer par la variable PiC du moment que la variable de tes Nr de semaine est déclarée en as byte ou en string, mais pas en variant.

Slts
Al
 

Pièces jointes

Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
219
Réponses
4
Affichages
231
Réponses
1
Affichages
177
Réponses
6
Affichages
196
Réponses
7
Affichages
357
Réponses
0
Affichages
305
Réponses
7
Affichages
395
Retour