[RESOLU] problème de focus sur une textbox

mysterauto

XLDnaute Nouveau
Bonjour à tous, j'ai un petit problème:
je suis en train de créer un petit programme de gestion de magasin par code barre; pour l'instant, je navigue entre 3 userform ( gestion, OutilsSortis et accueil) ceci grâce à des codes barres pour passer de l'une à l'autre

la première apparition des 3 userform ne pose pas de problème mais à la deuxième apparition, j'ai beau mettre le focus par une instruction, le textbox n' a pas de curseur clignotant et le programme ne peut continuer saufà faire un clic sur le userform ce que je ne veut pas.

en gros les lignes de code de la textbox:

Code:
Private Sub TextBox1_Change()


If gestion.TextBox1.Text = "3020000000005" Then gestion.Hide: OutilsSortis.Show 0: gestion.TextBox1.Value = "": TextBox1.SetFocus
If gestion.TextBox1.Text = "3040000000003" Then gestion.TextBox1.Value = "": accueil.TextBox1.SetFocus: gestion.Hide: accueil.Show 0:

End Sub


vous avez surement des idées mais je ne suis qu'un codeur très occasionnel, faites preuve de patience. merci d'avance
 

mysterauto

XLDnaute Nouveau
voilà, vous pouvez télécharger le fichier et voir le résultat.
quand je passe de accueil à gestion, pas de problème
que je passe de gestion à accueil, pas de problème
mais si je veux repasser en gestion, le userform accueil n'a plus le focus et le lecteur de code barre ne peut plus envoyer les caractères vers la textbox1. si on clique sur la text box, le focus revient mais une seule fois; il faut recommencer à chaque changement de userform.

ce prg est prévu pour fonctionner avec un lecteur de code barre mais vous pouvez taper les chiffres au clavier, ça marche aussi

merci à tous
 

Pièces jointes

  • gestion magasin CB 1.xls
    82 KB · Affichages: 50

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Quel dilemme ! jouer entre USF n'est pas simple le mode Modal intervient donc moi je mets le principal à True et les autres à false le mettre dans les propriétés de l'USF, comme ça pas besoin de vérifier dans VBA
ensuite tu ajustes les ordres de tabulation des objets , là je t'ai mis TEXTBOX en tête dans tous les USF donc le focus va se mettre automatiquement
aussi par précaution avec utilisation de plusieurs USF sans données communes > faire UNLOAD au lieu de hide cela fait une RAZ et permet aussi de réinitialiser si besoin est, là ce n'est pas le cas
enfin le me.repaint rien à faire ici d'après ce que j'ai lu c'est plutôt Access
Remet tes codes car pour tester j'ai changé ( c'était trop long et risque d'erreur)
J'ai testé toutes les possibilités x fois ça marche bien
 

Pièces jointes

  • gestion magasin CB 1.xlsm
    42.2 KB · Affichages: 36

Si...

XLDnaute Barbatruc
Bon_soir

Bonjour
Quel dilemme ! jouer entre USF n'est pas simple ..
mais si ..., trop d'infos et on se noie.
Les 3 contrôles "TextBox" ayant leur propriété TabIndx à 0 (Cf)

Accueil
VB:
Private Sub TextBox1_Change()
  If TextBox1 = 3020000000005 Then Unload Me: OutilsSortis.Show
  If TextBox1 = 3030000000004 Then Unload Me: gestion.Show
End Sub
gestion
VB:
Private Sub TextBox1_Change()
  If TextBox1 = 3020000000005 Then Unload Me: OutilsSortis.Show
  If TextBox1 = 3030000000004 Then Unload Me: accueil.Show
End Sub
Outils
VB:
Private Sub TextBox1_Change()
  If TextBox1 = 3040000000003 Then Unload Me: gestion.Show
  If TextBox1 = 3030000000004 Then Unload Me: accueil.Show
End Sub
 

mysterauto

XLDnaute Nouveau
un très grand merci, c’était pas trop compliqué mais je n'y arrivait pas; j'avais pensé à fermer le usf mais je n'avais pas trouvé la bonne formule.

d'ailleurs, il n'est pas proposé dans la liste déroulante quand on écrit du code???
repaint était un restant de test dans mes nombreuses tentatives de codage

j'ai voulu mettre les textbox en non visible car j'en ai juste besoin pour relever les codes mais ça ne marchait plus, j'ai donc mis un label pardessus, ce n'est pas très propre comme méthode mais ça fonctionne, aurais tu une meilleure piste?

un grand merci en tout cas pour ce coup de main; je vais pouvoir continuer à travailler sur ce programme
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour tous
mais si ..., trop d'infos et on se noie.
Si t'avais vu mon appli vers 2011/12 , 4 usf avec transmissions de données même avec les Barba on y a passé du temps !
Sinon Mysterauto je vois pas bien ce que tu veux masquer ? la textbox ? tu vas dans ses propriétes et tu mets Visible=false ou ausi dans USF Initialize et si ta douchette attaque direct ta sub change ( j'avais utilisé au boulot mais il y a plus d e10ans !!:rolleyes:) tu remets avec le code à visible= true
 

mysterauto

XLDnaute Nouveau
merci oui je ne veux pas voir la textbox qui ne sert à rien qu'à collecter les données de la douchette. mais à priori, si je mets la textbox.visible=false, la sub ne voit pas les données issues de la douchette donc pas de renvoi possible vers un autre usf.
 

Si...

XLDnaute Barbatruc
Bon_jour
Bonjour tous
Si t'avais vu mon appli vers 2011/12 , 4 usf avec transmissions de données même avec les Barba on y a passé du temps !
Je ne l'ai pas vue donc, bien que ni BarbaTruc, ni BarbaChose … je ne peux pas infirmer mon propos o_O.

On peut rendre des contrôles non visibles en jouant sur leurs propriétés (sans macro) comme je l'ai fait dans l'exemple.

Nota : n'ayant pas de douchette, je ne me suis pas préoccupé des initialisations des zones sensibles.

@Léti ;): content de te saluer et au plaisir d'autres rencontres :D!
 

Pièces jointes

  • Usf vers Usf.xlsm
    84.5 KB · Affichages: 28

herve62

XLDnaute Barbatruc
Supporter XLD
Dernière édition:

Si...

XLDnaute Barbatruc
Re

Un merci est amplement suffisant donc pour le "résolu" on peut (doit pour moi) s'en abstenir ; la preuve :cool::

hervé62, as-tu la liste de toutes les propriétés sous les yeux car, après la remarque de mysterauto, j'ai écarté justement celle que tu cites tout en initialisant d'autres (cf. image du fichier joint).

Maintenant je ne sais pas comment les nombres sont installés dans leur zone et ne vois pas l'utilité de lire des données chiffrées qui ne me parlent pas donc j'ai fait l'impasse sur cela (et tout le reste qui n'est pas présenté mais qui semble ne pas poser de soucis, nest-ce pas mysterauto;)).
 

Discussions similaires

Réponses
10
Affichages
345

Membres actuellement en ligne

Statistiques des forums

Discussions
312 069
Messages
2 085 041
Membres
102 764
dernier inscrit
nestu