Dynamique d'un USF : 2 questions (simples)

Bonjour à toutes et à tous,

Un Usf c'est génial à utiliser mais (à mon petit niveau de connaissance) j'ai encore 2 problèmes avec lui :

1) quand il s'affiche, ça me bloque les ascenseurs et je ne peux donc plus faire défiler ma page de données. Y a t-il un moyen de débloquer ce blocage (! ?)

2) pour valider une donnée saisie par Usf il faut :

  • soit cliquer (1 fois) sur le bouton OK quand j'en ai pogrammé un
  • soit double Enter
Y-a t-il un moyen de valider par un simple Enter ?

bonjour,

1) Un USF bien conçu devrait se suffire à lui-même : Tu ne devrait donc pas avoir à consulter la feuille pour remplir ton USF...

Toutefois celà peut arriver en particulier dans un cas : Quand il faut sélectionner toute une zone de la feuille (pour définir la zone d'impression par exemple...)

Pour cela il suffit de définir la proprité ShowModal de l'USF = False bien sur tu peux aussi utiliser cette propriété dans ton cas, mais il faut êre conscient que ce n'est qu'un pis aller...

2) Oui et Non ça se discute. A la limite dans certains cas, tu n'a même pas besoin de Enter. Faut voir la bête...

A+

Bonjour galopin01,

Certes, mon USF n'est certainement pas du mieux de chez mieux . . .

Voici un micro fichier de test pour te montrer ce que je fais .

1) Comme tu pourras le constater, l'usf se place au niveau de la dernière ligne utilisée, mais si je veux, avant de saisir, me reporer à la ligne n° 3 par exemple, je ne le peux pas car les ascenseurs sont en panne !

2) Comme tu pourras aussi le constater, pour valider ma saisie il me faut un double Enter ou bien cliquer sur "Valider" Un seul "Enter" serait merveilleux.

Bonsoir

Bah te vexe pas : ce n'est qu'une remarque ! Faut bien commencer par quelque chose...

Ma réponse 1 est toujours valable : mettre

ShowModal = False ( dans les propriétés de l'USF)

Euh... ton micro fichier doit être vraiment mini ou alors j'ai vraiment besoin de lunettes

Bon j'attend de voir la bête !

A+

Mille excuses, j'ai oublié de joindre la . . . bête !

https://www.excel-pratique.com/~files/doc2/LO5pBForum.xls

Bonjour,

Ce que tu demandes (y compris pour le point 1) ne me semble vraiment pas relever de l'utilisation standart des USF. Pour ma part je ne m'aventurerai pas dans cette voie.

Il faudra attendre de voir si quelqu'un d'autre accepte de t'accompagner dans ce sens mais ça me parait un peu prématuré.

A+

Bonjour,

peux tu me dire dans quelle mesure l'utilisation que je fais de cet USF n'est pas standard. En toute bonne foi, je croyais le contraire.

Note : l'exemple que je donne est bien sûr "bidon" en réel, je m'en sers pour demander à l'utilisateur d'entrer :

Date,

Montant,

N° de pièce etc . .

Bonjour pelerin, galopin,

1) Comme a dit galopin, mettre le userform en mode non modal, voici une image explicative :

pelerin1

2) Pour une validation par simple Enter, l'idée est de détecter l'appui sur la touche Enter

et de gérer cet évènement. Pour cela, tu peux utiliser l'évènement KeyDown. Dans le

code de ton userform, rajoute ces lignes de code :

Private Sub SD_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Range("AA1").Value = SD.Value
        Unload Autres
    End If
End Sub

À noter que le code :

        Range("AA1").Value = SD.Value
        Unload Autres

a été repris à partir du code lorsque tu cliques sur le bouton OK (évènement DOK_Click)

Cordialement

9test-v3.xlsm (33.73 Ko)

Bonjour vba-new et galopin01,

Excuses pour le retard à répondre mais papy a dû s'occuper de ses petits fils .. .

Merci de votre sollicitude mais je commence à déprimer :

En ce qui concerne l'usf en "false modal" en exécution mon usf s'affiche "vierge" ! et le programme boucle. . . je ne peux m'en sortir que par Ctrl Alt Suppr. A la limite, je peux me passer sans problème de cette possibilité.

En ce qui concerne la validation par Enter et la procédure passée par vba-new ça fonctionne merveilleusement bien quand je la mets dans mon tout petit extrait de programme que je vous ai transféré, mais quand je remplace mon code dans l'usf du programme réel par la procédure SD_KeyDown avec test si KeyCode = 13 . . . ça ne fonctionne plus ! Voilà ce que j'ai fait :

J'ai supprimé le bouton OK et la procédure associée et à la place de cette procédure supprimée j'ai mis la procédure "SD_KeyDown" et derrière le If KeyCode = 13 j'ai placé le code qu'il y avait dans ma procédure précédente du bouton OK. Ca me semble juste ! ?

Bonjour pelerin, forum,

En effet, vaut mieux ne pas mettre l'userform en non modal! Je n'avais pas testé!

Pour le 2è point, peux-tu poster le code du bouton OK de ton fichier et le code que tu as mis pour le bouton Enter?

Bonjour,

Désolé de répondre avec retard : Papy galopin doit gérer beaucoup de priorités...

