VB - Excel : recherche des valeurs

Fermé
dohko1110 Messages postés 15 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 9 mars 2019 - 13 mars 2009 à 00:22
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 - 14 mars 2009 à 08:43
Bonjour,

Je suis en train de réaliser un petit projet via Excel 2007 et Vb.

Je souhaite rechercher des valeurs dans Excel en fonction des résultats inscrit dans 2 listes (la premiere est "Niveaux" et la deuxième est "Risque").
Selon le choix, on obtient la selection d'une valeur y qui correspond à la colonne des valeurs.

If Niveaux = "Niveau faible" Then
Y = 4
Else
If Niveaux = "Niveau moyen" Then
Y = 5
Else
Y = 6
End If
End If

Puis je dois déterminer la ligne correspondante puis retirer la valeur dites et l'insérer dans une Textbox (Esp)

For i = 1 To 3
If Risque = "Q" & i Then
Esp = Cells(i + 1, Y)
Else
For u = 1 To 2
If Risque = "A" & u Then
Esp = Cells(u + 4, Y)
Else
For v = 1 To 7
If Risque = "E" & u Then
Esp = Cells(v + 6, Y)
Else
If Risque = "C1" Then
Esp = Cells(14, Y)
Else
Esp = "Erreur"
End If
End If
Next v
End If
Next u
End If
Next i

Je débute en programmation donc c'est surement la méthode dite "bourrin" mais à priori l'erreur vient soit de lde la condition de IF => Risque = "E" & u ou bien de l'envoit des donner dans la TextBox.

En espérant que vous puissiez m'aider.

merci
A voir également:

5 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
13 mars 2009 à 04:57
bonjour

quand tu fais appel à une cellule il faut lui dire.
2 solutions : Range ou cells
soit : If Risque = range("Q" & i) Then
soit : if risque = cells(i,17) then ' 17 correspond à la colonne 17 soit Q
0
dohko1110 Messages postés 15 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 9 mars 2019
13 mars 2009 à 09:18
En fait, pour les IF ce que je cherche à comparer c'est un objet text.

je m'explique je veux verifier je si Risque = Q1 ou Q2 ou Q3 ou A1 ou A2 et je pensais que faire "Q"&i où i varie, serait equivalent à "Qi".

je pense que c'est la ou ca peche.
j'ai fais ca pour eviter 15 lignes de IF mais c'est surement une erreur.


en tt cas merci de ton aide.
0
torki2 Messages postés 56 Date d'inscription samedi 21 février 2009 Statut Membre Dernière intervention 16 novembre 2019 3
13 mars 2009 à 11:48
Salut
vous essayez de concatener une expression caractere avec une valeur numérque ??!! mais ça ne marchera jamais dans la quasi totalité des langages de programmation il faut saisir ceci par exemple :
IF Risque="Q" & STR(TRIM(i)) THEN ....
TRIM pour effacer les espaces
Bon courage ; tiens moi au courant
0
dohko1110 Messages postés 15 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 9 mars 2019
13 mars 2009 à 23:22
Merci de votre aide.

j'ai réussi à régler mon probleme avec la solution de Wilfried ==> Range("C"&i)

Encore merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
14 mars 2009 à 08:43
re:

si tes Q & i sont des contrôles textbox, le système est le même mais avec une syntaxe controlbox
if risque = me.controls("Q" & i).value then
0