Set focus inactif ? [RESOLU]

  • Initiateur de la discussion Initiateur de la discussion herve62
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Voilà, je connais le SETFocus , mais il ne fonctionne pas , j'ai vérifié dans ce forum et normalement
c'est bien ça .
donc mon Pb : dans le IF en cas de mauvais format il passe sur Set focus .... mais continue , et après : erreur !!! forcément

Code:
Private Sub DateOperation_afterupdate()
If Not IsDate(DateOperation) Then     ' Test du format DATE
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        DateOperation = ""
        DateOperation.SetFocus
End If
DateOperation.Value = DateValue(DateOperation.Value) ' Donne le format exemple :12/03/2013 meme si on rentre 12/03/13
End Sub
A part mettre un Label et un goto , ca marcherait
Mais il doit y avoir une Explication ???
Merci
 
Dernière édition:
Re : Set focus inactif ?

Bonjour,

Rajouter : Exit Sub (je te laisse deviner où)

Ou gérer dans Before_UpDate le controle et mettre Cancel=true si pas ok

exemple:
Code:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = Not IsDate(TextBox1.Text)
If Cancel Then MsgBox "Mauvaise pioche!"
End Sub


Attention c'est très restrictif!
A+
 
Dernière modification par un modérateur:
Re : Set focus inactif ?

Slt Hasco merci
test rapide N°1:
Oui sur .. avec exit sub après SET Focus ; mais ensuite ca va dans la box à coté
donc ne revient pas en box date !!
je poursuis avec l'autre ......essai
 
Re : Set focus inactif ?

bonjour tous🙂🙂

essai comme cela comme je comprends comme le dit l'ami Hasco 🙂 sans fichier??

exemple

Code:
  Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 If Not TextBox1 Like "##/##/####" Then _
 MsgBox "Format incorrect <> jj/mm/aaaa": Cancel = True
End Sub
Private Sub textBox1_keyPress(ByVal keyAscii As MSForms.ReturnInteger)
 If InStr("0123456789/", Chr(keyAscii)) = 0 Then keyAscii = 0
End Sub

on peut aller plus loin mais bon !!!!
 
Re : Set focus inactif ?

Je sais qu'il faut JOINDRE un fichier !!!!
Mais dans ce cas le fichier n'a pas grand chose d'autre que de reprendre les saisies et les recopier c'est ce que j'ai mis dans le POST qui importait !!

donc mis dans un fichier ou mis ICI > Ca va vous avancer ?? ( Oui ...pas de recopie chez vous , voir à la fin PS )
c'est un fichier d'essai Donc pratiquement RIEN dedans > je teste le SET FOCUS car je m'aperçois ( depuis des années) que c'est "Lunatique" !!!! ( ca marche .... ca marche plus ailleurs ..etc)
-------------------------------------------------
Autre :
exemple et demande claire en phrase(s) entière(s) et explicite

j'ai écrit :
avec exit sub après SET Focus ; mais ensuite ca va dans la box à coté
donc ne revient pas en box date !!
C'est une phrase claire , entière et explicite ??? ou yé perle pon franchesse ???
Fin d'ANECDOTE
------------------------
La preuve !!! je viens de reprendre le fichier pour le joindre et Il Fonctionne ( enfin je pense d'après ce que je vois chez moi) ???? Par contre maintenant ... GALERE pour sortir > ANNULER ?? sinon faut cliquer sur la X de la fenetre
Un Pb peut en cacher un autre !!!!
Donc là plus d'excuse > Vous avez le " bébé" en main !!!

PS : J'ai répondu à un Post cet am SANS Fichier : j'ai fait un copier/coller de son code dans mon fichier d'essai > test , puis réponse ( sauf une variable de plage inconnue mais PAS IMPORTANTE pour son Pb)
C'est pas la 1ere fois : je copie/colle le code et je teste ca prend 3min ... je suis pas en Prod. !!!
 

Pièces jointes

Re : Set focus inactif ?

bon courage pour la suite QUOTE]
pas besoin !! j'ai dit au gamin ( de la famille)> "débrouille toi" c'est KIF KIF non ??? 😀
moi ca m'est égal, c'était pour aider !!!