Pourquoi ne pas mettre l'USF en Non Modal ?

Pourquoi ne pas supprimer le bouton Ok ?

Pourquoi utiliser la touche Tab et non la touche Enter ?

Autant de questions auxquelles il n'est pas simple de répondre simplement : Pour prendre un raccourci un peu elliptique, je dirais que je conseille d'abord à mes débutants de commencer par des choses simples : Ne pas mettre la charrue avant les boeufs !

VBA est un outil merveilleux pour ceux qui connaissent déjà bien Excel

Les USF c'est merveilleux à condition de déjà bien maîtriser VBA.

Les modules de classe c'est la 4ème dimension de VBA ! (réservé à ceux qui arbitrent aux JO d'Excel)

En ce qui concerne l'usf en "false modal" en exécution mon usf s'affiche "vierge"

C'est clair que si tu attendais que le fait de cliquer sur ta feuille remplisse directement le contrôle, là tu as tout faux : Le mode non modal permet seulement de prendre l'air ailleurs un moment, mais n'interrompt pas la macro qui est toujours en attente d'une saisie dans le contrôle. Donc il faut reprendre la main en cliquant sur le USF puis sur le contrôle et faire un Copier/ Coller des infos... Si j'ai bien compris ce que tu essayes de bricoler !

Quand ton VBA boucle un peu trop longtemps : Ctrl+Pause est plus approprié que Ctrl+Alt+Suppr

Ctrl+Pause est un outil de débogage puissant... qui permet de reprendre la main sur la macro dans la période de mise au point.

Cependant il convient d'utiliser Ctrl+Pause assez rapidement disons... la plupart du temps moins d'une minute :

C'est certain que si tu vas d'abord boire ton café, fumer une cigarette et que tu réalises après la sieste que ta mémoire est complètement saturée... Là YAPUKA éteindre le micro à la barbare !

La validation par Key... est complexe et pose plus de problèmes qu'elle n'en résoud :

Abandonne cette idée. Penche toi d'abord sur le b+a = ba des commandes courantes.

Bon, Enfin ce n'est que mon opinion hein...

A+

Bonjour galopin, forum,

Donc, que penses-tu qu'il faut faire galopin?

Bonsoir,

Le fait de mettre l'USF en mode non modal ne gêne en rien son exécution....

Cependant, ce n'est pas sûr que le mode "non modal" serve à quelque chose....

Perso, je l'utilise souvent, lors de l'élaboration de mes codes, afin de pouvoir interférer entre les feuilles et l'USF

Ensuite, je le repasse en "modal", afin d'éviter tout bug... ou à moins que j'appelle un deuxième USF dans le code....

PS, Pélerin, je t'avais fourni une solution, dans un de tes fils précédents.....

Tu ne veux pas en entendre parler, c'est tout à ton honneur, mais regarde bien le code du fichier fourni, toutes les réponses à tes questions s'y trouvent.....

Bonne soirée

vba-new a écrit :

Donc, que penses-tu qu'il faut faire galopin?

bonjour,

Euh... Je n'ai pas d'autre réponse par rapport aux questions posées et au fichier joint. Se mettre en quête d'un bon tuto sur les USF peut-être ?

Il me semble que c'est aussi rendre service aux gens que de leur dire qu'ils cherchent dans une mauvaise direction ou qu'il y a des pré-requis qui ne semblent pas assimilés.

Ceci dit, je ne suis pas suffisament présent dans ce forum pour connaître les uns et les autres et en particulier pélerin, donc je peux me tromper. mébon...

A+

Bonsoir,

Il me semble que c'est aussi rendre service aux gens que de leur dire qu'ils cherchent dans une mauvaise direction ou qu'il y a des pré-requis qui ne semblent pas assimilés.

Galopin....

Tu as des connaissances, c'est un fait....

Tu peux aider une personne dans le besoin, sans aucun doute....

Cependant, tes réflexions à 2 Balles....

Regarde la réponse que j'avais donné à Pélerin, avant de t'avancer dans n'importe quelle hypothèse....

https://forum.excel-pratique.com/viewtopic.php?p=75702&highlight=#75702

Une solution lui a été proposée, il n'a pas voulu la prendre....

Faire du n'importe quoi, je ne sais pas le faire....

Je te passe le relais....

Bonne soirée

Bonjour à . . . tous ceux qui sont intervenus,

je suis désolé que ma question génère un débat un peu houleux entre galopin01 et cousinhub . . .

Je suis bien conscient que, comme cela transparaît dans les commentaires de mes tuteurs du moment, je suis loin du niveau et il vaudrait mieux que je maîtrise le ba ba, mais d'un côté cousinhub dont je salue les compétences me propose une solution qui me passe au dessus des neurones et de l'autre côté je ne trouve pas de bonne documentation pour progresser . . . progressivement.

J'avais prévu d'envoyer un fichier avec une validation par Enter qui ne fonctionne pas (l'erreur vient évidemment de moi : code de l'usf ou code dans la macro) mais je crois que je vais garder ça dans ma poche pour ne pas être trop ridicule. je vais garder ma validation par bouton OK en double clic.

Solution primaire pour un Excelman pas excellent, juste primaire.

8tarifs-grade.xlsx (27.23 Ko)
Rechercher des sujets similaires à "dynamique usf questions simples"