Forum Clubic

Recherche en VBA

Bonjour,

Bon j’ai un petit soucis, deja j’ai beaucoup de mal à trouvé les commandes en VBA car en cours je ne fait que de l’algo.
Donc mon probleme est que j’ai un tableau sur une feuille1 dans excel, dans ce tableau figure des informations triés par numéro, j’ai donc en colonneA un numéro et à la suite toute sorte d’information, je souhaite donc après avoir saisi un numéro (celui de la colonneA) que ma macro cherche sur qu’elle ligne elle vat devoir ce placé pour récupéré les informations et ensuite les mettre dans un formulaire.

J’ai donc fait une boucle avec un Si pour l’instant mais je pense qu’il sera vite transformé en tant que pour evité que la recherche de numéro continue après avoir trouvé le numéro m’enfin revenons a nos moutons

Dim FNC As Integer
Dim I As Integer

FNC = InputBox("Saisir le numéro FNC")
For I = 4 To 2260
If FNC = Worksheets("PROCESS").Range("A&I") Then
MsgBox "le numéro de la cellule est :", Worksheets("PROCESS").Range("A&I")
End If
Next
End Sub

j’ai saisi sa pour me renvoyé le résultat pour voir si la boucle fonctionne bien mais il y a une erreur j’ai du mal à la voir si quelqu’un peut m’éclairé je ne sais pas si la concaténation de rangeA et de l’indice est possible je le fait en algo mais je ne connait pas trop le VB comme je vous l’ai dit précédement.

Bonjour,

J’ai pas tres bien saisi ou tu voulais en venir mais deja ca nevas pas là :“Range(“A&I”)”
Esai pluto comme ca Range(“A” & i)

++

Il faut que tu procèdes en deux temps :

  • D’abord, tu te familiarises sous excel avec la fonction RECHERCHEV() d’Excel
  • Ensuite tu fais utiliser cette fonction par ton VBA (avec Application.Vlookup())

attention : au passage en VBA, Recherchev() devient vlookup() comme dans la version internationale d’excel

ok merci je vais testé je connais pas la rechercheV de excel le VBA j’en ai fait un peu mais j’ai pas les cours avec moi. je vous tiens au courant si cela marche

je pourrai avoir un exemple de syntaxe de la fonction vlookup()

Tu as toute l’aide nécessaire dans excel.
Par exemple pour la commande vlookup(), tu te mets sous vba, à l’intérieur ou à l’extérieur d’une fonction, peut importe, tu tapes vlookup, tu sélectionnes et tu appuies sur F1.
L’aide va s’ouvrir directement à la page désirée. N’hésite pas à cliquer sur les liens Exemple et Voir aussi pour avoir les exemples et les commandes de la même famille.

merci les gars

lol encore une petite question est il possible d’affecté le contenu du presse papier à une variable

en faite dans une variable je voudrai concaténé le contenu du presse papier plus du texte présaisi

Au premier abord, je ne vois pas très bien comment ;
Par contre, elles viennent d’où les données de ton presse papier ?

Tu peux toujours les coller dans une cellule de ta feuille, faire la concaténation puis affecter le contenu de la cellule à ta variable …

a ouai bien vu

il existe également la méthode finxd de l’objet range


dim rge as range
set rge=range("A1:A2206").find(tavaleur)
msgbox rge.row

pour l’avoir testé sur des tableaux de grande taille, c’est la fonction de recherche la plus rapide

Effectivement, pour une simple recherche, Find appliqué à l’objet Range est sûrement plus performant.