J'ai du code VBA qui doit faire des recherches de valeur dans une feuille
Excel, et ce plusieurs fois de suite.
Lorsque le nombre de lignes dans les feuilles Excel devient (très) élevé,
je me demande quelle est la méthode la plus performante en terme de temps de
réponses :
1) rechercher directement dans les cellules de la feuille
2) créer une classe d'objet,
charger une bonne fois pout toute le contenu de la feuille Excel dans
une Collection de cette classe,
faire les recherches dans cette Collection
3) autres ?
En terme de ressources mémoire, l'option2 n'est certainement pas la
meilleure mais ce n'est pas ma priorité
c'est bien le temps de réponse qui m'intéresse
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonjour, Attention ta messagerie bégaye?§ Sauf précisions sur la structure de tes données et surtout le but , quel type de ta recherche : Pourquoi plusieurs fois (la même chose? ou plusieurs recherches)
En fonction de quoi:
Rechercher du menu pour des chaines ou valeurs va te servir plus pour remplacer modifier ou sélectionner une à une les valeurs cherchées .
En vb tu utiliseras: Find
Données filtre automatique te permet de mettre en évidence(en masquant les autres) directement toutes les lignes de ta table répondant au critère de ton filtre.
En Vb: autofilter
En général, si des fonctionnalités existent déjà dans excel pour des données elles mêmes déjà présentes dans une feuille , il n'est pas forcément utile d'engager des moyens supplémentaires Tu peux aussi envisager de coder si cela n'y répond pas , reste à savoir ce que tu veux faire.
lSteph
"Camf" a écrit dans le message de news: d8e4cl$83s$
Bonjour à toutes et tous,
J'ai du code VBA qui doit faire des recherches de valeur dans une feuille Excel, et ce plusieurs fois de suite. Lorsque le nombre de lignes dans les feuilles Excel devient (très) élevé, je me demande quelle est la méthode la plus performante en terme de temps de réponses :
1) rechercher directement dans les cellules de la feuille
2) créer une classe d'objet, charger une bonne fois pout toute le contenu de la feuille Excel dans une Collection de cette classe, faire les recherches dans cette Collection
3) autres ?
En terme de ressources mémoire, l'option2 n'est certainement pas la meilleure mais ce n'est pas ma priorité c'est bien le temps de réponse qui m'intéresse
merci par avance de vos réponses Christian
Bonjour,
Attention ta messagerie bégaye?§
Sauf précisions sur la structure de tes données et
surtout le but , quel type de ta recherche :
Pourquoi plusieurs fois (la même chose? ou plusieurs recherches)
En fonction de quoi:
Rechercher du menu pour des chaines ou valeurs va te servir plus
pour remplacer modifier ou sélectionner une à une les valeurs cherchées .
En vb tu utiliseras: Find
Données filtre automatique te permet de mettre en évidence(en masquant les
autres) directement
toutes les lignes de ta table répondant au critère de ton filtre.
En Vb: autofilter
En général, si des fonctionnalités existent déjà dans excel pour des données
elles mêmes
déjà présentes dans une feuille , il n'est pas forcément utile d'engager des
moyens supplémentaires
Tu peux aussi envisager de coder si cela n'y répond pas , reste à savoir ce
que tu veux faire.
lSteph
"Camf" <camf.delaunay@neuf.fr> a écrit dans le message de news:
d8e4cl$83s$1@apollon.grec.isp.9tel.net...
Bonjour à toutes et tous,
J'ai du code VBA qui doit faire des recherches de valeur dans une feuille
Excel, et ce plusieurs fois de suite.
Lorsque le nombre de lignes dans les feuilles Excel devient (très) élevé,
je me demande quelle est la méthode la plus performante en terme de temps
de réponses :
1) rechercher directement dans les cellules de la feuille
2) créer une classe d'objet,
charger une bonne fois pout toute le contenu de la feuille Excel dans
une Collection de cette classe,
faire les recherches dans cette Collection
3) autres ?
En terme de ressources mémoire, l'option2 n'est certainement pas la
meilleure mais ce n'est pas ma priorité
c'est bien le temps de réponse qui m'intéresse
Bonjour, Attention ta messagerie bégaye?§ Sauf précisions sur la structure de tes données et surtout le but , quel type de ta recherche : Pourquoi plusieurs fois (la même chose? ou plusieurs recherches)
En fonction de quoi:
Rechercher du menu pour des chaines ou valeurs va te servir plus pour remplacer modifier ou sélectionner une à une les valeurs cherchées .
En vb tu utiliseras: Find
Données filtre automatique te permet de mettre en évidence(en masquant les autres) directement toutes les lignes de ta table répondant au critère de ton filtre.
En Vb: autofilter
En général, si des fonctionnalités existent déjà dans excel pour des données elles mêmes déjà présentes dans une feuille , il n'est pas forcément utile d'engager des moyens supplémentaires Tu peux aussi envisager de coder si cela n'y répond pas , reste à savoir ce que tu veux faire.
lSteph
"Camf" a écrit dans le message de news: d8e4cl$83s$
Bonjour à toutes et tous,
J'ai du code VBA qui doit faire des recherches de valeur dans une feuille Excel, et ce plusieurs fois de suite. Lorsque le nombre de lignes dans les feuilles Excel devient (très) élevé, je me demande quelle est la méthode la plus performante en terme de temps de réponses :
1) rechercher directement dans les cellules de la feuille
2) créer une classe d'objet, charger une bonne fois pout toute le contenu de la feuille Excel dans une Collection de cette classe, faire les recherches dans cette Collection
3) autres ?
En terme de ressources mémoire, l'option2 n'est certainement pas la meilleure mais ce n'est pas ma priorité c'est bien le temps de réponse qui m'intéresse
merci par avance de vos réponses Christian
Philippe Noss
Bonjour, On peut aussi charger la plage dans un tableau : Tldv = Mafeuille.Range("A1:AZ20000")
Et pourqoui ne pas faire de recherche avec Applaction.vlookup ?
Maintenanant cela dépend de ton code, mais il est vrai qu'a partir d'un grand nombre d'infos traité VBA devient lent... Philippe NOSS www.exefac.com
Bonjour,
On peut aussi charger la plage dans un tableau :
Tldv = Mafeuille.Range("A1:AZ20000")
Et pourqoui ne pas faire de recherche avec Applaction.vlookup ?
Maintenanant cela dépend de ton code, mais il est vrai qu'a partir
d'un grand nombre d'infos traité VBA devient lent...
Philippe NOSS
www.exefac.com