Recherche de numéros de ligne selon 3 critères

Bonjour,

J'ai deux fichiers : Une base de données et un second où sont répertoriés des scénarios.

Le lien entre les deux fichiers sont des mots-clés identiques.

Je souhaiterais ainsi créer un code VBA permettant d'identifier le numéro d'une ligne de ma base de données selon 3 critères (mot-clés) que nous trouvons dans la base données et dans le second fichier.

Exemple : cela devrait me donner " La ligne 50 de ma base de données correspond au scénario 1 de mon second fichier "

Merci d'avance pour votre aide !!

ApprentieQualité

Bonjour AQ, bonjour le forum,

Un peu court comme explication il me semble !?... Comment veux-tu que l'on t'aide avec si peu alors que VBA a besoin de tous les renseignements possibles : noms et emplacement des fichiers, noms des onglets, plages des données, critères, etc.

Bonjour ThauThème,

Effectivement étant novice sur VBA je me sens un peu perdue...

Je te transmets un exemple du fichier excel ci-joint.

J'aimerai incrémenter le numéros des NC ( Feuille Base de données des NC) dans les scénarii correspondant dans la feuille (Scénario)

La donnée d'entrée commune entre les deux feuilles sont les mots-clés.

C'est à dire que si dans la base de données les 3 niveaux de mots clés correspondent aux mots clés des scénarii alors je veux le numéro des NC correspondantes aux scnénarii.

Merci beaucoup pour ton aide !!

ApprentieQualité

Sur les 32 personnes qui ont vu personne ne peut m'éclairer ?

S'il vous plait ...

Re,

Heu pas moi. Ce n'est toujours pas clair et tu ne daignes même pas répondre à mes questions...

Bonjour à tous,

C'est vrai qu'il ne faut pas s'attendre à une solution avec si peu d'informations....

En tout cas, il y a la solution formule matricielle avec EQUIV :

=EQUIV(1;(col1=val1)*(col2=val2)*col3=val3);0)

(ou sans validation matricielle en mettant cette fonction dans un SOMMEPROD).

Il y a une solution VBA qui utilise aussi la fonction EQUIV et il y a la boucle :

with range("labase")
    for i = 1 to .rows.count
        if .cells(i, 1) = val1 and .cells(i, 2) = val2 and .cells(i, 3) = val3 then
            position = i
            exit for
        end if
    next i
end with

Cdlt,

Bonjour à tous,

Tout d'abord merci pour vos réponses,
J'ai testé vos solutions 3GB, un message d'erreur s'affiche : "Erreur de compilation"
Je vais essayer d'être plus claire dans mes explications, je m'en excuse :

J'ai deux feuilles:

1) Nom : Les scénarios :

image

2) Nom : Base de données des non conformités :

image

La donnée d'entrée commune entre mes deux feuilles sont les mots-clés ( Mots clés 1, Mots clés 2, Mots clés 3).

Je souhaiterais répartir automatiquement le numéros des NC ( Feuillle "Base de données des Non conformités" Colonne A) dans les scénarios à risques ( Feuille "Scénario" Colonne E) selon les mots clés.

Exemple : Si les 3 niveaux de mots clés de la Feuillle "Base de données des Non conformités" correspondent à ceux de la Feuille "Scénario" alors Excel me donne le ou les numéros de la NC correspondante.

J'ai cherché toutes les solutions possible je n'y arrive pas,

J’espère que vous comprendrez ma problématique

Merci par avance !!

Bonjour,

Oui, c'était un exemple d'extrait de code, il faut au moins le placer à l'intérieur de sub macro() ... end sub pour éviter l'erreur de compilation . Puis, ensuite, il faut affecter ou changer les variables par les vraies valeurs et adapter les cellules.

En revanche, il ne peut y avoir d'erreur de compilation avec une formule. L'avez-vous testée (en adaptant bien sûr) ? Y a-til un intérêt à utiliser une macro dans on pourrait probablement se passer ?

Cdlt,

Merci pour ce retour,

Oui je l'ai testé en l'adaptant à mon problème, seulement je pense avoir fait une erreur quelque part je ne maîtrise pas tout à fait VBA

Cependant, on peut se passer d'une macro, en faisant des recherche un peu partout j'ai vu cette fonction et me suis dit que c'était peut-être la solution à mon problème.

Si vous avez d'autres moyens de répondre à ma problématique je suis preneuse.

En tout cas merci beaucoup de prendre le temps de me répondre

Franchement, j'aimerais bien, je pense qu'il peut se régler assez rapidement mais il faut que vous joigniez un fichier exploitable sinon, ça va être compliqué.

Ce que j'ai compris, c'est qu'on a une recherche multi-critères (SCENARIOS cherche les données dans Base, le NC notamment). Or, on a de multiples occurrences avec ces mêmes critères. Déjà, c'est assez peu courant mais c'est possible. Ensuite, sur votre feuille Base, on a toujours les mêmes mots. C'est ça qui est étonnant.

Edit : voici quand même un essai :

Cdlt,

Rechercher des sujets similaires à "recherche numeros ligne criteres"