Bug d'ouverture d'UserForm

Bonjour tout le monde, je me trouve face à un problème avec mes UserForms lorsque je fais les manipluations dans un certain ordre. Pour faire simple mon UserForm demandant une valeur à rechercher dans le tableau s'ouvre alors qu'il ne devrait pas et me créé une réaction en chaine d'ouverture d'UserForm indésirable. J'ai beau chercher, je ne trouve pas la source du bug. Si quelq'un peu m'aider à trouver une solution, je lui serais très reconnaissant. Vous trouverez ci-joint un fichier exemple avec dedans une explication plus approfondie et claire du bug.

Merci d'avance

GLEDUC

bonjour,

je ne reçois pas de message d'erreur et je ne vois pas de quel bug tu parles. Que faut-il faire pour reproduire le problème ?

PS.: je pense qu'il y a beaucoup de choses à revoir pour rendre ton application plus conviviale et donc utilisable.

Salut Gleduc,

Perso, je ne rencontre à priori pas de problème particulier

Mais pourquoi mettre tous ces USF, alors qu'un seul suffirait...

A+

Edit : salut h2so4

Bonjour h2so4 et JExcelL2fr, merci pour l'interet que vous portez à mon problème.

Désolé, si vous ne rencontrez pas mon bug c'est que je n'ai pas du être assez clair dans mes explications pour l'avoir. Aussi il n'y a pas de message d'erreur juste l'UserForm2 qui s'ouvre et qui exécute une partie de mon programme sans raison.

Pour être plus clair : Quand je clique sur le bouton macro, L'USF1 s'ouvre et me demande si je veux créer une nouvelle ligne (oui), ou modifier une ligne éxistante (changer). Lorsque je créé une nouvelle ligne, il me demande via plusieurs USF les valeurs à rentrer dans cette ligne. A la fin nous avons une validation, toutes les valeurs sont rentrées dans la ligne et nous revenons sur l'USF1 automatiquement. Maintenant si je fait le démarche pour modifier une ligne des USF nous demandent des valeurs de la ligne pour la retrouver dans le tableau. Suite à la recherche il nous est demandé de cliquer sur l'un des boutons automatique ou manuel pour savoir comment on souhaite modifier les valeurs. Après avoir cliqué l'USF2 s'ouvre comme si il voulait recommencer la recherche de ligne, alors qu'il ne devrait pas. Le problème est là.

Ensuite je suis conscient et désolé que mon code soit mal fait, je sais qu'il est améliorable sur de très nombreux points, mais pour le moment je voudrais juste quelque chose qui fonctionne et que je puisse le simplifier ensuite.

Enfin j'utilise plusieurs USF parce que les valeurs doivent être scannées avec une douchette à code-barre et en théorie je ne dois pas avoir à toucher à l'ordinateur entre chaque prise de valeurs. J'avais essayé au début de ne faire qu'un seul USF mais il y avais plusieurs problèmes alors j'ai finalement créé plusieurs USF.

J'espère que vous arriverez à trouver le bug et merci encore pour votre aide.

GLEDUC

Edit : mauvaise idée de moi

Bonjour, après de nombreux testes j'ai réussi à empecher l'apparition des fenètres indésirables. Pour cela j'ai juste ajouté le code suivant lorsque j'appuie sur le bouton rechercher de l'USF11.

UserForm1.TextBox1.Text = ""

Mais maintenant j'ai un nouveau problème, lorsque l'USF11 se ferme certe je n'ai plus de fenètre qui apparaissent, mais la séléction de ma cellule change, elle va reprendre la première ligne non remplie du tableau tout en bas, c'est un peu embettant sachant que le but de la macro exécutée juste avant est de retrouver une ligne dans ce tableau. J'ai aussi tésté plusieurs solutions mais rien ne fonctionne.

Si quelqu'un sais quoi faire je suis intéréssé.

Merci d'avance.

Bonjour,

Aucun des USF n'est refermé quand le suivant est ouvert

Perso, j'aurais utilisé des variables de type Public pour transférer l'information.
Mais je ne sais pas si c'est vraiment réalisable dans ce cas

Bonne chance

Je sais que UserForm.Hide ne ferme pas l'UserForm mais le cache juste, mais que je fasse ça, que j'utilise Unload UserForm ou encore que je ferme la fenêtre moi même avec la croix le résultat est le même.

Y a t-il une autre solution pour belle et bien fermer un USF?

Re,

Y a t-il une autre solution pour belle et bien fermer un USF?

Pourquoi cette question

L'instruction Unload, le fait, mais si derrière vous faites un UserForm1.Textbox1.Value = "" et bien votre Userform1 est réouvert...

Vous ne semblez pas connaitre les bases

Désolé si je pose des questions idiotes, j'ai beaucoup appris en croisant les sources de différentes questions sur ce forum. J'ai lu les cours de ce site, mais même si ils sont très bien ils s'arrêtent à des utilisations très simple.

Merci quand même pour votre aide.

Re,

Il n'y a pas de "questions idiotes" juste étrange parfois

Internet ne suffit pas pour tout savoir, j'ai commencé en bouquinant...

Re,

finalement après de nombreuses recherche de solutions et de tentatives, j'ai ENFIN réussi à corriger mon bug, ça aura juste pris 1 jour et demi Je le partage ici si jamais ça peut aider quelqu'un avec le même problème que moi dans le future.

Je pense avoir compris qu'à la base l'USF s'ouvrait car j'avais toujours ma requête d'écrite dans une TextBox qui demande à l'utilisateur ce qu'il souhaite faire. Maintenant pourquoi le requête s'exécutait alors qu'elle n'est pas sencé, mystère. Donc comme je l'ai dit plus tôt sur ce topic j'ai juste eu à vider la TextBox pour le pas lancer la requête, avec :

UserForm1.TextBox.Text = ""

Ensuite un second problème apparaissait. Lorsque j'appuyais sur le bouton, certe il n'y avais plus d'USF qui souvrait mais ma séléction retombait tout en bas de mon tableau, alors que je venais de faire une fonction pour rechercher une certaine ligne. Au début j'avais juste pour code :

Private Sub CommandButton2_Click()
    Unload UserForm11
End Sub

Et en réalité la solution est des plus simple, il suffit juste de mettre la commande End juste après le Unload UserForm. Si j'ai bien compris à ce moment là tout les programmes quelque soit la macro sont stoppés. Et avec ça plus aucun problème. Je pense que cette méthode est un peu barbare et qu'il en existe une bien meilleure,mais bon le temps de la trouver celle-ci fera l'affaire. Maintenant si vous trouvez une autre manière de faire partagez la.

Merci encore à JExceL2fr et h2so4 pour votre aide.

Au revoir

Rechercher des sujets similaires à "bug ouverture userform"