Créer une recherche dans une plage dynamique, Excel VBA

Créer une recherche dans une plage dynamique, Excel VBA
Voici un exemple détaillé de code VBA pour créer une recherche dans une plage dynamique dans Excel. L’objectif est de trouver une valeur spécifique dans une plage de données dynamique. Cette plage peut changer en fonction du nombre de lignes ou de colonnes dans votre feuille de calcul, et cet exemple ajustera la plage dynamiquement à mesure que des données sont ajoutées ou supprimées.
Code VBA :

Sub CreateDynamicRangeSearch()
    Dim ws As Worksheet
    Dim searchRange As Range
    Dim searchValue As Variant
    Dim foundCell As Range
    Dim lastRow As Long
    Dim lastCol As Long
    ' Définir la feuille de travail à utiliser
    Set ws = ThisWorkbook.Sheets("Sheet1")  ' Changez Sheet1 par le nom réel de votre feuille
    ' Demander à l'utilisateur la valeur à rechercher
    searchValue = InputBox("Entrez la valeur à rechercher:", "Valeur de recherche")
    ' Trouver la dernière ligne et la dernière colonne de la plage utilisée dans la feuille
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    ' Définir la plage de recherche dynamique
    Set searchRange = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol))
    ' Rechercher la valeur dans la plage dynamique
    Set foundCell = searchRange.Find(What:=searchValue, LookIn:=xlValues, LookAt:=xlWhole)
    ' Vérifier si la valeur a été trouvée
    If Not foundCell Is Nothing Then
        MsgBox "Valeur trouvée dans la cellule : " & foundCell.Address, vbInformation, "Résultat de la recherche"
    Else
        MsgBox "Valeur non trouvée.", vbExclamation, "Résultat de la recherche"
    End If
End Sub

Explication :
1. Définir les variables :

  • ws : Cela représente la feuille de calcul où se trouvent les données (vous pouvez changer le nom de la feuille).
  • searchRange : C’est la plage dynamique dans laquelle vous allez rechercher la valeur.
  • searchValue : La valeur que l’utilisateur recherche, qui est entrée via une boîte de dialogue InputBox.
  • foundCell : Cette variable contiendra la cellule où la valeur est trouvée.
  • lastRow et lastCol : Ces variables sont utilisées pour trouver la dernière ligne et la dernière colonne avec des données dans la feuille.

2. Paramétrage de la feuille de travail :

  • Le code utilise Set ws = ThisWorkbook.Sheets("Sheet1") pour définir la feuille de calcul. Assurez-vous de remplacer "Sheet1" par le nom réel de votre feuille.

3. Trouver la dernière ligne et colonne :

  • lastRow est calculée en trouvant la dernière ligne non vide de la colonne 1 (généralement la colonne A).
  • lastCol est calculée en trouvant la dernière colonne non vide de la ligne 1 (la première ligne).

4. Définir la plage dynamique :

  • La plage de recherche est définie de la cellule (1,1) (en haut à gauche de la feuille) à la dernière ligne et colonne déterminées ci-dessus. Cela crée une plage dynamique basée sur les données présentes dans la feuille.

5. Processus de recherche :

  • La méthode Find est utilisée pour effectuer la recherche dans la searchRange. Le paramètre What:=searchValue indique la valeur à rechercher, LookIn:=xlValues garantit que la recherche se fait sur le contenu des cellules, et LookAt:=xlWhole assure que le contenu entier de la cellule doit correspondre.

6. Gestion des résultats :

  • Si la valeur est trouvée, une boîte de message affiche l’adresse de la cellule où la valeur a été localisée.
  • Si la valeur n’est pas trouvée, une boîte de message informe l’utilisateur qu’aucune valeur n’a été trouvée.

Résultat :
Lorsque vous exécutez le code, une boîte de saisie apparaîtra pour que vous puissiez entrer la valeur à rechercher. Après avoir entré la valeur, le code effectuera la recherche dans la plage dynamique et affichera une boîte de message indiquant soit l’adresse de la cellule où la valeur a été trouvée, soit un message vous informant que la valeur n’a pas été trouvée.
Cette méthode peut être appliquée à différents scénarios, comme la recherche dans une plage de données qui peut augmenter ou diminuer avec le temps. Elle garantit que le code reste adaptable aux changements dans la taille des données.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x