Excel VBA
Ofeu
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
Ofeu Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Ofeu Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis bloqué sur une langage VBA pour mettre des conditions sur des textbox, je vous explique :
J'ai fait un formulaire avec des combobox et textbox.
Lorsque je saisie mes deux combobox, j'ai textbox18 (égale à la concaténation de mes deux combobox)
Sur une textbox, je veux que soit accepté la saisie entre une certaine plage (min et max) que se trouve sur la feuil "Ranges_1" et entre les cellules "A3:M34". Ma colonne A correspond au textbox18, et donc cela change lorsque je modifie mes 2 combobox.
Sur Excel, ça marche bien quand je mets une condition entre min et max dans "validation de donnée"
=RECHERCHEV($D$6;Ranges_1!$A$3:$M$34;3;FAUX), ici la valeur min est situé dans la colonne 3
=RECHERCHEV($D$6;Ranges_1!$A$3:$M$34;4;FAUX), ici la valeur max est situé dans la colonne 4
Sur la feuil Excel, ça marche super bien, mais je voudrais cela sur un formulaire Useform.
Voici mon codage auquel je doit procéder pour 4 textbox (ici je vous présente pour 2) :
Textbox6, le minimum acceptable est situé dans la colonne 3 et le maximum dans la colonne 4 (en fonction du textBox18 préalablement choisis)
Textbox7, le minimum acceptable est situé dans la colonne 6 et le maximum dans la colonne 7 (en fonction du textBox18 préalablement choisis)
Quand j'ai appliqué la formule ci-dessous, ça marche bien la plage acceptable (min - max) pour TextBox6, cependant pour TextBox7, je ne peux mettre aucune valeur qu'il montre ma message "See ranges for this fatty acids".
Ci-dessous mon code VBA :
Merci beaucou de votre aide
Lucas
Je suis bloqué sur une langage VBA pour mettre des conditions sur des textbox, je vous explique :
J'ai fait un formulaire avec des combobox et textbox.
Lorsque je saisie mes deux combobox, j'ai textbox18 (égale à la concaténation de mes deux combobox)
Sur une textbox, je veux que soit accepté la saisie entre une certaine plage (min et max) que se trouve sur la feuil "Ranges_1" et entre les cellules "A3:M34". Ma colonne A correspond au textbox18, et donc cela change lorsque je modifie mes 2 combobox.
Sur Excel, ça marche bien quand je mets une condition entre min et max dans "validation de donnée"
=RECHERCHEV($D$6;Ranges_1!$A$3:$M$34;3;FAUX), ici la valeur min est situé dans la colonne 3
=RECHERCHEV($D$6;Ranges_1!$A$3:$M$34;4;FAUX), ici la valeur max est situé dans la colonne 4
Sur la feuil Excel, ça marche super bien, mais je voudrais cela sur un formulaire Useform.
Voici mon codage auquel je doit procéder pour 4 textbox (ici je vous présente pour 2) :
Textbox6, le minimum acceptable est situé dans la colonne 3 et le maximum dans la colonne 4 (en fonction du textBox18 préalablement choisis)
Textbox7, le minimum acceptable est situé dans la colonne 6 et le maximum dans la colonne 7 (en fonction du textBox18 préalablement choisis)
Quand j'ai appliqué la formule ci-dessous, ça marche bien la plage acceptable (min - max) pour TextBox6, cependant pour TextBox7, je ne peux mettre aucune valeur qu'il montre ma message "See ranges for this fatty acids".
Ci-dessous mon code VBA :
Private Sub TextBox6_Change() Sheets("Model_FA").Range("D15").Value = TextBox6.Value Sheets("Model").Range("E16").Value = TextBox6.Value Dim myRange3 As Range Set myRange3 = Worksheets("Ranges_1").Range("A3:M34") If Not IsNumeric(TextBox6.Value) And TextBox6 <> "" Then MsgBox "Entry a number" TextBox6 = "" ElseIf TextBox6.Text < WorksheetFunction.VLookup(TextBox18.Text, myRange3, 3, False) Or TextBox6.Text > WorksheetFunction.VLookup(TextBox18.Text, myRange3, 4, False) And TextBox6 <> "" Then MsgBox "See ranges for this fatty acids" TextBox6 = "" End If End Sub Private Sub TextBox7_Change() Sheets("Model_FA").Range("D16").Value = TextBox7.Value Sheets("Model").Range("E17").Value = TextBox7.Value Dim myRange4 As Range Set myRange4 = Worksheets("Ranges_1").Range("A3:M34") If Not IsNumeric(TextBox7.Value) And TextBox7 <> "" Then MsgBox "Entry a number" TextBox7 = "" ElseIf TextBox7.Text < WorksheetFunction.VLookup(TextBox18.Text, myRange4, 6, False) Or TextBox7.Text > WorksheetFunction.VLookup(TextBox18.Text, myRange4, 7, False) And TextBox7 <> "" Then MsgBox "See ranges for this fatty acids" TextBox7 = "" End If End Sub
Merci beaucou de votre aide
Lucas
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Excel VBA
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
3 réponses
Bonjour,
A première vue sans creuser, je me demande si ce n'est pas
TextBox7.Value à la place de TextBox7.Text
De mémoire je crois qu'il y a un problème de focus sur le formulaire
A première vue sans creuser, je me demande si ce n'est pas
TextBox7.Value à la place de TextBox7.Text
De mémoire je crois qu'il y a un problème de focus sur le formulaire
Bonjour,
En y regardant de plus prés, je pense que le problème vient sans doute des fonctions "Change" :
Il faut essayer en les remplaçant respectivement par
TextBox6_AfterUpdate() et TextBox7_AfterUpdate()
A tester
En y regardant de plus prés, je pense que le problème vient sans doute des fonctions "Change" :
Il faut essayer en les remplaçant respectivement par
TextBox6_AfterUpdate() et TextBox7_AfterUpdate()
A tester
Bonjour Pilas31,
Merci de la disponibilité, j'ai changé Change pour AfterUpdate mais cela n'a pas résolu... j'ai expliqué plus en détaille les problèmes que j'ai avec mon fichier-joint dans cet page :
https://forums.commentcamarche.net/forum/affich-35541397-langage-vba-vlookup-et-conditions?1-IAxHp-8yrkYzTvxJ_ZOMt9LQ6JsPwt--yyp0QmFHw
Merci !!!
Merci de la disponibilité, j'ai changé Change pour AfterUpdate mais cela n'a pas résolu... j'ai expliqué plus en détaille les problèmes que j'ai avec mon fichier-joint dans cet page :
https://forums.commentcamarche.net/forum/affich-35541397-langage-vba-vlookup-et-conditions?1-IAxHp-8yrkYzTvxJ_ZOMt9LQ6JsPwt--yyp0QmFHw
Merci !!!
Bonjour,
comme son nom l'indique un textbox contient du texte.
Si tu saisis "123", tu vas envoyer le texte "123" et non le nombre 123 sur ta feuille.
Le plus souvent excel le traduira en nombre si besoin lors de l'utilisation.
Mais rechercher "123" n'est pas pareil que de rechercher 123
Ceci étant posé essaie avec :
partout où c'est nécessaire.
eric
PS : si il te reste des erreurs il faudra déposer un fichier.
Et sur ta feuille supprime tout alignement.
Un texte s'aligne à gauche, un numérique à droite. Tu verras si tu as des vrais nombres ou des textes.
comme son nom l'indique un textbox contient du texte.
Si tu saisis "123", tu vas envoyer le texte "123" et non le nombre 123 sur ta feuille.
Le plus souvent excel le traduira en nombre si besoin lors de l'utilisation.
Mais rechercher "123" n'est pas pareil que de rechercher 123
Ceci étant posé essaie avec :
Sheets("Model_FA").Range("D15").Value = cdbl(TextBox6.Value)
partout où c'est nécessaire.
eric
PS : si il te reste des erreurs il faudra déposer un fichier.
Et sur ta feuille supprime tout alignement.
Un texte s'aligne à gauche, un numérique à droite. Tu verras si tu as des vrais nombres ou des textes.
Bonjour Eric,
J'ai essayé, mais il y toujours des erreurs. J'ai changé également textbox6.Text pour TextBox.Value (et vice-versa), mais il accepte seulement quand j'ai un textbox.text (alors que ce sont des valeurs)...
Voici le fichier
https://www.cjoint.com/c/HHxlHYoNbAg
Merci bcp de vos disponibilités !
J'ai posé une nouvelle question sur le forum en expliquant en détaille toutes mes problèmes de débutants ;-)
https://forums.commentcamarche.net/forum/affich-35541397-langage-vba-vlookup-et-conditions?1-IAxHp-8yrkYzTvxJ_ZOMt9LQ6JsPwt--yyp0QmFHw
Lucas
J'ai essayé, mais il y toujours des erreurs. J'ai changé également textbox6.Text pour TextBox.Value (et vice-versa), mais il accepte seulement quand j'ai un textbox.text (alors que ce sont des valeurs)...
Voici le fichier
https://www.cjoint.com/c/HHxlHYoNbAg
Merci bcp de vos disponibilités !
J'ai posé une nouvelle question sur le forum en expliquant en détaille toutes mes problèmes de débutants ;-)
https://forums.commentcamarche.net/forum/affich-35541397-langage-vba-vlookup-et-conditions?1-IAxHp-8yrkYzTvxJ_ZOMt9LQ6JsPwt--yyp0QmFHw
Lucas
Merci pour la disponibilité Pilas31. Effectivement j’avais essayé de changer Text pour Value, mais le problème est toujours là.
J’ai essayé de regarder sur d’autres forums, mais je n’arrive pas trouver une solution.
Cdlt
Lucas