Sélections intempestives lors d'ouverture d'userform

Bonjour,

J'ai un problème lors de l'ouverture d'un userform. Lorsque j'appelle l'userform1 en cliquant par exemple dans la cellule G8 de la feuille "Répertoire", la liste correspondante apparaît bien dans l'userform mais des sélections parasites y apparaissent de manière spontanée.

J'ai remarqué que ces sélections intempestives apparaissent lorsque je remplis une cellule qui se situera, lorsqu'il sera appelé, au-dessous de l'userform . Il n'y a par contre aucun problème lorsque je décale la feuille dans un sens ou dans l'autre et qu'il n'y a donc plus aucune superposition de la cellule concernée avec l'userform. Le problème se posera alors à la cellule qui sera placée sous l'userform, etc... Pas de soucis pour les colonnes ou les lignes qui ne sont pas concernées par une potentielle superposition avec l'userform.

C'est assez compliqué à exposer donc rien de tel qu'une capture d'écran et le fichier en question.

Quelqu'un pourrait-il m'aider à résoudre ce problème afin d'éliminer toutes ces sélections parasites ?

Merci d'avance

16userform1.xlsm (33.49 Ko)
selection parasite

Bonsoir,

il semble que ce soit du à un "reste" du clic de la souris alors que le USF est en cours de mise en place...
Pour corriger, il "suffit" d'ajouter : Application.Wait (Now + TimeValue("00:00:01")) avant le ".Show".

Une autre solution est de mettre à "0" le paramètre StartUpPosition du USF, puis mettre ".Left = 0" juste après le : "With UserForm1" comme cela le USF ne se trouve pas sous le clic souris lors de sa préparation.

D'autres vous trouveront d'autre solution peut-être...

@ bientôt

LouReeD

Bonsoir,

Merci LouReed pour tes solutions. Je pense que tu as en effet mis le doigt sur l'origine du problème.

J'ai essayé les 2 possibilités et j'ai opté pour la première qui ralentit juste un peu l'ouverture de USFd'1 seconde mais qui élimine par contre le problème. J'ai toutefois pu observer quelques ratés comme si la ligne du code était parfois sautée lors de sa lecture. C'est peut-être aussi mon PC qui devient vieux....

La 2ème solution déplace l'USM vers le coin supérieur gauche de la feuille mais du coup, le problème se reporte sur les cellules placées sous l'USF à cet endroit. L'impact est moins important bien sur vu qu'une seule colonne est concernée.

Si quelqu'un avait la solution pour ne pas ralentir l'ouverture de l'USF, je suis preneur bien entendu.

Encore merci pour ton aide

Cordialement

Bonjour,

J'ai la solution : le code du USF est à placer dans le USF...

Mais cela va engendrer des modifications de codage...

@ bientôt

LouReeD

Essayez de déplacer Application.Wait juste avant le Whith Userform1, il n'y aura peut-être plus le bug du "saut de ligne".

@ bientôt

LouReeD

Bonjour,

Merci pour ta réponse.

J'ai essayé de déplacer "Application.Wait" avant le Whith Userform1 mais le bug apparait alors à tous les coups comme si l'instruction était ignorée.

Cordialement

Bonjour,

alors qu'elle est la solution "finale" adoptée ?
Après au lieu de Application.Wait qui "fige" l'application pendant le temps indiqué et qui est limité à "la seconde près", vous pouvez utiliser la boucle Do Loop suivante avec l'instruction DoEvents qui permet de temporiser l'exécution d'un code tout en laissant la main sur l'application et elle est précise au millième de seconde près :

Tempo = Timer
Do
     DoEvents
Loop While Tempo + 0.005 > Timer

Ici la tempo va durée 0.005 secondes.

@ bientôt

LouReed

Bonjour,

La boucle Do Loop proposée par LouReed fonctionne parfaitement.

Aucun ralentissement de l'application et plus de sélections intempestives d'item dans l'USF après bientôt 1 mois d'utilisation quotidienne de l'appli.

On peut donc considérer le sujet comme résolu.

Encore merci.

A bientôt

Bonjour,

Merci pour votre retour et vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "selections intempestives lors ouverture userform"