Recherche d'une valeur dans un tableau par rapport à une autre

Bonjour à tous,

Je bute sur un truc pour lequel j'ai une solution qui ne me satisfait pas, je voudrais faire beaucoup plus simple/esthétique !

J'ai une feuille "Checkpoint_CR" et une feuille "Action".

Première problématique

Dans la feuille "Action", les utilisateurs doivent numérotés les lignes d'action de 1 à n (colonne "U"/ [CP AVANCE]).

Je leur demande en fait: "Quelles sont les points qu'ils souhaitent aborder lors de leur prochain checkpoint avec les équipes ?"

Cette numérotation (que je répercute dans la feuille "Checkpoint_CR" colonne "C" à partir de la ligne 11) me permet de rapatrier la description de l'action dans le tableau checkpoint (Colonne "E:G" fusionné à la création du point) avec une formule INDEX(EQUIV( en R1C1. Avec une boucle FOR NEXT et à l'aide d'une variable basée sur une petite formule qui détermine le numéro MAX dans la colonne "U" de la feuille Action. Du bricolage...

Première question: Est ce que vous voyez un moyen plus "simple/optimisé" de faire le même résultat ? (sans utiliser une formule avec R1C1)

Seconde problématique

Dans la feuille "Checkpoint_CR" et à partir de la cellule "C11" également, je veux qu'il y ait le numéro du procédé ci-dessus + le numéro d'action correspondant à la numérotation (présent dans la feuille "Action" et la colonne "E" à partir de la cellule 14). Et là...COUAC. Je pourrais le faire facilement mais en deux colonnes, en utilisant une formule INDEX(EQUIV( en mode R1C1. Mais je voudrais que ça soit dans la même cellule que la numérotation du Checkpoint et propre sans R1C1.

Le résultat attendu est du type "NumérotationCheckpoint-NuméroAction" [auquel la numérotation se rapport] soit par exemple: 1-54, autrement dit le point 1 de mon checkpoint et qui correspond à l'action 54 de mon tableau "Action".

Merci pour votre aide, j'espère avoir été assez clair. On y arrive pas toujours lorsqu'on a le nez dans le guidon. ^^

P.S.: j'ai la même situation pour la cellule "V11" du tableau qui concerne une autre parti du checkpoint et dont la numérotation est reliée à la colonne "V" de la feuille Action

N.B.: Le code des boucles est dans le module 4

Si quelqu'un a des billes =D

Hello,

Il faut que tu utilises FormulaLocal au lieu de formulaR1C1 :

ActiveCell.FormulaLocal = "=INDEX(...)

FormulaLocal utilise la syntaxe A1 et L1C1. En revanche elle fonctionne avec la langue de ton poste quand tu codes. Ce qui veut dire que si tu codes ta formule en Fr, par exemple :

ActiveCell.FormulaLocal = "=RECHERCHEV(...)"

et que ce code est utilisé par un Excel ENG ça plante.

Pour ta deuxième problématique, tu peux garder la même logique et le faire en formule aussi

ActiveCell.FormulaLocal = "=formule pour recuperer le num action"&"-"&"=formule pour recup num checkpoint

Hello Rag,

Merci pour ta solution je t'avais fait une super réponse avant de la poster j'ai été déco, j'ai tout perdu GRRRR je vais résumer.

Tu m'as offert une super piste de réflexion parce que je n'avais pas penser à concaténer les deux formules. Tu m'as offert une super solution provisoire:

J'ai mis dans une cellule dissimulé en début de tableau le résultat de ma boucle FOR NEXT (le "num checkpoint") et du coup dans la cellule ou il n'y avait que ce numéro j'ai concaténer avec l'index(equiv( pour trouver le "num action". Je vais essayer de le faire en une seule ligne de code.

Par contre je suis toujours preneur d'une solution de code sans faire appel à un index(equiv( =D

Merci beaucoup

Hello,

Je me permets de donner mon avis sur :

Par contre je suis toujours preneur d'une solution de code sans faire appel à un index(equiv( =D

C'est une bonne chose d'être curieux et de voir d'autres façon de faire.

Par contre, je pense que c'est mieux d'utiliser une méthode que l'on connait, que l'on maitrise.

Comme tu l'as maitrise bien, tu passeras beaucoup moins de temps à la comprendre et la faire evoluer si nécéssaire

C'est bien aussi d'utiliser toujours la même méthode pour le même besoin, dans tous tes fichiers.

a+

Merci de ton conseil avisé 😁

J'étais parti du principe que cette méthode "ralentissait" l'exécution d'une macro. Vrai ou faux selon toi ?

J'étais parti du principe que cette méthode "ralentissait" l'exécution d'une macro. Vrai ou faux selon toi ?

Pas forcement. Toutes les solutions ont des points negatifs et positifs.

L'inconvénient de cette methode, c'est le recalcul et c'est vrai que si tu as beaucoup de lignes et pas mal de colonnes avec des formules c'est lourd ...

Maintenant, il faut que tu te poses la questions suivante :

Est ce que je prefere une methode + lente mais je suis capable de comprendre facilement et d'intervenir rapidement en cas d'incident ou est ce que je préfère qqch de rapide mais si j'ai un incident je suis incapable de gérer ?

Pour optimiser le recalcul, tu peux ajouter en debut/fin de code :

sub programme()
Application.Calculation = xlCalculationManual  

' ici  code

Application.Calculation =  xlCalculationAutomatic

Y'a du bon sens dans ce que tu me dis là

Je vais rester en l'état pour l'instant.

Cependant je vais continuer mes recherches en parallèle pour voir si je peux faire autrement, ça m'intéresse ! =D

Merci pour ton aide sur le sujet =)

Rechercher des sujets similaires à "recherche valeur tableau rapport"