Thursday, July 10, 2014

VBA - Recherche de données - La méthode find


VBA - Recherche de données - La méthode find

Cette fiche pratique est essentiellement tirée de l'aide Excel. Mitac batteriesL'exemple d'utilisation est un conseil basé sur ma propre petite expérience. 

Introduction :

La méthode find, permet de trouver la première occurrence d'une information spécifique, dans un range. En clair, cette méthode permet d'aller chercher dans une feuille ou une partie d'une feuille Excel, une information, une donnée ou une partie de cette donnée. 

La méthode, par Excel :

1- Ouvrez un classeur (contenant des données) 
2- Ctrl+F, correspond à : 
Excel < 2007 : Edition/Rechercher 
Excel >= 2007 : Onglet Accueil / Rechercher et Sélectionner / rechercher 
3- Saisir la valeur à rechercher, régler les options, puis cliquer sur suivant 

Le code VBA correspondant :

L'enregistreur de macro nous donne le code suivant (mot cherché : « Valeur ») : 
Cells.Find(What:="Valeur", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate

La syntaxe :

MonRange.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, SearchFormat) 

MonRange : Expression qui représente ici l'objet Range dans lequel vous souhaitez chercher la valeur contenue dans « What ». Cela peut être votre feuille en entier (Sheets(1).Cells.Find(...)), une colonne (Sheets(1).Columns(3).Find(...)), une ligne (Sheets(1).Rows(7).Find(....)) ou une plage de cellules (Sheets(1).Range("D12:F56").Find(....)). 
What : Obligatoire. De type variant, il s'agit de ce que vous cherchez dans votre range. What peut être de n'importe quel type de données qu'Excel est capable de traiter. 

After : Facultatif. De type variant, il indique la cellule de départ de la recherche. Attention cette cellule doit être unique. Si « After » n'est pas précisé, la recherche débute dans le coin supérieur gauche du range. 

LookIn : Facultatif. De type variant. Traduction instantanée : regarder dans. En effet, nous cherchons une valeur dans un Range, mais nous pouvons de plus spécifier dans quoi elle est contenue (Valeur : LookIn:=XlValues, Formule : LookIn:=XlFormulas) 

LookAt :Facultatif. De type variant, il indique si la valeur trouvée doit être rigoureusement égale à la valeur cherchée, ou en partie seulement. Exemple, dans la matrice : 6210, 4105, 540, 163, 154, 132, 10, vous recherchez la valeur 10. Pour indiquer à VBA que vous cherchez exclusivement 10, vous utiliserez LookAt:=XlWhole. A contrario, pour lui indiquer que 6210 ou 4105 vous conviennent (elles contiennent toutes deux 10), vous utiliserez : LookAt:=XlPart. 

SearchOrder : Facultatif. De type variant. L'ordre de recherche admet une des deux constantes : xlByRows (par lignes) ou xlByColumns (par colonnes). 

SearchDirection : Facultatif. De type variant. Indique le sens de recherche lors de l'exploration d'une plage. Soit xlNext, recherche la valeur suivante dans la plage, soit xlPrevious, recherche la valeur précédente. 

MatchCase : Facultatif. De type variant. Deux valeurs pour cet argument : par défaut False, et pour que la recherche respecte la casse, lui affecter la valeur True. 

SearchFormat : Facultatif. De type variant. True ouMotion batteries False selon si vous affectez un formatage (monétaire, standard, nombre, bordure, remplissage, alignement...). 

A noter : Un argument facultatif MatchByte de type variant, s'utilise si vous avez installé et utilisez la prise en charge des langues codées sur deux octets (False pour que les caractères codés sur deux octets correspondent à leurs équivalents codés sur un octet) 

Valeur renvoyée :

La méthode find renvoie l'objet Range représentant la cellule ou est trouvée la première occurrence de la valeur cherchée. Cette méthode renvoie Nothing si aucune correspondance n'est trouvée. Ceci est par conséquent source d'erreurs qu'il vous faudra traiter (voir exemple d'utilisation). La méthode Find n'affecte pas la sélection ni la cellule active. 

1 comment:

  1. Although Khamis Mushayt places small, but the corner of the Gulf company aims to reach all esteemed customers anywhere and aims to reach the highest level of excellence and accuracy in all the services Corner Gulf has the best basic services featured in doing cleaning
    شركة تنظيف بخميس مشيط
    And interest in the field of general cleaning and to clean the inside and out and seek to eliminate the dirt and dust is not content with doing acts of cleaning all but overwhelmed acting cleaning شركة تنظيف شقق بخميس مشيط
    In Khamis Mushayt and to clean the houses شركة تنظيف منازل بخميس مشيط
    And the elimination of the changes in place with the passage of time from the dust and the elimination of traditional methods of cleaning
    Corner Gulf also interested in acting detect water leaks شركة كشف تسربات المياه بخميس مشيط
    Through the latest devices and special machines that help to reach the best results in addition to our company that conducts pest insects شركة مكافحة حشرات بخميس مشيط
    And the elimination of the most difficult types of insects present in place
    Transfer baggage Khamis Mushayt a services شركة نقل عفش بخميس مشيط
    Made on the basis of certain carried out under the supervision of specialists in the transportation business, we have the following in order to get the best results
    - Stronger labor jaw responsible for assembling and packaging
    - The best and latest car
    - Best price ubiquitous and less than traditional transport prices

    ReplyDelete