Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.



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
    40.1 KB · Affichages: 6

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

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 !

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…