Décaler par rapport à une recherche

Bonjour à tous,

Dans le cadre de mon stage, je dois réaliser des fiches de commandes contenant le numéro de commande, le numéro de série, les informations sur le client et le détail de ses achats.

Afin de mieux gérer cela, ces informations ont été mises dans des tableaux excel répartis sur plusieurs feuilles.

J'ai un problème pour afficher de détail des achats. Actuellement je recherche dans la première ligne le produit ayant le même numéro de commande que celui qui a été saisis par l'utilisateur avec

=RECHERCHEV($B$1;Article1;4;FAUX)

et pour afficher le reste de ses achats, s'il y en a, je mélange la fonction SI à la fonction DECALER :

=SI(DECALER(Article1!A2;1;0;1;1)=$B$1;DECALER(Article1!D2;1;0);"")

Malheureusement ce système ne fonctionne que sur la première commande et dès que je veux voir le détail des achats des autres commandes, j'ai des trous dans mon tableau.

En gros ça me donne :

285003 TONNE A EAU 3000L 1 13850 0 (première ligne avec la fonction RECHERCHEV)

285003 TONNE A EAU 3000L 1 13850 0 (lignes affichées avec les fonctions SI et DECALER)

260601 ROULEAU OCCASION 1 3000 0

Comment faire pour prendre les lignes qui se situent seulement après la recherche et non pas au tout début du document ?

J'espère que vous m'aiderais car je bloque complètement.

Kylia.

Bonjour

Merci de joindre ton fichier pour une meilleure compréhension.

Amicalement

Nad

La case jaune avec le nombre dedans représente le compteur, l'utilisateur entre dedans le numéro 5 par exemple et ma feuille va lui montrer les informations de la commande numéro 6 car elle augmente de 1 à chaque fois.

Le bouton jaune est le bouton qui permet de lancer la macro de sauvegarde et qui me sera utile par la suite.

J'ai 2 feuilles d'articles, Article1 et Article2 car à la base je n'ai pas assez de place sur Article1, il a donc fallut que je mette une partie des informations sur Article2.

Bonjour,

y avait pas besoin de passer par Cijoint , ton fichier passe direct !

avec un filtre élaboré, plus de formule pour çà

Sub FiltreArticle()
    With Sheets("Article1")
        .Range("d1:k" & .[d65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
        "q1:q2"), CopyToRange:=Sheets("BON").Range("a20:e20"), Unique:=False
    End With
End Sub

Bonne journée

Claude

26cijwffrptz-base.zip (22.73 Ko)
Rechercher des sujets similaires à "decaler rapport recherche"