Help! je n'arrive pas à faire la somme des qtés et reference sans doublon

amely78

XLDnaute Nouveau
Bonsoir,

J'ai fais un Bordereau de Livraison qui créé automatiquement la facture correspondante, cependant je n'arrive pas à faire comme un tableau croisé dynamique, renvoyer la référence 1 seule fois avec la somme des qtés du BL.

Apparement c'est possible via la fonction Somme Prod mais même après avoir arpenté les forums je n'arrive pas à comprendre la logique de cette fonction.

Y-a-t-il une fonction simple pour que je puisse avoir sur la feuille "Facture" un récap du BL sans doublons avec la somme des qtés.

Dans l'exemple joint je souhaiterais avoir dans la feuille "Facture":
7885757880-00 3850153509 CASSEROLE 10 3,08 € 30,08 €
7888454280-00 3850160551 PARAPLUIE 5 54,59 € 272,95 €

Merci de votre aide.
:)
 

Pièces jointes

  • Delivery Note.zip
    30.9 KB · Affichages: 56

JCGL

XLDnaute Barbatruc
Re : Help! je n'arrive pas à faire la somme des qtés et reference sans doublon

Bonjour à tous,

Pas envie de te répondre avec des cellules fusionnées... Toujours sources de problèmes en formule et je ne raconte pas en VBA...

Pourquoi des Zones Combinées alors que des Listes de Validation seraient plus simple d'emploi ?

A+
 

abcd

XLDnaute Barbatruc
Re : Help! je n'arrive pas à faire la somme des qtés et reference sans doublon

Bonjour, salut JCGL,

Le même résultat sans cellules fusionnées.

abcd
 

Pièces jointes

  • amely78.zip
    30.1 KB · Affichages: 62
  • amely78.zip
    30.1 KB · Affichages: 59
  • amely78.zip
    30.1 KB · Affichages: 67

JeanMarie

XLDnaute Barbatruc
Re : Help! je n'arrive pas à faire la somme des qtés et reference sans doublon

Bonjour Amely, Jean-Claude, Abcd

Déjà je suis d'accord avec Jean-Claude, une liste de validation serait plus appropriée qu'une Zone Combinée. Pour la question des lignes fusionnées cela pose plus de problèmes au VBA (lol). Pour les formules il suffit de contrôler la ligne, mais qui dit lignes supplémentaires, rallonge la longueur de la plage à traiter, ce qui est à proscrire.

Je me suis appuyé sur ton fichier de départ.

Voici une formule matricielle, à valider par les touches Ctrl+Shift+Entrer.
Code:
=INDEX(BL!C:C;PETITE.VALEUR(SI(FREQUENCE(SI(BL!C23:C80<>"";EQUIV(BL!C23:C80;BL!C23:C80;0));LIGNE(1:58))>0;LIGNE(BL!C23:C80));LIGNE(1:29));0)
Cette formule retourne la globalité des données à afficher dans la colonne référence Client.
Pour la mise en oeuvre :
1) Sélectionne la plage A22:A50 de la feuille facture, tu peux commencer la sélection par la cellule A50, ce n'est pas un problème, Excel s'adapte.
2) Va dans la zone de saisie de la formule
3) Colle cette formule
4) Valide par les touches Ctrl+Shift+Entrer

Après le calcul tu devrais avoir les deux première lignes avec les données 7885757880-00 et 7888454280-00, puis une donnée " ", et le reste ayant un message d'erreur #NOMBRE!

Pour masquer ces messages d'erreur, j'utilise une Mise en Forme Conditionnelle (menu Format), tu verras dans le fichier joint, comment le faire. L'avantage d'utiliser la MFC est de ne pas rallonger la formule.

Pour les autres données de la feuille Facture, soit j'ai modifié la formule pour accepter la donnée #NOMBRE! (colonne B), ou rajouter une formule pour la récupération automatique, avec d'autres fonctions d'Excel.

NOTA: le fait de saisir la formule dans une plage de cellules, ne te permettra plus d'insérer ou de supprimer une ligne de cette plage. Pour le faire, il te faudra supprimer la formule de la plage (A22:A50), et la réécrire après ta modification. C'est un problème si tu modifies ton modèles de facture tous les jours.

Concernant la formule matricielle :
- la plage 1:58 doit toujours commencer à la ligne 1, et doit être d'égale à longueur de la plage des données (BL!C23:C80)
- la plage 1:29 doit toujours commencer à la ligne 1, et doit avoir le même nombre de lignes qu'affiche la matrice, ici on affiche les données dans la plage A22:A50, soit 29 lignes.

Pour décrire succinctement ce que font les fonctions dans la formule :
EQUIV retourne la position dans la plage de la première occurrence trouvée, pour chaque valeur de la plage BL!C23:C80 (pour BL!C23 ; BL!C25 ; BL!C27 sera 1, BL!C29 et BL!C31 sera 7)
FREQUENCE va servir à repérer les N° des lignes devant être affichées.
PETITE.VALEUR retourne les N° des lignes à afficher par la fonction INDEX.

Si tu désires plus d'explications, n'hésite pas, même si pour moi l'exercice n'est pas facile, je vais essayer d'être plus clair. Malheureusement je suis plus à l'aise pour écrire des formules tarabiscotées, que les expliquer.

Pour les connaisseurs (lol), cette formule à l'avantage de ne calculer qu'une seule fois les lignes à afficher.

Amely essaye de modifier ta feuille BL pour supprimer les lignes qui ne servent à rien (sauf à rallonger les temps de calcul, les matricielles en sont gourmandes), et adapter la formule que je t'ai donné.

@+Jean-Marie
 

Pièces jointes

  • IndexMatricielle.zip
    45.2 KB · Affichages: 66

JCGL

XLDnaute Barbatruc
Re : Help! je n'arrive pas à faire la somme des qtés et reference sans doublon

Bonjour à tous,
Salut ABCD,
Salut Jean-Marie,

Encore un jolie formule à base de FREQUENCE(), entre autres.

Si tu désires plus d'explications, n'hésite pas, même si pour moi l'exercice n'est pas facile, je vais essayer d'être plus clair. Malheureusement je suis plus à l'aise pour écrire des formules tarabiscotées, que les expliquer.

Ca c'est l'âge... ;)

A++
A+ à tous
 

amely78

XLDnaute Nouveau
Re : Help! je n'arrive pas à faire la somme des qtés et reference sans doublon

Merci, c'est super!

Mais quelqu'un pourrait-il m'expliquer ce que celà signifie en français ( c'est juste que j'aimerais comprendre )?

En tout cas merci, je suis contente.:)
 

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux