Recherche une valeur string dans une plage

7test.xlsx (15.80 Ko)

Bonjour,

J'ai un tableau qui contient des types de transaction suivant leur nature (feuille 1)

Et un tableau qui peut contenir enormement de donnée donc le type de transaction et le montant (feuille 2)

Je vous ai mis un document anonymisé pour vous faire une idée.

Je suis à la recherche d'une fonction VBA qui me permet de dire:

Si ma transaction est du type "executed" alors ...

TestExe = Application.Match(curInstr.T_Type, Range("executed"))
    If Not IsError(TestExe) Then

J'ai codé ça mais ça ne semble pas fonctionner. Ici "curInstr.T_Type" fait reference à un dictionnaire qui contient la type de transaction et le "Range("executed")" c'est tout simplement la plage nommée de la feuille 1.

J'aimerai éviter de code un second dictionnaire qui comprends les valeurs executed car je pense qu'on peut faire sans. De même un fastidieux

If cells (..,..) = "AE" OR ... 

est à proscrire. Je ne peux pas utiliser PowerQuery ...

Une idée ?

Bonjour,

Quelques confusions : ton classeur (en xlsx) ne contient de fait aucun code VBA, il n'y a aucune plage nommée dans ce fichier, et par ailleurs il faudrait s'entendre sur ce que représente le dictionnaire évoqué ! Et j'ai du mal à imaginer que curInstr.T_Type puisse y faire référence !

Par ailleurs, et pour en rester strictement à ce qui est visible, si les mentions portées sur Feuil1 listent par colonne des types de transactions regroupés, je n'y vois pas de regroupement "executed" mais j'y trouve un "Tops - Executed" ?

Il faut donc tout reprendre pour faire autant que possible apparaître un mode d'emploi cohérent du contenu de Feuil1, et ce qui est attendu sur Feuil2.

Cordialement.

Bonjour, Merci de votre aide;

Oui j'ai posté un fichier pour montrer la structure, c'est evidement pas le document que j'utilise

Tout simplement car le document contient des informations confidentielles.

Je cherche un truc très con (autant que moi a priori) , je pense pas que le document soit nécessaire plus que outre mesure.

Autrement posé, existe t'il une fonction qui permette de faire "matcher" une valeur par rapport à un plage en String ?

Ou peut etre une fonction d'appartenance ?

Si la valeur appartient à la plage alors ... sinon ...

Voilà un bout de code pour comprendre le dico:

counter = 2
While CStr(shTrade.Cells(counter, 1).Value) <> ""
    curISIN = CStr(shTrade.Cells(counter, 2).Value)
     Set curInstr = dic1(curISIN)
    curInstr.T_Type = CStr(shTrade.Cells(counter, 4).Value)                                                 'ticket type'
        TestExe = Application.Match(curInstr.T_Type, Range("executed"))
    If Not IsError(TestExe) Then

Disons que pour l'instant tu t'amuses à jeter en l'air des éléments hétérogènes, non définis, non clairement identifiables pour la plupart, et il est difficile d'imaginer produire un résultat (dont on ignore la nature par ailleurs) avec cet arsenal hétéroclite.

Attendons donc que l'ensemble proposé révèle quelques aptitudes à contribuer à l'élaboration d'un résultat, et l'on pourra reconsidérer la question.

A+...

Si je comprends bien, tu dis que je ne fais aucun effort pour te fournir assez d'élément pour m'aider ...

Malheuresement à part envoyer le document, je ne vois pas ce que je peux faire, or c'est impossible

En plus, je n'aime pas qu'on me donne un morceaux de code à copier/coller. C'est pas trop l'esprit d'un forum collaboratif...

Si jamais quelqu'un connait une fonction(valeur, plage) qui renvoi à du boolean si la valeur est dans la plage. Je suis toujours preneur.

Merci malgré le trool Mr Ferrand

Rechercher des sujets similaires à "recherche valeur string plage"