tamarw
Messages postés6Date d'inscriptionmercredi 20 février 2008StatutMembreDernière intervention25 février 2008
-
20 févr. 2008 à 18:29
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
21 févr. 2008 à 22:36
Bonjour,
Je souhaite programmer un bouton pour qu'il effectue une RechercheV en comparant un élément saisi dans une zone de texte à un tableau excel indépendant du document sur lequel je travaille.
Pouvez-vous m'aider concernant la formule à écrire.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 févr. 2008 à 00:29
Commence par faire une recherche du côté de
WorksheetFunction
et tu peux aussi regarder la fonction Find qui agit comme la recherche sous Excel (Ctrl-F)
Par la suite, tu pourrais revenir en nous disant si ça fonctionne ou sinon, nous donner la partie de code qui ne fonctionne pas pour qu'on puisse t'aider du mieux qu'on peut...
tamarw
Messages postés6Date d'inscriptionmercredi 20 février 2008StatutMembreDernière intervention25 février 2008 21 févr. 2008 à 10:56
Hello,
Si quelqu'un pouvait m'aider avec le code ci-dessous qui me pose problème, ce serait très sympa !
Merci d'avance.
Ps. je débute en VBA...
Private Sub CommandButton1_Click()
Sub UseFunction()
Dim myRange As Range
Dim myCell As Long
Set myCell = Worksheets("Sheet1").Long("B2")
Set myRange = Worksheets("[fichier-article.xls]Sheet1").Range("A1:C10")
answer = Application.WorksheetFunction.VLookup(myCell, myRange, 2, False)
MsgBox answer
End Sub
End Sub
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 févr. 2008 à 11:21
Ouh làlà !...
1- Tu ne peux pas déclarer une Sub ou Function à l'intérieur d'une autre Sub ou Function
Tu dois plutôt procéder comme ceci
Private Sub CommandButton1_Click()
Call UseFunction
End Sub
Sub UseFunction()
'Ton code
End Sub
2- Long n'est pas une propriété ou une méthode de Worksheets
Set myCell = Worksheets("Sheet1").Long("B2")
Il faudrait savoir ce que tu veux retourner dans MyCell
Si c'est la valeur de type Long de la cellule, tu dois écrire quelque chose comme
myCell = Worksheets("Sheet1").Range("B2").Value
ou
myCell = CLng(Worksheets("Sheet1").Range("B2").Value)
Si tu veux que myCell soit utilisée comme une vraie cellule avec ses propriétés et méthodes (ce que tu sembles vouloir faire), tu dois la déclarer As Range et coder comme ceci
Dim myCell As Range
Set myCell = Worksheets("Sheet1").Range("B2")
3- answer n'est pas déclaré (Dim) et ce serait préférable...
Est-ce que ça fonctionne mieux maintenant ?
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 févr. 2008 à 11:23
J'oubliais...
Ne sélectionne "Accepté" que si une réponse a résolu ton problème. Autrement, il y aura moins de gens qui passeront par ici en passant que c'est résolu... Et d'autres passeront en pensant y trouver une solution qu'ils ne trouveront pas ...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Vous n’avez pas trouvé la réponse que vous recherchez ?
tamarw
Messages postés6Date d'inscriptionmercredi 20 février 2008StatutMembreDernière intervention25 février 2008 21 févr. 2008 à 12:50
J'ai aussi essayé en écrivant le chemin complet de mon worksheet de référence et j'ai le même problème:
Set myRange = Worksheets("C:\Documents and Settings\...\Bureau\[fichier-article.xls]Sheet1").Range("A2:C10")