[VBA] Souci Windows 10/11

Bonjour à toutes et à tous,

J'ai codé de multiples Userforms pour un traitement des non-conformités dans mon établissement.

Tout fonctionnait parfaitement bien sous Windows 10. Malheureusement, Windows 11 a pointé le bout de son nez et depuis, passer 4 Userforms, Excel se fige et se ferme automatiquement (crash).

J'ai beau retourner le problème dans tous les sens, je me permets de demander votre aide.

Merci à vous,

Lucas

Bonjour,

A première vue cela fait penser à un problème de ressources. Quelques pistes :

1. Avez-vous le même souci si vous ouvrez un autre fichier excel ?
2. Votre fichier contient-t-il de nombreuses formules ou nombreuses feuilles et lignes avec données ?
3. Démarrez votre fichier en maintenant la touche MAJ appuyée pour désactivez l'utilisation de macros. Si cela ne fonctionne pas, allez dans les "Paramètres du Centre de gestion de la confidentialité" et désactivez les macros en cliquant sur l'option "Désactiver toutes les macros sans notification" (cela désactive toutes les macros).
4. Allez dans l'outil développeur --> Icône "Complément COM" et si vous en avez désactivez-les tous.

A chaque point effectué ci-dessus, redémarrez Excel et ré-ouvrez votre fichier pour tester. Ne démarrez pas Excel depuis votre fichier. Donc faites en deux étapes--> Excel puis votre fichier via menu Ouvrir

Cordialement

Bonjour Dan,

Merci pour ta réponse.

1 - Lorsque je prends le même fichier Excel, mais moins poussé en développement, tout fonctionne, que ce soit sur Windows 10 et 11. Il n'y a que ma dernière version qui pose problème sous Windows 11.

2 - Oui, j'ai 9 tables + 25 userforms pour tous mes menus/pop up comprise. J'ai également de nombreuses lignes de code sur 2 userforms. Tous les userforms ont une structure similaire, notamment pour déclarer les API Windows pour afficher l'userform dans la barre de taches et pouvoir l'imprimer à la bonne échelle.

3 - Cela ne fonctionne malheureusement pas, le fichier Excel crash dès l'ouverture du 4ème userform d'affilé.

4 - Tous les complément COM sont désactivés

(J'ai bien suivi votre procédure d'ouverture du fichier Excel).

Merci à vous,

Lucas

Bonjour

Pt 1: Là vous avez peut être touché un point important. Il faudrait savoir l'évolution entre les deux dans le fichier.
Pt 3 : Il y avait deux choses à faire séparément dans ce point. Je ne pense pas que vous les avez-vous faites d'autant que vous parlez de crash lors de l'ouverture de l'usf4. Ce qui n'est pas possible si vous désactiver les macros.

Crdlt

Bonjour Dan,

La seule différence entre les 2 versions est l'affichage des Userforms dans la barre de tâche.

J'étais censé observer quoi au point 3 ?

Ce qui me pose souci, c'est pourquoi ça marche parfaitement bien sous Windows 10 et plus sur Windows 11.

Merci de ton aide,

Lucas

re

J'étais censé observer quoi au point 3 ?

Si vous relisez il y a deux points. Ouvrir le fichier avec MAJ appuyée ou ouvrir en désactivant les macros.

La seule différence entre les 2 versions est l'affichage des Userforms dans la barre de tâche.

C'est à dire ?

J'ai ouvert votre fichier. Que dois-je faire sur la première USF ?

Bonjour,

J'ai fini par bidouiller et résoudre mon problème.

Le "Unload Me" était la cause du souci.

Ne me demande pas pourquoi, me "Me.hide" à la place règle mes soucis.

Désolé pour le dérangement,

Lucas

Bonjour

Le "Unload Me" était la cause du souci.

Je pense plutot que vous devriez inverser les deux lignes d'instructions. Donc mettre le UNLOAD me avant le END SUB. Là vous fermer l'USF puis vous appelez une autre.

Me.hide" à la place règle mes soucis.

Hum.. cette instruction ne décharge pas l'usf mais la met à l'arrière plan. Donc elle reste active...

Deux remarques par rapport au fichier :
- Pourquoi avoir fait une USF qui ne sert qu'à signaler que le formulaire se fermera dans 20 min ? Une simple MSGBOX faisait aussi bien l'affaire
- Il y a deux usf identiques frmFermetureAutomatiqueA et frmFermetureAutomatiqueDC. si vous voulez absolument faire une usf, une seul suffirait

A vous de voir... mais gardez en mémoire que l'on a vite une usine à gaz avec excel et qu'il vaut mieux rester le plus simple possible

Crdlt

Bonjour Dan,

Effectivement, en changeant de place de Unload Me, cela fonctionne correctement.

Concernant les 2 userforms de fermeture, je les ai effectivement fusionnés en un seul userform.

Merci de ton aide,

Lucas

Bonjour à vous,

J'aurai néanmoins une question. Lorsque j'ouvre mes Userforms, de façon aléatoire, un erreur "method visible of object _application failed" apparaît.

Si quelqu'un aurait une idée du pourquoi du comment, je suis preneur.

Lucas

Bonjour,

Il me faudrait un exemple pour regarder sinon à première vue si je traduis, cela semblerait venir d'un objet masqué
Une idée --> Vous n'avez pas utilise de HIDE dans vos userforms ?

Edit : Dans votre fichier que j'ai conservé (pourquoi l'avoir supprimé dans ce fil ?), j'en vois déjà dans l'USF frmDéclarationCotation et dans frmactions


Par rapport à votre post précédent

Concernant les 2 userforms de fermeture, je les ai effectivement fusionnés en un seul userform.

Comme je vous ai écrit une simple MSGBOX suffisait. A voir de voir bien entendu, mais je ne vois pas l'intérêt de créer des Userform pour mettre juste un message d'avertissement. C'est un peu compliquer le fonctionnement de votre fichier. Mon conseil (même si vous ne le demandez pas ), est de rester le plus simple possible avec les Userform
exemple : A voir mais vous auriez pu mettre simplement un message général à l'ouverture du fichier qui signale que le fichier se fermera après 20 minutes

Bonjour Dan,

Le problème que j'avais avec les MsgBox, c'est qu'elles arrêtent le timer. Le seul moyen que j'ai trouvé pour contourner cela, était de passer par un Userform annexe.

(Je prends avec plaisir tout vos conseils !)

Lucas

Le problème que j'avais avec les MsgBox, c'est qu'elles arrêtent le timer.

Bah non pourquoi cela arrêterait ?
Il faut voir comment vous l'aviez programmé
Mais bon j'aime pas trop les histoires de timer et cellule qui clignote avec excel. On ne sait jamais ce qu'excel voit réellement.

J'avais réalisé un truc pareil pour mon boulot afin de pourvoir fermer un fichier qui était resté ouvert sans être utilisé.

Prenez le petit fichier ci-joint pour essai et qui est basé sur ce que j'avais réalisé pour mon boulot il a une quizaine d'années :
- Msgbox à l'ouverture
- Faites des modifications que vous voulez
- Ensuite laisser le fichier sans l'utiliser pendant 30 secondes...

13classeur-timer.xlsm (16.90 Ko)
Rechercher des sujets similaires à "vba souci windows"