Comparer Un couple de valeur via deux feuilles différentes

Résolu/Fermé
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013 - 11 avril 2013 à 10:58
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 16 avril 2013 à 10:48
Salut à tous,

Débutant sur VBA, je sollicite votre aide.

Dans ma première Feuille l'utilisateur entre deux valeur d'un crayon (hauteur H, et diamètre D), ensuite j'aimerai que mo programme compare ces valeurs à une base de donnée existante, et qu'un message m'affiche "pas trouvé" ou bien "trouvé, ligne n°, colonne n°".

Voilà mon travail, mais je n'arrive pas à lui dire de m'indiquer si le duo existe ou non, il me renvoie toujours à une seul colonne, enfin bref votre aide me sera précieuse:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim D As Integer
Dim H As Integer
Dim celluletrouvee As Range
Dim ligne As Integer
Dim col As Integer

D = [F17]
H = [J17]
Set celluletrouvee = Worksheets("Feuil4").Range("D5:D62").Find(D, LookIn:=xlValues)
Set celluletrouvee = Worksheets("Feuil4").Range("E5:E62").Find(H, LookIn:=xlValues)

If celluletrouvee Is Nothing Then
MsgBox ("pas trouvé")
Else
ligne = celluletrouvee.Row
col = celluletrouvee.Column
MsgBox ("Le bouchon existe dans notre base de donnée : ligne = " & ligne & " , colonne = " & col)
End If

End Sub



Merci
A voir également:

9 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
11 avril 2013 à 15:45
Bonjour

ta variable celluletrouvee s'applique à 2 recherches successives donc seules les références de la 2nde sont prises en compte

il faut les distingue en appelant l'une celluletrouvee1 et l'autre celluletrouvee2 par ex

mais ce que je ne comprends pas c'est que si dans ta base de donnés tu as en colonne D les diametres et en colonne E les hauteurs ton code va trouver si un diametre correspond ou si une hauteur correspond mais pas si le couple existe

Si ce que tu veux c''est savoir si par ex le diametre cherché existe en D8 ET que la hauteur cherchée existe en E8 c'est autrement qu'il faut proceder, par une boucle du style :

message="Pas trouvé"
For n =2 to 62
IF sheets("Feuille4").range("D"& n).value = D AND sheets("Feuille4").range("E"&n).value= H then message="Existe ligne "& n : exit For
Next n

Msgbox(message)

Cdlmnt
0
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
12 avril 2013 à 08:44
Merci pour votre réponse je vais m'en inspirer ! :)
0
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
12 avril 2013 à 10:22
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim D As Integer
Dim H As Integer


D = [F17]
H = [J17]

For n = 2 To 62
If Sheets("Feuille4").Range("D" & n).Value = D And Sheets("Feuille4").Range("E" & n).Value = H Then MsgBox = "Existe ligne " & n: Exit For

End Sub

Voilà ce que j'ai écrit et sa ne marche pas ! dsl je suis vraiment débutant en programmation!
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
12 avril 2013 à 13:13
Apparement tu as oublié de boucler la boucle avec Next n
0
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
12 avril 2013 à 13:50
sa ne marche toujours pas ! et en plus il m'indique que "MsgBox" renvoie à un objet ou une variant ??
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
12 avril 2013 à 14:33
Dsl je n'avais pas vu que la syntaxe que tu avais employé pour Msgbox était incorrecte
il faut écrire : MsgBox ("Existe ligne " & n)
0
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
12 avril 2013 à 14:45
merci :)
mais maintenant jai un message qui m'indique cette erreur "For sans Next" ??
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
12 avril 2013 à 18:39
Tu as bien mis la ligne next n avant end sub ?
Et supprimes aussi le exit for
tu dois avoir cela :

For n = 2 To 62
If Sheets("Feuille4").Range("D" & n).Value = D And Sheets("Feuille4").Range("E" & n).Value = H Then MsgBox =("Existe ligne " & n)
Next n
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 15/04/2013 à 11:59
Bonjour

Comme signalé par via55
pas de = après MsgBox mais une (
pas de retour chariot après Then

Cette syntaxe me semble correcte

For n = 2 To 62 
  If Sheets("Feuille4").Range("D" & n).Value = D And Sheets("Feuille4").Range("E" & n).Value = H Then MsgBox( "Existe ligne " & n): Exit For 
Next n 
End Sub 

Si ça ne fonctionne pas, envoies
- soit l'intégralité de la procédure
- soit la partie concernée de ton fichier au format excel 2003 sur cjoint.com et joins le lien obtenu à ton prochain message

bonne suite
0

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

Posez votre question
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
15 avril 2013 à 17:12
Cela ne marche toujours pas.

Je reviens vers vous demain je suis actuellement en déplacement.
merci de m'accorder votre temps ;)
0
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
16 avril 2013 à 09:21
http://cjoint.com/data3/3Dqjsy4410F.htm

Voilà mon doc:
-La première feuille l'utilisateur tape un diamètre et une hauteur.
-Sur la deuxième feuille se trouve une base de donnée.

Donc en entrant le Diamètre puis la hauteur j'aimerai que mon programme m'indique si ce couple de valeur existe dans l'autre page.
Merci :)
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
16 avril 2013 à 10:04
un exemple
https://www.cjoint.com/?3Dqkd47Pv4m

bonne journée
0
I c tous Messages postés 18 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 30 avril 2013
16 avril 2013 à 10:24
Merci beaucoup :)
Hâte d'avoir un niveau semblable (encore 3 ou 4 ans !)

Bonne journée :)
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 16/04/2013 à 10:48
De rien

Un petit détail m'avait échappé (le n° de ligne, mais tu as certainement complété)
  If (DD = D And HH = H) Then 
    MsgBox "Le couple D = " & D & ", H = " & H & " est dans la liste à la ligne " & li

peux tu mettre le problème à résolu (en haut de a première demande)

cordialement
0