Automatisation facture multi-produits

Résolu/Fermé
Somik - 22 août 2014 à 14:22
 Somik - 22 août 2014 à 18:53
Bonjour,

je suis revendeur sur internet. Afin de me faciliter dans l'édition des factures, je tiens un journal des ventes listant toutes mes commandes (Feuille 1 : Numéro de facture, Référence commande, type d'article, référence d'article, quantité, prix, nom & adresse client etc...).
Ensuite, en feuille 2 j'ai automatisé les factures qui lorsque je change le numéro de facture remplit automatiquement tout les autres champs en utilisant la fonction =recherchev.

Mais parfois, il m'arrive qu'un client commande 2 produits de références différentes, et dans ce cas là ma facture n'est pas juste, car je n'arrive (ou ne comprend pas) à faire un remplissage en automatique.

La colonne A liste les numéros de factures.
Si un client commande 2 articles différents, j'ai alors 2 fois le même numéro de facture.

Comment faire en sorte que sur un même et unique facture apparaissent les 2 produits que le client a commandé ?

Merci pour votre aide.

5 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
22 août 2014 à 14:37
Bonjour
si vous avez deux lignes avec le même N° de facture, seule la 1° va ressortir avec recherchev.
*Une petite astuce:
créer dans votre listing (appelons cette feuille LISTING pour l'exemple)une colonne masquée ou non, par exemple Z
si vos N° de facture sont en A à partir de A2 placer en Z2 cette formule:

=A2&"_"&NB.SI($A$2:A2;A2) attention aux signes$

ensuite pour éditer par N°
si le N° de facture est en A1 de la feuille édition et la première ligne à remplir étant ligne 2

=SI(A1="";"";INDEX(LISTING!$A:$X;EQUIV($A$1&"_"&LIGNE()-1;LISTING!($Z:$Z);0);2))
Tirez cette ensemble vers les bas sur la hauteur utile

cette formule (qui se termine par ;2) vous donnera la valeur cherchée de la colonne B de listing. ;3)) pour C ;4)) pour D ect... ,jusqu'à 24 pour X si besoin.

note LIGNE()-1 donne la valeur 1 sur la ligne 2. Si votre édition commence plus bas, ajustez pour que la première ligne de formule fasse référence à 1 soit
LIGNE()-xx xx étant le N° de ligne-1


un petit modèle pour illustrer ça
https://www.cjoint.com/c/DHwoKsaVLuY


crdlmnt
1
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
Modifié par Vaucluse le 22/08/2014 à 16:20
Effectivement, c'est une erreur de ma part dont je suis un grand adepte.
Il y a des parenthèses en trop qui encadrent le Z:Z


=SI($A$1="";"";INDEX(LISTING!$A:$X;EQUIV($A$1&"_"&LIGNE()-1;LISTING!$Z:$Z;0);2))

et en plus il faut bloquer le 1° A1 avec les $!!!!

(voyez dans le modèle joint, bien que les adresses soient différentes)

avec mes excuses

cordialement
Errare humanum est, perseverare diabolicum
1
Excel m'informe qu'il y a erreur sur la formule, pourtant j'ai essayé de placer les cellules comme indiqué dans votre expliquation.

La formule bloque au niveau du LISTING!($Z:$Z) à la fin.

Voici ce que j'ai crée afin de faire des essais :

Feuille LISTING
................. A .................................... B ..................... C .......... D ............ Z
numéro de facture........ Ref commande...... Produit..... Prix.....
Fact1............................... comm_abc01............. A............ 50........ Fact1_1
Fact2............................... comm_abc02............. B............ 100........ Fact2_1
Fact3............................... comm_abc03............. A............ 50........ Fact3_1
Fact3............................... comm_abc03............. B............ 100........ Fact3_2
Fact4............................... comm_abc04............. C............ 200........ Fact4_1
Fact5............................... comm_abc05............. A ............ 50........ Fact5_1
Fact5............................... comm_abc05............. B............ 100........ Fact5_2
Fact5............................... comm_abc05............. C............ 200........ Fact5_3


En feuille 2, pour éditer la facture, la fonction =SI(A1="";"";INDEX(LISTING!$A:$X;EQUIV($A$1&"_"&LIGNE()-1;LISTING!($Z:$Z);0);2)) comporte des erreurs, excel ne l'accepte pas tel quelle.
La facture 3 devrait comporter 2 lignes et la facture 5 devrait comporter 3 lignes pour ce test.

Merci pour le coup de main
0
Merci, avec cette formule ca fonctionne ... MAIS ... dans les lignes superflus lorsque j'étire la formule, j'ai en réponse #N/A.

Est-il possible de remédier à ce problème ?

Merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
22 août 2014 à 16:34
commencez la formule par:

=SI(OU($A$1="";NB.SI(LISTING!$A:$A;$A$1)<LIGNE()-1);"";INDEX........
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
en ajoutant (ou apres le =si et en mettant une parenthèse tout à fin pr la fermer excel refuse la formule.

Désolé de demander autant d'aide ... mais cette formule là est bien plus forte que moi =)

Serais-ce donc possible d'avoir la formule complète ? Car dans la formule définitive que j'ai mis qui fonctionne il n'y a pas le NB.SI non plus d'ailleurs que je remarque là.

Merci
0
C'est bon j'ai compris.

Merci beaucoup pour le coup de main.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
Modifié par Vaucluse le 22/08/2014 à 17:21
=SI(OU($A$1="";NB.SI(LISTING!$A:$A;$A$1)<LIGNE()-1);"";INDEX(LISTING!$A:$X;EQUIV($A$1&"_"&LIGNE()-1;LISTING!$Z:$Z;0);2))
(la parenthèse ne se rajoute pas à la fin, mais derrière le 1° LIGNE()-1)

Attention, réécrivez bien la formule. Si vous la copiez depuis ce message il est possible que des blancs parasite s'intercalent

si problème et si vous le pouvez déposer un modèle sur:
https://www.cjoint.com/
et revenez coller ici le lien donné par le site
0
En effet,

merci beaucoup pour le coup de main Vaucluse. Cela va grandement m'aider dans le travail en combinant les autres éléments et formules dont j'ai eu la réponse aujourd'hui.

Si j'ai un problème avec la version finale en l'intégrant dans mon vrai tableau de facturation, alors je n'hésiterai pas à venir poster le lien ici.

Merci
0