essai comme cela comme je comprends comme le dit l'ami Hasco sans fichier??
Bein ouais ... mais quand on le met , on a quand même ce genre de réponse !!!
 
Re : Set focus inactif ?

Re Hervé,
Grand bonjour Laetitia🙂🙂🙂

Hervé, en vb ou vba on ne peut pas avoir le beurre, l'agent du beurre et les yeux de la crémière.
Dernier essai à partir de ton fichier.

Code:
Private Sub DateOperation_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = Not IsDate(DateOperation.Text)
    If Cancel Then     ' Test du format DATE
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        DateOperation = ""
    Else
        DateOperation.Value = DateValue(DateOperation.Value) ' Donne le format exemple :12/03/2013 meme si on rentre 12/03/13
    End If
End Sub

Maintenant sur ces bases à toi de savoir si tu veux contraindre ou pas la saisie, avec les limites imposées par les évènements des controles de userFom.

A+
 
Re : Set focus inactif ?

Bon OK , j'ai testé : copier/coller de ton code dans MON fichier ( que je RE joint)
Ballot !! : ca marche pas ( voir image)

mais sans Fichier Joint .. je peux pas voir que ca a marché ?? non !

je remet les preuves
Bonne soirée

PS : je suis en mp avec 2 membres , je leur ai envoyé une appli qui fonctionne de A à Z ... bon ok 6h passées gratos; et on m'a dit , trop Bon , trop C........... , on se passionne avec ce que l'on veut ?
Je peux aussi dire Grand Bonsoir à Jean-Claude ( JGCL) ou Luc ( Mapomme) ... Robert ..etc
 

Pièces jointes

Re : Set focus inactif ?

Bonjour,

Bon OK , j'ai testé : copier/coller de ton code dans MON fichier ( que je RE joint)
Ballot !! : ca marche pas ( voir image)

J'ai vu l'image, ouvert ton fichier et visiblement tu ne t'es pas contenté d'un copier/coller puisque la ligne
Code:
DateOperation.Value = DateValue(DateOperation.Value) ' Donne le format exemple :12/03/2013 meme si on rentre 12/03/13
apparaît une deuxième fois à la suite du End if. Chose qui n'est pas dans le code que je t'ai donné, où elle apparait 1 seule fois entre
le else et le End If
!!!!! Pas étonant que cela plante.
 
Dernière modification par un modérateur:
Re : Set focus inactif ?

Bonsoir tous
Oui Hasco , je m'en suis aperçu ce matin .. je tremble un peu..tic ( je suis un grand nerveux interne .. on se refait pas) et donc apparemment hier quand j'ai collé mon bloc j'ai dû remonter d'une ligne et comme j'ai pas controlé de suite .... j'ai eu le résultat envoyé;;
Sinon Merci , bien sûr que ça marche ;;;
Pour SI .. , je garde aussi son option d'autant plus qu'il a mis le bouton ou il faut !! , j'étais en train de chercher comment Rester VISIBLE après une saisie ...... on arrive en ligne 255....et + ( donc ascenseur obligé pour recommencer...etc)
Voilà , je vais mettre RESOLU;
Bonne soirée et WE

PS : Tout à l'heure j'ai dit dans un Post que je joignais un fichier , j'ai cru avoir cliqué sur "envoyer" .... et on m'a répondu : ou est ton fichier ?... j'ai encore dû cliquer à coté
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
153
Réponses
2
Affichages
721
Réponses
4
Affichages
726
  • Question Question
Microsoft 365 Excel VBA
Réponses
14
Affichages
828
Réponses
12
Affichages
1 K
Réponses
22
Affichages
3 K
Retour