Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

@+
 
P

patrick

Guest
Merci à Clément et M.Lecxe pour leur réponses.
Je sais que je peux compter sur l'expertise des habitués du forume.

Désolé pour les remerciements aussi tardifs...

Bonne journée à tous
 

Discussions similaires

Réponses
7
Affichages
597
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…