Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
544 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Incorporation d'une fonction RechercheV dans une macro

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Incorporation d'une fonction RechercheV dans une macro

n°273657
brizggy
Posté le 20-12-2002 à 12:03:51  profilanswer
 

Je voudrais inclure une fonction RechercheV dans une macro. Je sais que je pourrais passer par des pointeurs mais l'utilisation de cette fonction me ferai gagner beaucoup de temps d'exécution.
 
J'ai trouvé la formule. Dans mon cas, ça donne ceci :
        a = Application.WorksheetFunction.VLookup(Cells(i, 1), Range(Sheets("St ER1" ).Cells(2, 1), Sheets("St ER1" ).Cells(200, 2)), 2, False)
        Cells(i, 6) = a
 
i est mon numéro de ligne courante. Cette formule fonctionne très bien SAUF quand la valeur que je recherche ne figure pas dans la liste de la feuille "St ER1".
Dans ce cas, la macro s'arrête carrément !
 
Avez-vous une solution ?
Sinon, connaissez-vous une fonction permettant de vérifier qu'une valeur figure dans une liste donnée ?

mood
Publicité
Posté le 20-12-2002 à 12:03:51  profilanswer
 

n°273955
nur
Posté le 20-12-2002 à 16:42:10  profilanswer
 

brizggy a écrit :

Je voudrais inclure une fonction RechercheV dans une macro. Je sais que je pourrais passer par des pointeurs mais l'utilisation de cette fonction me ferai gagner beaucoup de temps d'exécution.
 
J'ai trouvé la formule. Dans mon cas, ça donne ceci :
        a = Application.WorksheetFunction.VLookup(Cells(i, 1), Range(Sheets("St ER1" ).Cells(2, 1), Sheets("St ER1" ).Cells(200, 2)), 2, False)
        Cells(i, 6) = a
 
i est mon numéro de ligne courante. Cette formule fonctionne très bien SAUF quand la valeur que je recherche ne figure pas dans la liste de la feuille "St ER1".
Dans ce cas, la macro s'arrête carrément !
 
Avez-vous une solution ?
Sinon, connaissez-vous une fonction permettant de vérifier qu'une valeur figure dans une liste donnée ?


 
Function trouvevaleur(valeur, plage As Range)
trouver = False
For Each cellule In plage
If cellule = valeur Then
trouver = True
GoTo sortie:
End If
Next
 
sortie:
If trouver = True Then
trouvevaleur = cellule.Address
Else
trouvevaleur = "Faux"
End If
 
End Function

n°273985
brizggy
Posté le 20-12-2002 à 17:31:17  profilanswer
 

Merci pour la réponse, mais cette solution ne m'intéresse pas vraiment. Je l'ai testée et elle entraîne un très long temps d'exécution.
 
Elle ne permet pas de profiter de l'exceptionnelle rapidité de la formule RechercheV.
 
D'autres idées ?

n°274071
nur
Posté le 20-12-2002 à 19:06:12  profilanswer
 

brizggy a écrit :

Merci pour la réponse, mais cette solution ne m'intéresse pas vraiment. Je l'ai testée et elle entraîne un très long temps d'exécution.
 
Elle ne permet pas de profiter de l'exceptionnelle rapidité de la formule RechercheV.
 
D'autres idées ?


sous forme de tableau c'est beaucoup plus rapide:
 
Function trouvevaleur(valeur, plage As Range)
debut = Timer
trouver = False
Dim pp()
ReDim pp(plage.Count - 1)
pp() = plage
For i = 1 To UBound(pp, 1)
For j = 1 To UBound(pp, 2)
If pp(i, j) = valeur Then
ligne = i
ligne = j
trouver = True
GoTo sortie
End If
Next
Next
sortie:
fin = Timer
If trouver = True Then
MsgBox (fin - debut)'tu pourras supprimer  
'cette ligne c'est juste pour tester la vitesse
trouvevaleur = plage.Cells(i, j).Address
End If
End Function


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Incorporation d'une fonction RechercheV dans une macro

 

Sujets relatifs
fonction qui pose probleme[C] la fonction rint, qui connait?
[Progress] Fonction Accumulate qui marche pas[algo] fonction qui genere une ligne 3d aleatoire...
Plusieurs petites questions et demande de fonction sur Delphi[ PERL ] Fonction pour ouvrir un fichier html
[delphi] débutant : quitter une fonctionpb avec la fonction DELETE ds une BdD
pb mysql / PHP avec la fonction DELETE[PHP] Faire appel à une fonction à l'aide d'un lien ???
Plus de sujets relatifs à : Incorporation d'une fonction RechercheV dans une macro


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR