Equivalent rechercheV dans matrice

  • Initiateur de la discussion patrick
  • Date de début
P

patrick

Guest
Bonjour le forum,

Dans une macro, j'ai dimensionné une variable matricielle "dim exemple (1 to 10,1 to 2)".
J'ai ensuite rempli la variable avec des valeurs comme je remplirais un tableau.

Je cherche le code qui me permettrais de faire dans la variable la même chose que RECHERCHEV dans un tableau.

Merci
 
K

K@d

Guest
Bonjour Patrick,

voici un petit bout de code qui devrait t'aider...

---------------------

Option Base 1 (à déclarer en haut du module)

Dim i as integer
Dim ValeurRecherche
Dim Resultat

ValeurRecherche=range("valeurARechercher").value

For i=1 to ubound(Mamatrice,1)

if MaMatrice(i,1)=ValeurRecherche then Resultat=MaMatrice(i,2)

Next i

----------------

Voilà, j'espère que cela peut t'aider, sinon je suis à ta disposition pour plus d'infos !

Clément

"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." (devise Shadock)
 
M

m.lecxe

Guest
Salut,
quelsues fonction trouvées sur le site de F Sigonneau qui pourront certainement t'aider.

Attribute VB_Name = "TesterSiVariableDansTableau"

' Quelqu'un connait-il une fonction permettant de savoir si la valeur d'une
' variable est présente dans un ARRAY ?

Function FoundIt(aVar, Arr)
' d'après Dana DeLouis, mpep
' attention : pas de boucle, mais insensible à la casse
' pour les variables texte

FoundIt = Not IsError(Application.Match(aVar, Arr, 0))
End Function

Function IsInArray(aArray As Variant, vTarget As Variant) As Boolean
'Joël Mau, mpfe
Dim I As Integer

IsInArray = False
For I = LBound(aArray) To UBound(aArray)
If aArray(I) = vTarget Then
IsInArray = True
Exit Function
End If
Next
End Function

Function Check(MyVariable, MyArray) As Boolean
'Leo Heuser, mpep
Dim Element

Check = False
For Each Element In MyArray
If MyVariable = Element Then
Check = True
Exit For
End If
Next Element

End Function

Sub testArray()
Dim toto As Variant
toto = Array("10", "20", "30")
MsgBox IsInArray(toto, "40")
MsgBox Check("40", toto)
MsgBox FoundIt("40", toto)
End Sub

Sub ChercheDansArray()
'Clément Marcotte, mpfe
Dim TabCodes As Variant

moncode = "69"
TabCodes = Array("71", "69", "00", "45")
Max% = UBound(TabCodes)
For I% = 0 To Max%
If TabCodes(I%) = moncode Then
MsgBox ("Tabcodes contient moncode") 'adapter
Exit For
Else
End If
Next
End Sub

http://frederic.sigonneau.free.fr/code/Tris/TesterSiVariableDansTableau.txt

@+
 

Discussions similaires

Réponses
7
Affichages
597

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005