VBA : optimisation macro
Résolu/Fermé
ptite_joe
-
5 févr. 2010 à 01:59
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 9 févr. 2010 à 19:24
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 9 févr. 2010 à 19:24
A voir également:
- VBA : optimisation macro
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Autofill vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
8 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
5 févr. 2010 à 07:11
5 févr. 2010 à 07:11
Bonjour,
Déjà au début tu peux ajouter :
application.screenupdating=false
Rétablir à la fin avec =true
Et pour le reste ça serait plus facile avec un fichier exemple de ce que tu as, ce que tu veux obtenir et ta macro.
Tu peux utiliser cijoint.fr et déposer ici le lien fourni.
eric
Déjà au début tu peux ajouter :
application.screenupdating=false
Rétablir à la fin avec =true
Et pour le reste ça serait plus facile avec un fichier exemple de ce que tu as, ce que tu veux obtenir et ta macro.
Tu peux utiliser cijoint.fr et déposer ici le lien fourni.
eric
ptite_joe
Messages postés
1
Date d'inscription
vendredi 5 février 2010
Statut
Membre
Dernière intervention
5 février 2010
5 févr. 2010 à 14:49
5 févr. 2010 à 14:49
Bonjour Eriiic,
tout d'abord, merci pour ta reponse !
Voici un exemple de fichier :
http://www.cijoint.fr/cjlink.php?file=cj201002/cijEiBQrl0.xlsx
Je n'ai dans ce fichier que 4 bases de donnees que j'ai tronquees, mais les base de donnees vont rapidement devenir importantes. Le probleme est qu'il y a de nombreux doublons entre les differentes bases de donnees.
Ce que je voudrais : que la macro parcourt toutes les bases de donnees, et rapatrie dans l'onglet "Database" chaque '"nom de code de la proteine", en colonne, sans doublon. Je veux creer une base de donnes unique en clair !
Merci pour votre aide !!!
ptite_joe
tout d'abord, merci pour ta reponse !
Voici un exemple de fichier :
http://www.cijoint.fr/cjlink.php?file=cj201002/cijEiBQrl0.xlsx
Je n'ai dans ce fichier que 4 bases de donnees que j'ai tronquees, mais les base de donnees vont rapidement devenir importantes. Le probleme est qu'il y a de nombreux doublons entre les differentes bases de donnees.
Ce que je voudrais : que la macro parcourt toutes les bases de donnees, et rapatrie dans l'onglet "Database" chaque '"nom de code de la proteine", en colonne, sans doublon. Je veux creer une base de donnes unique en clair !
Merci pour votre aide !!!
ptite_joe
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
5 févr. 2010 à 19:40
5 févr. 2010 à 19:40
Bonsoir,
J'ai dû le convertir au format excel 2003, si tu veux récupérer tout ton nombre de lignes possibles sur 2007 il faut que tu l'enregistres en .xlsx
J'ai fait en sorte que la macro s'adapte au nombre de lignes dispo selon la version.
Je n'ai pas comparé le temps avec ta version, je pense qu'il y a un gain mais je ne sais pas de combien.
Par contre une donnée que tu n'as pas fourni : combien d'id à terme ?
Et que faire si le nombre maxi est atteint ? Attaquer la colonne suivante que tout soit sur la même feuille ou ajouter une feuille database ou ... ?
Je pense que ça tourne bien mais je te laisse le soin de tester à fond et de remonter les anomalies assez vite tant que j'ai le truc en tête.
Ptitejoe.xls
eric
J'ai dû le convertir au format excel 2003, si tu veux récupérer tout ton nombre de lignes possibles sur 2007 il faut que tu l'enregistres en .xlsx
J'ai fait en sorte que la macro s'adapte au nombre de lignes dispo selon la version.
Je n'ai pas comparé le temps avec ta version, je pense qu'il y a un gain mais je ne sais pas de combien.
Par contre une donnée que tu n'as pas fourni : combien d'id à terme ?
Et que faire si le nombre maxi est atteint ? Attaquer la colonne suivante que tout soit sur la même feuille ou ajouter une feuille database ou ... ?
Je pense que ça tourne bien mais je te laisse le soin de tester à fond et de remonter les anomalies assez vite tant que j'ai le truc en tête.
Ptitejoe.xls
eric
Bonjour Eriiic,
je viens de tester la macro et ca marche parfaitement et plus rapidement que la mienne !!
Merci beaucoup ! A terme, je ne sais pas combien d'ID il y aura, cela depend des experiences mais je pense que ce devrait aller...^^
Merci !
Ptite_joe
je viens de tester la macro et ca marche parfaitement et plus rapidement que la mienne !!
Merci beaucoup ! A terme, je ne sais pas combien d'ID il y aura, cela depend des experiences mais je pense que ce devrait aller...^^
Merci !
Ptite_joe
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hello Eriiic !
J'ai encore une tout derniere question si je peux abuser de ton savoir...
Maintenant que j'ai ma base de donnees, je voudrais faire des rechercheV sur mes "Protein IDs". Sauf que dans mes fichiers sources, les IDs sont organisees de la meme facon que dans mes onglets (plusieurs IDs par cellule separees par un point-virgule) - donc la rechercheV ne marche pas... J'ai bien essaye de combiner des fonctions FIND et EQUIV mais ca ne marche pas. Penses-tu qu'il y a une solution pour que la rechercheV fonctionne ou je dois obligatoirement passer par une macro ?
Merci pour ton aide et vive les forums !
Ptite_joe
J'ai encore une tout derniere question si je peux abuser de ton savoir...
Maintenant que j'ai ma base de donnees, je voudrais faire des rechercheV sur mes "Protein IDs". Sauf que dans mes fichiers sources, les IDs sont organisees de la meme facon que dans mes onglets (plusieurs IDs par cellule separees par un point-virgule) - donc la rechercheV ne marche pas... J'ai bien essaye de combiner des fonctions FIND et EQUIV mais ca ne marche pas. Penses-tu qu'il y a une solution pour que la rechercheV fonctionne ou je dois obligatoirement passer par une macro ?
Merci pour ton aide et vive les forums !
Ptite_joe
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
8 févr. 2010 à 21:03
8 févr. 2010 à 21:03
Bonsoir,
Et non, un recherchev() ne peut pas trouver une portion de chaine dans la table, obligée de faire une macro (qui risque d'être longue à trouver le résultat...)
Mais si ta recherche part de ta database crée pourquoi ne pas inscrire sur la ligne des liens vers les cellules où les ID ont été trouvés (et pourquoi pas non plus ajouter sur ces cellules liens un commentaire approprié pour faciliter ton choix) ?
Dans la limite des 256 colonnes pour 2003...
eric
Et non, un recherchev() ne peut pas trouver une portion de chaine dans la table, obligée de faire une macro (qui risque d'être longue à trouver le résultat...)
Mais si ta recherche part de ta database crée pourquoi ne pas inscrire sur la ligne des liens vers les cellules où les ID ont été trouvés (et pourquoi pas non plus ajouter sur ces cellules liens un commentaire approprié pour faciliter ton choix) ?
Dans la limite des 256 colonnes pour 2003...
eric
Hello Eriiic,
et bien, je pense que c'est ce que je vais faire, ca me semble une bonne idee et ca sera moins complique !
Merci pour ta reponse ! :-)
Ptite_joe
et bien, je pense que c'est ce que je vais faire, ca me semble une bonne idee et ca sera moins complique !
Merci pour ta reponse ! :-)
Ptite_joe
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
9 févr. 2010 à 19:24
9 févr. 2010 à 19:24
Ok, bon courage ;-)
Reviens si tu as un soucis, et n'oublie de mettre en résolu si c'est le cas
eric
Reviens si tu as un soucis, et n'oublie de mettre en résolu si c'est le cas
eric