[VBA E]erreur incompatibilité de type que je ne comprend pas

  • Initiateur de la discussion Initiateur de la discussion treza88
  • 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 !

treza88

XLDnaute Occasionnel
Bonsoir à tous

J'ai un petit souci avec le code ci-dessous, je ne comprend pourquoi quand le textbox1 est vide et que je le quitte il met renvoie le message d'erreur "incompatibilité de type" sur la ligne en rouge.

Si quelqu'un pouvait m'expliquer pourquoi ça m'arrangerait.
Pour palier a ce probleme j'ai rajouté un test sur une valeur nul sur le code tout en dessous, apparemment ça fonctionne, mais etait-ce la bonne solution?
Sinon quelle autre solution existe.

Merci




Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim c As Variant
Dim h1 As Date
Application.ScreenUpdating = False
TextBox1.Value = TimeValue(Left(Application.Text(TextBox1.Value, "00.00"), 2) _
& ":" & Right(TextBox1.Value, 2))
c = TextBox1.Value
h1 = TextBox1.Value
TextBox1.Value = Format(c, "hh\H mm")
End Sub





Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim c As Variant
Dim h1 As Date
Application.ScreenUpdating = False
If TextBox1.Value <> "" Then
TextBox1.Value = TimeValue(Left(Application.Text(TextBox1.Value, "00.00"), 2) _
& ":" & Right(TextBox1.Value, 2))
c = TextBox1.Value
h1 = TextBox1.Value
TextBox1.Value = Format(c, "hh\H mm")

End If
End Sub
 
Re : [VBA E]erreur incompatibilité de type que je ne comprend pas

salut,

essaie ceci, bien que j'ai l'évènement LostFocus et pas Exit :
Code:
Private Sub TextBox1_LostFocus()
    If TextBox1.Value <> "" Then
        TextBox1.Value = Replace(TextBox1.Value, ".", ":")
        TextBox1.Value = Format(TextBox1.Value, "hh\H mm")
    End If
End Sub
 
Re : [VBA E]erreur incompatibilité de type que je ne comprend pas

d'ou vient ce Exit ?

1. j'utilise la barre d'outils "Boite à outils Contrôles", ou je sélectionne "Zone de texte" que je dépose ensuite sur la feuille.
2. ensuite, clic droit sur l'objet et visualiser le code
3. dans le combobox de droite, choisir LostFocus au lieu de Change

et là, normalement, ça marche
 
Re : [VBA E]erreur incompatibilité de type que je ne comprend pas

Salut

Desolé j'ai omis de dire que montextbox etait dans une frame et elle meme sur une userform.
D'ou le exit dans les procedure de l'objet textbox.

Toutes mes excuses.
 
Re : [VBA E]erreur incompatibilité de type que je ne comprend pas

alors c'est ça :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1.Value <> "" Then
        TextBox1.Value = Replace(TextBox1.Value, ".", ":")
        TextBox1.Value = Format(TextBox1.Value, "hh\H mm")
    End If
End Sub


j'ai testé et ça marche
 
Re : [VBA E]erreur incompatibilité de type que je ne comprend pas

apparemment ce contrôle ActiveX n'a pas tout les même noms d'évènements selon qu'on le pose sur une feuille ou un formulaire.
sortir du textbox :
  • sur un formulaire, c'est Exit
  • sur une feuille Excel, c'est LostFocus
les mystères de Bill...

voili, voilou 🙂
 
- 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
3
Affichages
896
Retour