Macro pour remplacer Formule Matricielle trop Lourde

Bonjour à toutes et à tous,

J'aurai bien besoin d'un petit coup de main pour réaliser une macro sous VBA.

En fait je voudrais faire l'équivalent d'un Index-Equiv qui me montrerai tous les résultats remontés et pas seulement le premier.

Le "meilleur" moyen que j'ai trouvé semble être une formule matricielle. Problème je dois aller faire des centaines de recherches sur un tableau qui lui même fait env 1500 lignes. Du coup ça met VRAIMENT beaucoup de temps (Je suis jamais arrivé à la fin du calcul, j'ai stoppé au bout de 10 min).

Je pourrais aussi passer par un TCD mais ce n'ai pas possible à cause des autres utilisations de mon fichier.

Comme un fichier est plus parlant qu'un long discours, voici ci-joint un exemple du résultat que je souhaiterai obtenir.

Je vous remercie de votre aide !

Cordialement,

23test1.xlsx (13.22 Ko)

Je pourrais aussi passer par un TCD mais ce n'ai pas possible à cause des autres utilisations de mon fichier.

C'est exactement ce que j'allais te proposer ... je n'ai du reste pas compris ce "blocage" sur les TCD ! cela fait la seconde fois aujourd'hui !

Ce n'est pas un blocage, c'est plutôt que je n'arrive pas à le paramétrer pour obtenir ce que je veux de la forme que je veux.

Je ne sais pas si c'est clair dans mon fichier mais j'ai 2 jeux de données et je veux que ça me mette la recherche que je fais dans la première en face de ce que j'ai dans la deuxième ... J'ai du mal à expliquer, je pensais que mon fichier serait clair ...

Au final, je ne vois pas de moyen de passer par un TCD désolé (peut être un truc tout bête à faire mais que je ne connais pas).

Si tu peux m'aiguiller un peu plus sur cette solution ça serait top mais je ne sais pas si ça ira avec ce que je fais ensuite des données (à tester).

Sinon je reste preneur d'une autre solution.

Merci bien.

Bonjour

Vois ce fichier

37test1.xlsm (22.84 Ko)

Dis-moi

(Je n'ai pas tenu compte es couleurs dans un premier temps)

A+

Bonjour Patty5046,

Le résultat obtenu est bien le bon (en tout cas il est conforme à ce que je voulais dans le fichier Test1)

Cependant quand j'essaye d'appliquer le code à mon fichier, le débogueur me signal l'erreur suivante :

Erreur d'exécution '5' :

Argument ou appel de procédure incorrect

sur cet ligne de code :

ws2.Cells(i, 16) = Left(champ, Len(champ) - 1)

Je n'ai pas l'erreur sur le fichier Test1 pourtant ... J'ai vérifié mais j'ai l'impression que tout est bien au même endroit, même nom de sheet, etc ...

Je ne comprends pas vraiment ton code alors je n'arrive pas à cerner l'erreur désolé ...

Nb : les couleurs c'était seulement pour aider à la compréhension du fichier, rien d'important

Bonjour

As-tu bien déclaré ws2 :

Set ws2 = Sheets("BW list")

ou une autre sheet dans ton cas ??

A+

Sinon, un extrait du vrai fichier si tu peux ??

Bonjour,

Oui oui ws2 est bien déclaré ...

Je viens de passer un moment à chercher et je ne vois pas comment corriger l'erreur ... quand je copie mes données dans ton fichier l'erreur apparaît. J'ai essayé de convertir les données car je pensais à un problème de format mais rien à faire j'ai toujours l'erreur qui apparaît ...

Je te joins un extrait de mon fichier pour que tu vois comment sont mes données ( Je ne peux malheureusement pas tout mettre ... )

Merci beaucoup.

27test2.xlsm (61.34 Ko)

Il y a des cas où champ est vide :

            If Len(champ) > 0 Then ws2.Cells(i, 16) = Left(champ, Len(champ) - 1)

initialise aussi champ à "" dans ta macro

Bonjour Picklerick, bonjour Steelson

Tu as eu la réponse par Steelson. En effet, je n'avais pas prévu que la valeur de ProSoMapping puisse être vide ...

Autant pour moi

Bonne continuation

Pas trop problèmes, c'est moi qui n'ai pas bien détaillé ma demande et mon fichier ...

En tout cas ça fonctionne maintenant !

Merci à vous Steelson et Patty5046

Bonne continuation.

Bonjour

Nous sommes là pour aider, c'est normal

Bonne fin de journée

Rechercher des sujets similaires à "macro remplacer formule matricielle trop lourde"