idieordeco
Messages postés28Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention20 février 2011
-
4 déc. 2007 à 15:43
idieordeco
Messages postés28Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention20 février 2011
-
6 déc. 2007 à 09:29
Bonjour,
Bon.... vous allez me détester, j'ai encore une merde que j'essaie de résoudre depuis 5 heures.
Ma recherchev ne marche pas.
Le code en question ne met aucun résultat et au bout d'un moment "l'indice n'appartient pas à la sélection" (je zappe cette erreur avec un "on error resume next")
Le coupable :
(...)
Dim NbLignes As Long
Dim j As Long
'--Recherche du type d'OPCVM
NbLignes = ActiveSheet.UsedRange.Rows.Count
For j = NbLignes To 1 Step -1
If Range("c" & j).Value "ACTION" And Range("d" & j).Value "Jule" Then
Range("n" & j).Value = Application.WorksheetFunction.VLookup(Range("e" & j).Value, Worksheets("valeur").Range("A101:E150"), 3, False)
End If If Range("c" & j).Value "INTER" And Range("d" & j).Value "Jule" Then
Range("n" & j).Value = Application.WorksheetFunction.VLookup(Range("e" & j).Value, Worksheets("valeur").Range("A51:E100"), 3, False)
End If If Range("c" & j).Value "EURO" And Range("d" & j).Value "Jule" Then
Range("n" & j).Value = Application.WorksheetFunction.VLookup(Range("e" & j).Value, Worksheets("valeur").Range("A2:E50"), 3, False)
End If
Next j
(...)
Ma première impression, c'est que la valeur à rechercher dans la matrice fait merder le recherchev :
"VLookup(Range("e" & j).Value,(...)"
Probléme, cette valeur varie à chaque ligne (c'est un code pour être précis)
Cette même valeur se trouve dans la matrice dans une autre feuille colonne 1 et VBA doit me renvoyer la valeur de la colonne 3
Enfin, je suis vraiment au bout du rouleau avec mes recherchev de merde, pour une fois que j'étais fier de mon code... il merde.
Je précise que la personne trouvant la solution sera moutement remerciée
idieordeco
Messages postés28Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention20 février 2011 5 déc. 2007 à 11:30
Merci swan94 pour ta réponse !
Bon, je vais être honnète avec toi, ce que j'ai mis sur mon premier post marché mais la je n'obtenais pas de réponse car la base valeur de recherchev n'était sur le même classeur de la macro...
Donc du coup, pas de résultat...
Je suis vraiment désolé de t'avoir fait perdre ton temps
Pour ceux que ça interesse voila la macro et le principe :
Principe :
Faire une recherchev sur critères multiples de recheche
Dans mon cas il y a 2 conditions (qui varient sur chaque ligne) pour faire la rechechev et la rechechev recherche le résultat de la valeur cible (qui varie à chaque ligne) dans la base valeur mais que sur certaines certaines lignes (d'ou le range limité de la recherchev dans la base).
Si la macro ne trouve rien, elle ne m'est rien.
Attention la macro ne met pas de formule dans les cases mais le résultat de la formule.
La macro :
NbLignes = ActiveSheet.UsedRange.Rows.Count
For i = NbLignes To 1 Step -1
If Range("c" & i).Value "PSG" And Range("d" & i).Value "PANCRATE" Then
Range("k" & i).Value = Application.WorksheetFunction.VLookup(Range("e" & i).Value, Worksheets("valeur").Range("A101:E150"), 3, False)
End If If Range("c" & i).Value "MARSEILLE" And Range("d" & i).Value "FIORESE" Then
Range("k" & i).Value = Application.WorksheetFunction.VLookup(Range("e" & i).Value, Worksheets("valeur").Range("A2:E50"), 3, False)
End If If Range("c" & i).Value "LYON" And Range("d" & i).Value "MADAR" Then
Range("k" & i).Value = Application.WorksheetFunction.VLookup(Range("e" & i).Value, Worksheets("valeur").Range("A51:E100"), 3, False)
End If
Next i
hakima1985
Messages postés2Date d'inscriptionvendredi 20 avril 2007StatutMembreDernière intervention13 mars 2009 5 déc. 2007 à 15:15
salut
je veux devolopper une application avec vb appliquer avec excel;et je veux le programme de recherche multicritères c'est à dire que j'ai des chekboxs à cocher et une fois que je clique sur le boutton de recherche j'obtient les resultats dans une nouvelle feuile excel
Vous n’avez pas trouvé la réponse que vous recherchez ?
idieordeco
Messages postés28Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention20 février 2011 6 déc. 2007 à 09:29
Alors dans le détail, je me suis peut être mal expliqué.
Ce n'est pas une recherche multicritères (qu'est ce que c'est ??) mais multiconditions.
C'est à dire que si plusieurs conditions, présentes sur une même ligne, sont remplies, alors la recherchev s'effectue.
(bon, on est sur le forum débutant, alors désolé pour l'erreur)
Le code là haut est bon mais ne gère pas les erreurs de recherchev :
Si les deux conditions pour effectuer la recherche sont remplies et que la recherche ne donne pas de résultat (c'est à dire que la base valeur ne renvoit rien), la macro plante ! "erreur propriété blablabla"
Pour éviter cela, en début de procédure, faut mettre :
On Error Resume Next
Comme ça la macro mouline jusqu'au bout et renvoie les données qu'elle trouve