Bonsoir matsniper,
tu as écrit : « j'ai remarqué aussi que vous avez d'abord trié (rangé) les fournisseurs
de sorte à regrouper leurs factures. »
c'est marrant, car moi je n'ai rien trié du tout ! :D c'était déjà trié comme ça quand
j'ai ouvert ton classeur ! ;) attention : je n'ai fait que modifier un peu la méthode
que tu as utilisée au départ, et cette méthode n'est valable que si c'est déjà trié
par ordre des fournisseurs (colonne B de la feuille "ACHATS").
l'ordre peut être croissant ou décroissant (peu importe), mais il faut impérativement
que les lignes des mêmes fournisseurs soient contigües ; sinon, ta méthode ne
peut plus être utilisée.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tu as écrit : « Je voudrais si cela est possible conserver la base des achats sous
le format original (non trié) et faire les règlements de factures à partir de cette
base. »
si la liste n'est pas triée par ordre des fournisseurs, on est obligé de choisir une
autre méthode, en utilisant un code VBA (macro).
je veux bien essayer (mais c'est sans garantie) si tu joins UN AUTRE fichier Excel,
qui sera plus représentatif dans la mesure où la colonne B de la feuille "ACHATS"
ne sera PAS déjà triée par ordre des fournisseurs (ni un autre tri ➯ non triée).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2ème feuille, en C6, la formule de validation des données est effectivement :
=DECALER(Infos_achats;EQUIV(B6;CFrs;0)-1;6;NB.SI(CFrs;B6);1)
EQUIV(B6;CFrs;0)-1 sert à trouver la 1ère ligne du tableau de la feuille "ACHATS"
dont le Fournisseur (colonne B) est le même que celui que tu as sélectionné en
B6 de la 2ème feuille "REGLEMENTS DE FACTURES" ; note aussi que c'est B6
au lieu du B$6 qu'il y avait au départ ; c'est à cause de ton B$6 qu'en C7, avant,
ça retournait "G-GLIS" au lieu de "SGH SWISS MEDIC CI SARL" alors qu'en B7
tu avais pourtant bien sélectionné "SGH SWISS MEDIC CI SARL".
le paramètre suivant est 6 (au lieu du 0 que tu avais mis avant) : sur "ACHATS",
6 colonnes à droite de la colonne B des "Fournisseurs", ça tombe pile sur la
colonne H des "N° Facture" ; tu comprends maintenant pourquoi, avec ton 0,
ça retournait le nom d'un Fournisseur au lieu d'un N° Facture !
le dernier paramètre est 1 ; c'est lui qui détermine le nombre de colonnes de ce
qui sera retourné par la fonction DECALER() ; 1 seule colonne, c'est OK : c'est
bien ce qu'il faut puisqu'on ne veut rien d'autre que le "N° Facture".
l'avant-dernier paramètre est NB.SI(CFrs;B6) ; c'est lui qui détermine le nombre
de lignes de ce qui sera retourné par la fonction DECALER() ; c'est OK : c'est ce
qu'il faut pour prendre en compte toutes les factures d'un fournisseur donné ; et
c'est là où tu peux voir que c'est obligé que les lignes d'un même fournisseur
doivent être forcément contigües ; car ce 4ème paramètre ne peut pas sauter
des lignes pour lesquelles ça ne serait pas le même fournisseur.
si tu as besoin de plus d'infos sur la fonction DECALER(), je te laisse regarder
l'aide en ligne sur cette fonction. :)
rhodo