XL 2019 Combinaison RechercheV + NB.SI

Pieerre69

XLDnaute Junior
Bonjour à tous,

Je n'arrive pas à mettre des mots sur mon problème, alors je vous joint une image bien plus parlante.

Annotation 2020-02-10 123512.png
Annotation 2020-02-10 135712_LI.jpg


Dans mon code (joint ci-après), je demande à l'utilisateur de saisir le numéro d'anomalie pour lui renvoyer le reste des DATA.
Je fais ensuite une RechercheV avec le numéro d'anomalie saisie, et il me renvoie successivement la valeur de la colonne 2, 3 et 4.

Pour l'instant j'ai donc la première ligne "Code Article, Designation et Qte" pour mon n° 25.
Je voulais faire une boucle pour tout i allant de 1 à [nombre de fois que 25 se trouve dans le tableau A11: D&{DerLigne}], mais la rechercheV renvoie toujours la première valeur qu'elle trouve..
Avez-vous une solution ?

Merci d'avance.

VB:
Sub editer_fiche_enfant()

DerLig = (Sheets("BDD").Cells(65536, 1).End(xlUp).Row) + 1

n°anomalie = InputBox("VEUILLEZ CHOISIR UN NUMERO D'ANOMALIE", "EDITER UNE FICHE ENFANT")
nb_anomalie = Application.CountIf(Sheets("BDD").Range("A" & "11" & ":A" & DerLig), n°anomalie)

For i = 1 To nb_anomalie

    With Sheets("MAGASIN 1")
        .Cells(9 + (i * 2), 11).Value = Application.VLookup(n°anomalie, Sheets("BDD").Range("A" & "11" & ":D" & DerLig), 2, False)
        .Cells(9 + (i * 2), 12).Value = Application.VLookup(n°anomalie, Sheets("BDD").Range("A" & "11" & ":D" & DerLig), 3, False)
        .Cells(9 + (i * 2), 13).Value = Application.VLookup(n°anomalie, Sheets("BDD").Range("A" & "11" & ":D" & DerLig), 4, False)
    
    End With
Next i


End Sub
 

Pièces jointes

  • Annotation 2020-02-10 123512.png
    Annotation 2020-02-10 123512.png
    40.1 KB · Affichages: 5

xUpsilon

XLDnaute Accro
Bonjour,

J'ai pas compris grand chose mais déjà une première indication qui a son importance : la fonction RECHERCHEV s'arrete à la première occurrence par définition. Donc, si tu veux autre chose, il ne faut pas utiliser RECHERCHEV.

Bonne continuation
 

Pieerre69

XLDnaute Junior
Bonjour,

J'ai pas compris grand chose mais déjà une première indication qui a son importance : la fonction RECHERCHEV s'arrete à la première occurrence par définition. Donc, si tu veux autre chose, il ne faut pas utiliser RECHERCHEV.

Bonne continuation

Je me doute bien que je n'ai pas été assez clair.. Je n'arrive même pas à mettre par écrit ce que je souhaite dans ma tête ! :D

Quelle alternative j'ai à la rechercheV mais qui prenne en compte des occurences ?

Dans mon exemple, je souhaite que le programme renvoie la valeur de la colonne X à chaque fois qu'il trouve le n° d'anomalie que l'utilisateur a demandé (dans l'exemple c'est le n°25).
La rechercheV va me renvoyer la valeur correspondant à la première occurrence.
Je souhaite qu'il continue à me renvoyer les valeurs de la colonne X sans prendre en compte les valeurs qu'il a déjà renvoyé..
Si ça rend le problème plus clair..
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Avec une image, il faut reproduire tout le fichier et je pense que tu n'auras pas beaucoup de réponse en formule ou en VBA.
un truc du genre index(plage;petite.valeur(si(plage=25;ligne(plage));ligne(1:1))
en matricielle bien sûr.

JHA
 

xUpsilon

XLDnaute Accro
Bonjour,

Si j'ai bien compris, il te faut une sommeprod.
Sans fichier joint, difficile de te montrer ce que je veux dire mais en gros il te faut un =SOMMEPROD((A_:A_=25)*B_:B_)

Cette formule te renvoie les valeurs de la colonne B pour chaque présence de 25 dans la colonne A.

Bonne continuation
 

Pieerre69

XLDnaute Junior
Ci-joint le fichier.

De base mon objectif est de recopier les valeurs de A9: D16 sur K11:N18 (sur la feuille MAGASIN 1)
Tout en recopiant les données sur la feuille BDD A11: D_ _
Ma partie de code est Sub editer_fiche_enfant() si jamais
 

Pièces jointes

  • HEKIPIA - Gestion des manquants.xlsm
    89.8 KB · Affichages: 6

Discussions similaires

Réponses
7
Affichages
321
Réponses
4
Affichages
209

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 129
dernier inscrit
Atruc81500