Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre habitué
    Perte de paramètres d'affichages après l'utilisation Affichage > Fenêtre > Nouvelle fenêtre
    Bonjour,
    Mon problème est simple, mais j'ai peur que la solution ne soit complexe...

    Je partage un fichier Excel 2019 avec un collègue.
    Dans ce fichier, je définis minutieusement sur chaque onglet (+ de 20), en fonction de l'affichage attendu par nos chefs :
    • Les lignes et colonnes d'entête figés (menu Affichage > Fenêtre > Figer les volets)
    • L'affichage ou pas du quadrillage (menu Affichage> Afficher > Quadrillage)

    Le problème, est que mon collègue travaille dans ce fichier avec 2 fenêtres grâce à la fonction Affichage > Fenêtre > Nouvelle fenêtre.
    La seconde fenêtre ouverte ne reprend pas mes définitions "minutieuses" ci-dessus. Et quand il enregistre ses modification, tout mon paramétrage est perdu au profit du paramétrage par défaut d'un nouveau classeur Excel :
    • Aucune ligne ni colonne figée, sur aucun onglet
    • Quadrillage affiché sur tous les onglets

    Et je suis donc régulièrement obligé de redéfinir mes lignes et colonnes figées sur chaque onglet, et d'enlever le quadrillage.

    Existerait-il des moyens d'éviter ou contourner ce problème ?
    Par exemple en forçant la nouvelle fenêtre à reprendre les paramètres d'affichage de la précédente ?

    Les solutions par modification des options de Excel, par macro VBA ou autres astuces sont les bienvenues !
    Merci d'avance à ceux qui pourront se pencher sur cette question...
    Cdlt,
    Didier

    Après avoir obtenu satisfaction, par respect pour les contributeurs, et aussi pour faciliter la lecture de tous, merci de marquer la discussion en et de marquer les réponses qui ont aidé avec des .

  2. #2
    Membre éclairé
    Bonjour

    Malheureusement pour vous, je n'ai pas de solution. C'est effectivement un comportement que j'avais déjà remarqué.

    La seule chose qui fasse que tous vos paramétrages puissent être conservés c'est que votre collègue ferme d'abord la nouvelle fenêtre qu'il a ouverte PUIS qu'il enregistre. Mais surtout pas de fermer la fenêtre 1 avant d'enregistrer. Sinon, effectivement, tout est perdu.

    En espérant pour vous que quelqu'un aura une solution apportant plus d'optimisme que cette solution basée sur la manipulation.

    En espérant malgré tout que cela aide

    Bonne soirée

    Pierre Dumas
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre habitué
    Citation Envoyé par Pierre Dumas Voir le message

    En espérant malgré tout que cela aide
    Bonjour Pierre.
    Merci, cela m'éclaire déjà un peu.
    Je vais voir si je peux le convaincre de faire comme ça :
    • Fermer d'abord la nouvelle fenêtre
    • Puis enregistrer et fermer le fichier

    Mais je crains qu'il n'oublie une fois sur deux...

    J'espère toujours que quelqu'un aura une solution automatisée qui évite les oublis…

    Cordialement,
    Didier
    Cdlt,
    Didier

    Après avoir obtenu satisfaction, par respect pour les contributeurs, et aussi pour faciliter la lecture de tous, merci de marquer la discussion en et de marquer les réponses qui ont aidé avec des .

  4. #4
    Responsable
    Office & Excel

    Salut.

    Les propriétés du groupe Fenêtre de l'onglet Affichage du ruban sont bien liées à une fenêtre. Perso, j'aurais apprécié que l'option de quadrillage se trouve également dans le groupe Fenêtre, puisque c'est une propriété de fenêtre.

    Dès lors, pour être certain de fermer les fenêtres supplémentaires et de remettre les paramètres corrects à celle qui reste, je ne vois qu'une solution en VBA

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ManageWindows()
      Dim i As Long
     
      For i = ThisWorkbook.Windows.Count To 2 Step -1
        ThisWorkbook.Windows(i).Close
      Next
     
      Feuil5.Activate
      Range("c2").Activate
      With ActiveWindow
        .FreezePanes = True
        .DisplayGridlines = False
      End With
    End Sub


    Ce code sera appelé par exemple lors de la demande de fermeture
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      ManageWindows
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre habitué
    Merci Pierre !
    Ta proposition est très intéressante.
    Mais si j'ai bien compris l'observation du "premier" Pierre (Dumas), si mon collègue enregistre son fichier avant de demander sa fermeture, ça ne va pas marcher. Il faudrait forcer à fermer les fenêtres secondaires comme tu le fais avant d'enregistrer (j'espère que l'évènement existe, je n'ai pas encore pu vérifier…).
    je regarde plus précisément la semaine prochaine, et je vous tiens au courant...
    Cdlt,
    Didier

    Après avoir obtenu satisfaction, par respect pour les contributeurs, et aussi pour faciliter la lecture de tous, merci de marquer la discussion en et de marquer les réponses qui ont aidé avec des .

  6. #6
    Responsable
    Office & Excel

    La procédure ManageWindows (indépendante d'un évènement, ce qui toujours mieux que de "coder dans l'évènement", voir mon billet qui explique pourquoi) peut être appelée au départ d'un évènement, par exemple ThisWorkbook_BeforeClose ou ThisWorkobook_BeforeSave. C'est à toi de déterminer sur quoi tu veux appeler la gestions des fenêtres
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre habitué
    Solution trouvée !
    Ce message n'a pas pu être affiché car il comporte des erreurs.
    Cdlt,
    Didier

    Après avoir obtenu satisfaction, par respect pour les contributeurs, et aussi pour faciliter la lecture de tous, merci de marquer la discussion en et de marquer les réponses qui ont aidé avec des .

###raw>template_hook.ano_emploi###