Prb de recherche de valeur
Bonjour,
Je suis actuellement confronté à un problème.
J'ai construit une macro composée d'un bouton commande qui ouvre une userform.
Cette userform permet de croiser des valeur en ligne et en colonne d'un tableau excel.
La voici :
Option Explicit 'oblige à déclarer toutes les variales
Private Sub ComboBox1_Change()
Call cherche
End Sub
Sub cherche()
Dim c As Double
Dim l As Double
l = Range("B6:B34").Find(ComboBox1.Value).Row
c = Range("C6:G6").Find(ComboBox2.Value).Column
TextBox1.Value = Cells(l, c).Value
End Sub
Private Sub ComboBox2_Change()
Call cherche
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm2_Click()
End Sub
Private Sub UserForm2_Initialize()
Call cherche
End Sub
Private Sub UserForm_Click()
End Sub
Seulement, j'aimerais pouvoir saisir la valeur librement dans la combobox1 (ou la transformer en textbox si besoin), que celle-ci renvoie à la valeur immédiatement inférieure de la liste B6:B34.
Le tout pour obtenir le resultat dans la textbox existante
Exemple : j'ai dans ma liste les valeur 100/110/120
Si je saisie 118, j'aimerais que la valeur retenue soit 110.
Quelqu'un peut-il m'aider ?
Merci d'avance
Anne Sophie
Je suis actuellement confronté à un problème.
J'ai construit une macro composée d'un bouton commande qui ouvre une userform.
Cette userform permet de croiser des valeur en ligne et en colonne d'un tableau excel.
La voici :
Option Explicit 'oblige à déclarer toutes les variales
Private Sub ComboBox1_Change()
Call cherche
End Sub
Sub cherche()
Dim c As Double
Dim l As Double
l = Range("B6:B34").Find(ComboBox1.Value).Row
c = Range("C6:G6").Find(ComboBox2.Value).Column
TextBox1.Value = Cells(l, c).Value
End Sub
Private Sub ComboBox2_Change()
Call cherche
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm2_Click()
End Sub
Private Sub UserForm2_Initialize()
Call cherche
End Sub
Private Sub UserForm_Click()
End Sub
Seulement, j'aimerais pouvoir saisir la valeur librement dans la combobox1 (ou la transformer en textbox si besoin), que celle-ci renvoie à la valeur immédiatement inférieure de la liste B6:B34.
Le tout pour obtenir le resultat dans la textbox existante
Exemple : j'ai dans ma liste les valeur 100/110/120
Si je saisie 118, j'aimerais que la valeur retenue soit 110.
Quelqu'un peut-il m'aider ?
Merci d'avance
Anne Sophie
Configuration: Windows XP Internet Explorer 6.0
6 réponses
-
ContributeurRe,
Je viens de jeter un oeil rapidement;
L'utilisation de VBA est elle obligatoire?en effet, apparament, le pb peut se résoudre par des formules.
Michel-
Bonjour
En fait, l'utilisation du VBA n'est pas obligatoire (je l'ai fait avec des formules). C'est juste par curiosité de savoir comment on pourrait faire avec du VBA. Je débute et suis pleine d'entrain pour apprendre.
Voilà la raison.
Encore merci d'avoir jeter un coup d'oeil. et si vous avez une solution qui marche..... ou pouvez me dire comment résoudre l'erreur 13, je suis preneuse
Bonne journée
-
-
https://www.cjoint.com/?hho730wRDj
Voici le lien
Encore merci et bon après midi si vous n'arrivez pas à jeter un coup d'oeuil d'ici là. -
Contributeurpour joindre une feuille:
www.cjoint.com
Je m'absente un bon moment cet aprèm mais peut-être que qqn d'autre pourra résoudre le pb -
Je vais tester.
Sinon, comment faire pour vous envoyer la feuille sur laquelle je souhaite faire la manip ?
Ce serait plus simple, mais je n'ai pas trouver comment joindre un fichier -
Contributeurj'avais testé avec une valeur de recherche dans une cellule: pas de pb
Difficile de répondre sans voir le contexte:
peut-être:
un combobox n'est pas fait pour saisir; avec un textbox, la valeur renvoyée est du texte
si la valeur renvoyée est du texte, la convertir avec la fonction CLng ou val . Pour savoir, tu fais
test=combobox1.balue et tu regarde le type de test avec un espion (outils-débogage) -
ContributeurBonjour
essaies:
l = Application.Match(ComboBox1.Value, Range("B6:B34"), 1) + 5
les variables l et c doivent déclarées en "long" et non en "double"
l est ambigu: s'agit de "i" majucule ou de "L" minuscule?... Evite les variables à 1 lettre; par ex: lig et col sont + lisibles
(on tolère les "une lettre" pour des compteurs de boucles)
Michel