Execution caché

jovutath Messages postés 9 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 21 mai 2007 - 18 mai 2007 à 21:44
jovutath Messages postés 9 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 21 mai 2007 - 21 mai 2007 à 11:44
j'execute la mise en forme d'un graphique dynamique croisé par une macro qui démarre quand je ferme l'onglet ou se trouve ma base de donné. Mais je ne veux pas que la macro m'ouvre l'onglet ou se trouve le graph, donc que tout s'execute de maniere caché.

Voici la partie de ma macro ou est effectué la mise en forme du graph


'mise en forme du graph M3/M4
Application.ScreenUpdating = True
Sheets("Graph M3 M4").Select
    ActiveChart.PlotArea.Select
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:= _
        False, HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:= _
        False, ShowValue:=False, ShowPercentage:=True, ShowBubbleSize:=False
    ActiveChart.SeriesCollection(1).DataLabels.Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .ReadingOrder = xlContext
        .Position = xlLabelPositionInsideEnd
        .Orientation = xlHorizontal
    End With
    Selection.Font.Bold = True
    Selection.AutoScaleFont = True
    With Selection.Font
        .Name = "Arial"
        .Size = 12
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .Background = xlAutomatic
    End With

5 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 mai 2007 à 00:09
Peut-être en changeant le début ?
Application.ScreenUpdating = False

Puis tu le remets à True à la fin de la procédure

MPi
0
jovutath Messages postés 9 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 21 mai 2007
19 mai 2007 à 09:37
non ca ne change rien, enfin il n y a plus les clignottement pendent l'execution de la macro, tout se fait de maniere caché. Mais il m'ouvre toujours l'onglet ou se trouve le graph.
Je pense que mon probleme viens de la 3em ligne
Sheets("Graph M3 M4").Select

car je lui dis bien "Select" et ça doit être ça qui m'ouvre l'onglet, mais je ne connais pas de commande qui me permet d'appliquer la macro a cette onglet de maniere cache (sans que l'onglet ne s'ouvre).

Pour être ptetre plus clair dans mon problème, j'ai un document dans le quel je met une basse de donnée et je fait plusieurs tableaux et un graphique a partir de cette base de donnée.
Donc quand j'ai fini de renseigner ma base de donnée je veux que les mise a jour de mes tableau dynamique se fasse ainsi que la mise en forme de mon graph mais pas forcement regarder le graph.
Bref si quelqu un peut m'aider
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
20 mai 2007 à 14:46
ScreenUpdating = False
va empêcher de voir les changements de feuilles ou autres. En fait, tout est "figé"
Ensuite, pour les besoins de ton programme tu sélectionnes ta feuille
Sheets("Graph M3 M4").Select

Jusque là, l'écran devrait toujours être sur la feuille originale au moment du ScreenUpdating = False

Tu continues ton traitement, et à la fin, tu reviens sur la feuille de départ (que je ne connais pas...)

Finalement, tu remets à True le ScreenUpdating

Donc, en gros, tu es dans Feuil1 et tu mets Screenupdating à false
Tu fais ton traitement, tu reviens à Feuil1 et tu remets à True.
En principe, tu n'auras vu aucun changement à l'écran...

MPi
0
jovutath Messages postés 9 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 21 mai 2007
21 mai 2007 à 11:36
j'ai bien compris MPI, mais mon problème est que je ne vais pas forcément dans la même page, il y a 8 pages dans mon fichier Exel, et je veux établir une modification du graphique qui est dans mon ma feuille "Graph M3 M4" lorsque je quitte la feuille "Données" sans que l'on voi cette modif, mais je peux très bien vouloir aller dans n'importe quel autres feuilles du document sans vouloir me retrouver forcement dans la feuille "Graph M3 M4", et c'est la que je bloc.

Je ne suis pas sur que je sois bien claire, au quel cas merci de me le dir
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jovutath Messages postés 9 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 21 mai 2007
21 mai 2007 à 11:44
voici mon code au complet ça peut ptetre aider a mieu comprendre.
donc je masque bien l'execution de ma macro, mais quand tout est fini il m'ouvre forcement la feuille ou se trouve mon graphique donc "Graph M3 M4", alors que je ne veux pas forcement cette feuille.






Private Sub Worksheet_Deactivate()
'masque le déroulement de la macro ATTENTION il y a une 2em partie en fin de macro
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "En Cours..." 'dans la barre d'etat


Application.ScreenUpdating = False


'remplacement des M3 et M4 en M3/M4
    Cells.Replace What:="M3", Replacement:="M3/M4", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="M4", Replacement:="M3/M4", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False


'mise a jour de tout les tableau dynamique croisé
        'ActiveSheetall.PivotTables().PivotCache.Refresh


 


'commande pour que l'on ne vois pas les modif a l'écrant
ScreenUpdating = False


'mise en forme du graph M3/M4
Sheets("Graph M3 M4").Select
    ActiveChart.PlotArea.Select
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:= _
        False, HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:= _
        False, ShowValue:=False, ShowPercentage:=True, ShowBubbleSize:=False
    ActiveChart.SeriesCollection(1).DataLabels.Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .ReadingOrder = xlContext
        .Position = xlLabelPositionInsideEnd
        .Orientation = xlHorizontal
    End With
    Selection.Font.Bold = True
    Selection.AutoScaleFont = True
    With Selection.Font
        .Name = "Arial"
        .Size = 12
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .Background = xlAutomatic
    End With


'fin du masque du déroulement de la macro
Application.ScreenUpdating = True
Application.StatusBar = oldStatusBar


End Sub
0
Rejoignez-nous