Aide sur macro V2

Fermé
Frabian Messages postés 9 Date d'inscription lundi 15 juin 2015 Statut Membre Dernière intervention 20 juillet 2015 - 20 juil. 2015 à 16:59
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 27 juil. 2015 à 04:32
Bonjour,

Je reviens vers vous car après m'être fait aider par michel_m et pikaju (que je remercie grandement encore une fois), j'ai besoin d'améliorer la macro qui a été conçus à ce moment la. Je vais essayé de mettre tous les détails et s'il en manque, je m'en excuse d'avance

Explication

J'ai une base de phrase, date, auteur que je cherche à trier. Grâce à eux, cela à pu être fait. Cependant pour aller plus loin il faut que je rajoute une information. Déjà, voici la structure des données

Numéro du livre Date Phrase Auteur Cible

Le numéro du livre peut être le même pour plusieurs auteurs différents (et donc date et phrase). Cependant la colonne Cible n'est pas rempli.
La colonne cible se rempli en fonction des autres auteurs présents pour un même livre (même numéro). Voici un exemple

Pour un même livre,

1____2014_____Il était une fois______Proust
1____2012_____Un gnome qui court___Voltaire
1_____1989____Dans la forêt_________Hugo

ce qui doit me donner:

1___2014___Il était une fois________Proust____Voltaire
1___2014___Il était une fois________Proust____Hugo
1___2012___Un gnome qui court____Voltaire___Proust
1___2012___Un gnome qui court____Voltaire___Hugo
1___1989___Dans la forêt__________Hugo_____Proust
1___1989___Dans la forêt__________Hugo_____Voltaire


Une fois les cibles attribuées, je dois compter les doublons (pour cela, c'est bon je sais le faire).

Donc pouvez-vous m'aider à faire ce bout de code qui me résiste ? La contrainte que j'ai c'est que j'ai plusieurs dizaines de milliers de livre et donc il faut que ce soit le plus rapide possible.

Merci d'avance !

PS: voici le précédent post au cas ou https://forums.commentcamarche.net/forum/affich-32116870-optimisation-code





A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
26 juil. 2015 à 16:53
Bonjour
Le problème, avec ce que vous demandez, c'est que l'on ignore combien il peut y avoir d'auteurs avec le même N° de livre. Et avec votre système qui recopie chaque ligne pour chaque couple d'auteurs, on arrive vite à une très grande quantité de lignes (j'ai vu dans vos posts précédents que votre fichier contenait déjà 150000 lignes), si on rajoute des lignes supplémentaires pour chaque couple d'auteurs, votre fichier sera énorme,
Quelques exemples
avec 3 auteurs sur le même N°: cela fait 6 lignes (5 de plus)
avec 4 auteurs sur le même N°: cela fait 24 lignes (23 de plus)
avec 5 auteurs sur le même N°: cela fait 120 lignes (119 de plus), etc..
Je me demande si c'est bien raisonnable, quant à la vitesse d'exécution!!!!
En attendant les retours de michel_m et de pijaku, je peux vous suggérer une présentation un peu différente de ce que vous attendez, mais qui peut éventuellement vous intéresser.
Le principe: sur la première ligne de chaque groupe (ayant le même N°), on constitue les couples d'auteurs par colonne (une colonne par couple) les lignes en dessous restent vides jusqu'au prochain N°, ceci pour ne pas surcharger et permettre une meilleure lisibilité.
J'ai accepté jusqu'à 6 couples d'auteurs( je peux faire beaucoup plus) pour un même N° soit 14 colonnes contre 720 lignes dans votre cas.
Voici le fichier. Cliquez sur le bouton "Créer cible" pour voir le résultat.
https://www.cjoint.com/c/EGAoylk6VTw
Bonne journée
Cdlt
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
Modifié par Frenchie83 le 27/07/2015 à 04:38
Bonjour
Petite amélioration, qui je pense vous conviendra mieux et se rapproche de vos attentes.
https://www.cjoint.com/c/EGBcMmKCVQw
Bonne journée
Cdlt
0