Comment rechercher une valeur dans un tableau en utilisant VBA ?

Lorsque vous stockez des valeurs dans un tableau, il peut arriver que vous deviez effectuer une recherche dans un tableau. Dans ce cas, vous devez connaître les méthodes que vous pouvez utiliser. Maintenant, regardez le code ci-dessous qui peut vous aider à comprendre comment rechercher une valeur dans un tableau.

rechercher-une-valeur-dans-un-tableau-1
  1. Dans la première partie du code, vous avez des variables que vous devez utiliser plus loin dans le code.
  2. Après cela, la partie suivante génère des nombres aléatoires en utilisant RND pour obtenir les dix valeurs du tableau.
  3. Ensuite, une zone de saisie vous permet d’entrer la valeur que vous souhaitez rechercher dans le tableau.
  4. Après cela, vous avez une ligne qui utilise l’ instruction IF pour vérifier si la valeur que vous avez entrée dans la zone de saisie est un nombre ou non.
  5. Dans cette partie, vous avez un code pour la chaîne à utiliser dans la boîte de message si la valeur que vous avez saisie n’est pas trouvée.
  6. Cette partie du code utilise une boucle For (For Each) pour parcourir chaque élément du tableau et vérifier si la valeur que vous avez entrée se trouve dans le tableau ou non.
  7. La dernière partie du code affiche un message indiquant si la valeur est trouvée ou non.
Option Base 1
Sub vba_array_search()

'this section declares an array and variables
'that you need to search within the array.
Dim myArray(10) As Integer
Dim i As Integer
Dim varUserNumber As Variant
Dim strMsg As String

'This part of the code adds 10 random numbers to
'the array and shows the result in the
'immediate window as well.
For i = 1 To 10
myArray(i) = Int(Rnd * 10)
Debug.Print myArray(i)
Next i

'it is an input box that asks
'you the number that you want to find
Loopback:
varUserNumber = InputBox _
("Enter a number between 1 and 10 to search for:", _
"Linear Search Demonstrator")

'it's an if statement that checks for the value that you
'have entered in the input box.
If varUserNumber = "" Then End
If Not IsNumeric(varUserNumber) Then GoTo Loopback
If varUserNumber < 1 Or varUserNumber > 10 Then GoTo Loopback

'message to show if the value doesn't found.
strMsg = "Your value, " & varUserNumber & _
", was not found in the array."

'loop through the array and match each value with the
'the value you have entered in the input box.
For i = 1 To UBound(myArray)
If myArray(i) = varUserNumber Then
strMsg = "Your value, " & varUserNumber & _
", was found at position " & i & " in the array."
Exit For
End If
Next i

'message box in the end
MsgBox _
strMsg, vbOKOnly + vbInformation, _
"Linear Search Result"

End Sub

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *