ExecuteExcel4Macro et with

Bonjour a tous ,

Dans un souci d'optimisation de mon code je modifie avec les chenims les plus précis pour éviter les interaction avec les autres classeurs.

une choses que je n'arrive pas à comprendre

mon code qui marche suite à optimisation

Private Sub Workbook_Open()

Application.ScreenUpdating = False

    With Application.Windows(ThisWorkbook.Name)

        .WindowState = xlNormal
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False    

    End With
        Application.DisplayStatusBar = False
        Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"

    UserForm1.Show False

Application.ScreenUpdating = True

End Sub

Alors que celui ci ne marche pas

[code]Private Sub Workbook_Open()

Application.ScreenUpdating = False

With Application.Windows(ThisWorkbook.Name)

.WindowState = xlNormal

.DisplayHorizontalScrollBar = False

.DisplayVerticalScrollBar = False

.DisplayWorkbookTabs = False

.DisplayStatusBar = False

End With

Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"

UserForm1.Show False

Application.ScreenUpdating = True

End Sub[/quote]

ligne en erreur Application .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"

je suis obligé de sortir mon .DisplayStatusBar = False de mon with pour que ExecuteExcel4Macro passe .

Vraiment du mal à comprendre pourquoi ???

Bonjour,

L'erreur est bien sur DisplayStatusBar

capture d ecran 650

Ce n'est pas une propriété de Application.Windows(ThisWorkbook.Name) mais directement de Application

Private Sub Workbook_Open()

Application.ScreenUpdating = False

    With Application.Windows(ThisWorkbook.Name)

        .WindowState = xlNormal
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False

    End With

    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
    Application.DisplayStatusBar = False

Application.ScreenUpdating = True

End Sub

Merci beaucoup moi qui me focalisais sur execute4macro .

Existe t'il un moyen pour ne rien voir des actions d'excel , le screenupdating une fois réactivité modifié le classeur je souhaiterais un affichage instantané.

Peut êtres masqué le classeur le temps de la modif ? La du coup je ne sais pas comment faire ?

Bonjour

Merci beaucoup moi qui me focalisais sur execute4macro .

Existe t'il un moyen pour ne rien voir des actions d'excel , le screenupdating une fois réactivité modifié le classeur je souhaiterais un affichage instantané.

Peut êtres masqué le classeur le temps de la modif ? La du coup je ne sais pas comment faire ?

Pour masquer le classeur

Application.Visible = False

Mais attention !

En cas de bug, l'application sera toujours invisible... donc figée

Peut êtres masqué le classeur le temps de la modif ? La du coup je ne sais pas comment faire ?

D'accord avec Bruno , c'est un jeu un peu dangereux. Surtout tout ce qui est application.xxxxxxxxxxxx c'està-dire toutes les propriétés ou méthodes de application et non du fichier via Application.Windows(ThisWorkbook.Name).yyyyyyyyyyy

Merci pour vos réponses.

Pas de souci si erreur je ré affiche avec un gestionnaire d'erreur.

Mais effectivement dangereux.

Auriez vous une astuces pour éviter l'affichage des modif en sortie de screen updating ?

Rechercher des sujets similaires à "executeexcel4macro"