Comparer Un couple de valeur via deux feuilles différentes
Résolu
I c tous
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Comparer Un couple de valeur via deux feuilles différentes
- Comment faire un livret avec des feuilles a4 - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Bruler des feuilles de laurier - Guide
9 réponses
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
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
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!
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!
Bonjour
Comme signalé par via55
pas de = après MsgBox mais une (
pas de retour chariot après Then
Cette syntaxe me semble correcte
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Cela ne marche toujours pas.
Je reviens vers vous demain je suis actuellement en déplacement.
merci de m'accorder votre temps ;)
Je reviens vers vous demain je suis actuellement en déplacement.
merci de m'accorder votre temps ;)
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 :)
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 :)