Automatisation facture multi-produits

Résolu
Somik -  
 Somik -
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

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
  3. Somik
     
    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
  4. Somik
     
    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
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      commencez la formule par:

      =SI(OU($A$1="";NB.SI(LISTING!$A:$A;$A$1)<LIGNE()-1);"";INDEX........
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Somik
     
    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
    1. Somik
       
      C'est bon j'ai compris.

      Merci beaucoup pour le coup de main.
      0
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      =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
    3. Somik
       
      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