Signaler

Bug graphique du classeur suite à la modification d'une feuille [Résolu]

Posez votre question RaphCes - Dernière réponse le 23 sept. 2016 à 16:39
Bonjour Mesdames, Messieurs,
N'ayant pas trouvé de problématiques semblables déjà abordée, je vous expose ici un problème soumis par un collègue, que je rencontre depuis mon poste également, dont je cherche la cause source...
L'opération est simple et se déroule sous Excel 2016 :
1. Une feuille "A", remplie, est dupliquée dans son propre classeur, manuellement (clic-droit, copie etc...). 2. La copie est sélectionnée, puis renommée "B".
3. Sans que les onglets soient tous les deux sélectionnés (j'insiste sur ce point car je pensais au début à une erreur de manipulation de mes collègues occasionnant la même opération sur toutes les feuilles du classeur sélectionnée par inadvertance...) , admettons que je supprime une des lignes dans la feuille "B".
4. La feuille "A" est ensuite sélectionnée. L'onglet est en surbrillance mais le contenu de la feuille est exactement le même que celle de la feuille "B" (la ligne supprimée dans la feuille "B" n'est pas visible dans la feuille "A", donc).
Là ou ça devient très drôle :
Dans la feuille "A", les cellules sont tout à fait sélectionnables, et la ligne supprimée au point 3 "répercutée" sur la feuille "A" contient en réalité la bonne information (celle qu'elle est sensée avoir puisque je n'ai rien supprimé dans la feuille "A"), mais en arrière plan. Je peux donc lire les informations dans la feuille "A" (qui n'apparaissent toutefois pas dans la table), en parcourant la ligne prétendument supprimée cellule par cellule et en lisant l'information (réellement) contenue dans l'interface de saisie...
J'ai codé en VBA un ScreenUpdating forcé à chaque changement de feuille, puis carrément en macro exécutée manuellement, mais rien n'y fait. Le fichier est en réseau, mais lorsqu'il est enregistré (bug inclus), fermé puis ré-ouvert, les feuille "A" et "B" sont revenues à la normale (la ligne supprimée en "B" l'est, mais la ligne existe toujours dans la "A", comme voulu...
Pas d'erreurs à l'ouverture, les lignes "cachées" n'en renvoient pas non-plus... Pas de macro...
Je vous remercie bien chaleureusement par avance pour vos hypothèses sur le problème, je suis à la limite de mes compétences actuelles pour tenter de résoudre ce mystère.
Afficher la suite 
Utile
+1
moins plus
Bonjour,

C'est un problème que j'ai eu du mal à résoudre. Il vient du ScreenUpdating=false avec nouvelle interface SDI apparue avec Excel 2013 : L'onglet affiché n'est pas l'onglet actif !!!

Donc tu crois agir sur un onglet et en réalité tu agis sur un autre !

la solution ici : http://www.commentcamarche.net/forum/affich-33931181-bug-affichage-suite-a-l-execution-du-code#3
RaphCes 5Messages postés vendredi 23 septembre 2016Date d'inscription 23 septembre 2016 Dernière intervention - 23 sept. 2016 à 15:13
Re,

Alors, après exécution du code, Excel crée 3 nouveau classeur vides (rien d'anormal jusqu'ici), lorsque l'écran se met à jour, en revanche, le classeur qui s'active est le premier créé, w1 donc, et pas w2...

J'ai vérifié, aucune macro complémentaire dans le fichier n'est activée... Ce qui est étrange c'est que la solution fonctionne très bien pour afficher la bonne feuille (w2) mais, même modifiée, n'a aucune incidence sur les feuilles à l'intérieur d'un classeur, à moins que je m'y prenne mal (mais le code s’exécute sans accroche) :

Sub ForEachSheetsDoEvents()

Dim ws As Worksheet
For Each ws In Worksheets
DoEvents
Next ws

End Sub
Répondre
Patrice33740 4996Messages postés dimanche 13 juin 2010Date d'inscription 27 septembre 2016 Dernière intervention - 23 sept. 2016 à 15:41
S'il n'est confidentiel, peux-tu mettre ton classeur sur http://cjoint.com/
Et décrire précisément la manipulation qui provoque le bug.
Je vais essayer de le reproduire (et peut-être de trouver une solution).
Répondre
RaphCes 5Messages postés vendredi 23 septembre 2016Date d'inscription 23 septembre 2016 Dernière intervention - 23 sept. 2016 à 15:49
Merci pour la proposition, malheureusement c'est un fichier d'entreprise que je n'exploite pas personnellement, il est donc confidentiel.

La manipulation ayant mis au jour le bug est (sous réserves d'autres manipulations inhabituelles ou non-testées) :
Sélection d'une ou plusieurs lignes dans une feuille (depuis la barre latérale avec les numéros de ligne pour sélectionner l'ensemble de la ligne), clic droit puis supprimer.

Après, impossible d'afficher d'autres onglets...
Répondre
Patrice33740 4996Messages postés dimanche 13 juin 2010Date d'inscription 27 septembre 2016 Dernière intervention - 23 sept. 2016 à 16:24
Je ne reproduit pas le bug.

C'est peut-être le fichier qui est buggé :
- Ouvres un fichier vierge et crées autant de feuilles que dans l'original
- renommes les feuilles vierges comme dans l'original
- feuilles après feuilles, couper la plage de cellules utilisées de l'original pour la coller dans le nouveau fichier.
Enregistres le nouveau fichier
Répondre
RaphCes 5Messages postés vendredi 23 septembre 2016Date d'inscription 23 septembre 2016 Dernière intervention - 23 sept. 2016 à 16:39
Je viens de le faire, ça marche !

C'était le fichier qui générait le bug, merci beaucoup pour la solution, évidemment je n'avais pas pris la peine de vérifier si une "duplication" du fichier était suffisante. Je pense que le réseau local a planté le fichier lors d'un précédent enregistrement.

Merci beaucoup, Fabrice, pour le temps consacré !
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !