[Resolu] RechercheV par couleur de cellule

Shindaraa

XLDnaute Nouveau
Bonjour a tous,
Comment allez vous?

Longtemps que je n'ai pas eu recours a ce forum puisque j'ai reussi a y trouver une reponse a chaque fois pour des sujet existants, mais malheureusement pas ce coup-ci.

Apres de nombreuses recherches ici et ailleurs, j'ai reussi a trouver un tutoriel Youtube pour créer une formule RechercheV par VBA (je suis novice absolu dans ce domaine) qui me renvoit une valeur en fonction de la couleur du fond de la cellule.
Comme vous pouvez le constater dans les colonnes K et L de la P1 , la formule semble bien fonctionner (si jamais vous avez le temps de jeter un coup d'oeil au code VBA pour le verifier et me dire si c'est "propre" ce serait genial aussi, j'ai eu quelques soucis avec le numero de colonne pour renvoyer la valeur qui ne fonctionnait pas toujours).
Cependant, j'aimerais combiner cette nouvelle formule avec une imbrication de RechercheV et Index que javais precedemment cree, que vous pouvez voir en cellule I4 -> I6 . Seulement quand j'essaye de les assembler (en I2 et I3) cela ne semble pas fonctionner.

Alors vu que je n'y connais rien en VBA, je me demandais si il y avait une ligne de code a rajouter pour que cette nouvelle formule fonctionne en imbrication, ou si c'etait autre chose qui clochait.

Un grand merci d'avance pour vos reponses, et n'hesitez pas a me demander si vous avez besoin de plus d'informations de ma part pour me repondre au mieux.

:)
 

Pièces jointes

  • Test colorvlookup.xlsm
    31.1 KB · Affichages: 101

Dranreb

XLDnaute Barbatruc
Mais si on ne cherche plus la couleur ça peut être autre chose qu'un Range.
J'ai toujours une fonction qui peut virtuellement restituer à la cellule qui la porte le format d'une autre cellule spécifiée.
J'ai changé mon fusil d'épaule: Je n'aime déjà pas en temps normal la fonction RECHERCHEV parce qu'elle ne permet de redonner qu'une colonne à droite de celle des valeurs de référence et qu'elle oblige à compter le nombre de colonnes qui les séparent, Mais la c'est le bouquet s'il faut pouvoir restituer la valeur seule ou bien la valeur + le format, chacune de ces 2 possibilités pour 3 cas de figures de recherche : seulement la valeur, seulement la couleur ou bien la valeur + la couleur. Ayant fait des suppositions quant à la raison possible pour laquelle si peu de gens ne préfèrent pas la combinaison INDEX/EQUIV, il m'est venu une idée: Une fonction PlagEquiV qui fonctionne à peu près comme EQUIV sauf qu'on ne précise pas le 3ième paramètre 0, mais surtout qui au lieu de renvoyer un numéro de ligne, renvoie la ligne elle même. Il ne reste plus qu'à en demander l'intersection avec la colonne désirée par un simple espace entre les deux.
Voilà où j'en suis.
 

Pièces jointes

  • RechCoulV.xlsm
    31.2 KB · Affichages: 31

job75

XLDnaute Barbatruc
Bonjour Shindaraa, Bernard, le forum,

Uniquement pour le fun voici une fonction VBA qui convertit le résultat de RECHERCHEV en Range :
Code:
Function ConvertToRange(x) As Range
Dim s, v As Variant, plage As Range, colonne As Integer
s = Split(Application.Caller.Formula, ",")
v = Evaluate(Replace(s(0), "=colorvlookup(ConvertToRange(VLOOKUP(", "")) 'valeur recherchée
Set plage = Evaluate(s(1))
colonne = Evaluate(s(2) & "," & s(3) & "," & s(4))
Set ConvertToRange = plage(Application.Match(v, plage.Columns(1), 0), colonne)
End Function
Formule en I2 de ce fichier (2) :
Code:
=colorvlookup(ConvertToRange(RECHERCHEV(A2;'P2'!$A$2:$AX$9;EQUIV(B2;'P2'!$A$2:$AX$2;0);FAUX));'P2'!$U$12:$V$13;2;0)
A+
 

Pièces jointes

  • Test colorvlookup(2).xlsm
    38.9 KB · Affichages: 22

job75

XLDnaute Barbatruc
Re,

Toujours pour le fun dans ce fichier (2 bis) la conversion en Range se fait dans la fonction colorvlookup elle-même.

Edit : dans la formule en I2 il est mieux de préciser la feuille avec 'P1'!A2 et "P1'!B2.

A+
 

Pièces jointes

  • Test colorvlookup(2 bis).xlsm
    38.9 KB · Affichages: 27
Dernière édition:

Statistiques des forums

Discussions
312 159
Messages
2 085 836
Membres
102 998
dernier inscrit
billABDELL