Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Actualisation auto TCD avec liste déroulante Controle ActiveX

safranien

XLDnaute Occasionnel
Bonjour à tous

je sollicite votre aide pour un problème que je n'arrive pas à résoudre.
Dans mon fichier, je sélectionne, via le menu déroulant en L3, les sites que je veux interroger. Après sélection, je récupère des données (colonne B) et j'actualise mon TCD avec le code (actualisation du TCD après détection de changement de valeur en L3) :

Dans la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L3")) Is Nothing Then
Call Refresh
End If
End Sub

Dans le module :
Sub Refresh()
Application.EnableEvents = False
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
Application.EnableEvents = True
End Sub

Cela fonctionne bien cependant, le fichier contenant à la base pas mal de graphiques etc avec le TCD, je suis obligé de le zommer à 70%. Ce qui fait que la liste déroulante est toute petite. J'ai voulu contourner ce problème en créant une liste déroulant Contrôle ActiveX qui vient changer le nom en L3. J'y arrive mais le problème est que lorsque je passe par le ControleActiveX, la macro d'actualisation du TCD ne semble pas détecter que le nom a changé en L3 et il ne se passe rien, je suis obligé d'actualiser le TCD manuellement.

Pourriez vous m'aider à résoudre ce problème?

Bien qu'ayant réduit au max les données présentes dans mon fichier, il reste encore trop volumineux pour pouvoir être joint à ce message. Je mets donc un lien pour pouvoir le récupérer :




Dans la même veine, j'ai une autre question :

J'ai un autre fichier sur le même principe (choix d'un site par menu déroulant) mais beaucoup plus complet et très lourd. Je suis obligé de le mettre en calcul manuel. Lorsque je sélectionne un site, je clique sur calculer maintenant. Le fichier va alors récupérer les données liées au site et il y a ensuite toute une série de calculs. Lorsque les calculs sont finis, je clique sur un bouton pour actualiser tous les TCD et autres calculs restant avec la commande :

Sub Bouton2_Cliquer()
ActiveWorkbook.RefreshAll
Sheets("Graph Hebdo").Select
ActiveSheet.Calculate
Sheets("Nuage - Annuel").Select
ActiveSheet.Calculate
Sheets("Nuage - Hebdo").Select
ActiveSheet.Calculate
Sheets("Nuage - Quotidien").Select
ActiveSheet.Calculate
Sheets("Nuage - Dérivées (MA)").Select
ActiveSheet.Calculate
Sheets("Puissances").Select
ActiveSheet.Calculate
Sheets("Graph Consos").Select
End Sub

Pour ce fichier je ne veux pas lancer l'actualisation après détection d'un changement de site dans la liste déroulante, mais une fois que tous les calculs que j'ai lancés sont finis. Est possible? Par exemple lier le lancement de la macro quand le fichier passe en statut "Prêt"?
Et est-ce possible d'obliger le fichier à être en calcul manuel lorsqu'on l'ouvre?

Merci d'avance pour votre aide.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…