IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Excel Discussion :

Perte de paramètres d'affichages après l'utilisation Affichage > Fenêtre > Nouvelle fenêtre [XL-2019]


Sujet :

Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 74
    Points : 139
    Points
    139
    Par défaut 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 émérite
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 2 878
    Points
    2 878
    Par défaut
    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é
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 74
    Points : 139
    Points
    139
    Par défaut
    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


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    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 billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    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é
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 74
    Points : 139
    Points
    139
    Par défaut
    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


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    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 billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    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é
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Août 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 74
    Points : 139
    Points
    139
    Par défaut Solution trouvée !
    Bonjour.
    J'ai testé le code de Pierre P., et cela ne fonctionne pas.
    Si j'ai plusieurs fenêtres :

    • La première (celle suffixée ":1" dans le titre de la fenêtre) est la "bonne" avec le paramétrage initial des volets figés et autres options d'affichage (quadrillage, entêtes, etc.)
    • Les autres n'ont pas de volets figés (etc.) et le but est donc des les ignorer lors de la sauvegarde.

    Si j'enregistre manuellement, comme l'a dit Pierre D. :

    • Depuis la première fenêtre : j'enregistre bien mes volets figés, et je les retrouve à la réouverture du fichier.
    • Depuis une autre fenêtre : je perds mes volets figés, car Excel enregistre la configuration de la fenêtre depuis laquelle l'enregistrement est demandé.


    Le problème vient du fait que cette notion de première fenêtre ou de fenêtres suivantes ne correspond pas à la notion d'indice i dans
    ThisWorkbook.Windows(i)
    utilisée dans le code de Pierre F.
    En effet, d'après mon petit test, l'indice 1 correspond toujours à la fenêtre active. Confirmé sur le support Microsoft :
    Notez que la fenêtre active est toujours Windows(1).
    Je me suis alors inspiré d'une autre discussion de ce forum :

    Le bon code, à appeler depuis Workbook_BeforeSave est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = ThisWorkbook.Windows.Count To 2 Step -1
    
    ThisWorkbook.Windows(ThisWorkbook.Name & ":" & i).Close Next


    Cela ferme toutes les fenêtres ouvertes en supplément (et donc sans les bons paramétrages d'affichage). La sauvegarde se fait donc forcément sur la "première" fenêtre, celle qui a le bon paramétrage.
    Inutile ensuite de définir en VBA les volets à figer (etc.) dans chacun de mes 20+ onglets !
    Merci à Pierre D. et Pierre F. pour vos contributions !
    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 .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/07/2007, 15h37
  2. [MySQL] Paramètrer ma requete après sélection dans un formulaire
    Par philippef dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 08/11/2006, 13h39
  3. Reprise de controle de la console après l'utilisation de man
    Par Madmac dans le forum Administration système
    Réponses: 3
    Dernier message: 20/02/2006, 08h17
  4. Modifier les paramètres d'affichage sous Fedora core 4
    Par al1_24 dans le forum Matériel
    Réponses: 5
    Dernier message: 19/01/2006, 16h39
  5. Pb de modofication des paramètres d'affichage
    Par hsoussou dans le forum Windows 2000/Me/98/95
    Réponses: 2
    Dernier message: 22/12/2005, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo