Bordereaux individuels sur base d'un gros fichier

bonjour,

J'ai un gros fichier, que vous joins, et j'aurai besoin d'obtenir, pour chaque personne, la liste des produits qu'elle prend (je vous joins l'exemple d'une fiche d'une personne). Mais je ne sais pas du tout comment faire pour arriver à ce résultat là... . Faire remonter tout vers une base de données et les récupérer plus tard?

En fait je suis complètement perdu.

merci d'avance à celui qui voudra bien m'aider un peu!

48mars2018-1.zip (6.89 Ko)
35clement.xlsx (12.87 Ko)

Salut Bertrand,

t'es marrant, toi!

Tu nous balances un fichier sans prendre la peine de nous indiquer le moindre indice :

- "Démerdez-vous, j'ai fait ma part du boulot en vous refoulant la patate chaude! "

Je pourrais certainement en faire quelque chose mais, quand même :

  • comment vois-tu la récolte d'informations ; au coup par coup, tout dépiauter en une fois sur une feuille...
  • quelles colonnes utiliser pour quelles infos ?

C'est le WE pour tout le monde, n'est-ce pas? Neurones en sous-régime!

A+

je vous mets les colonnes du fichier que je souhaite utiliser. J'aurai voulu vous les mettre en rouge mais quand je sauvegarde ça ne fonctionne pas

  • datesale (date du jour de la vente)
  • actorname (nom du client)
  • artname (nom de l'article)
  • paidqty (quantité)
  • PubPricePerUnit (prix public) /10000 pour avoir le bon prix public
  • VatRateCpy (taux tva)
  • amntpaid et amntrebate que j'additionne et divisent pas 10000 pour avoir le prix de vente "total par unité".

donc au niveau des pages personnelles, voici à quoi correspondent chaque intitulé :

date ==> DATESALE

qté ==> paidqty

libellé ==> artname

p public ==> pubpriceperunit que je divise par 10000

total unité ==> addition des colonnes amntpai et amntrebate que je divise par 10000

prix htva ==> je prends la colonne total unité que je divise par la tva

tva ==> vatratecpy

montant tvac ==> colonne total unité que je multiplie par colonne qté

Je dois avoir une feuille par personne avec l'ensemble des produits qu'il a achétés. Donc par exemple pour monsieur clement (dont j'ai joins la fichier dans mon premier post), j'ai besoins d'avoir sur une même page tous les achats qu'il a réalisés.

Maintenant, quant à comment faire, là je ne vois pas du tout... . Donc merci pour vos éclaircissements

13mars2018-1.zip (6.88 Ko)
10clement.xlsx (12.87 Ko)

Salut Bertrand,

à vue de nez, ça te fait 26 bordereaux = 26 feuilles à créer... à imprimer, j'imagine ?

A mon sens (mais, c'est toi le chef!, hein)

  • ne créer qu'une seule feuille (comme modèle pour l'impression) ... ;
  • ... à partir de laquelle, depuis une cellule-liste de validation en [C16], tu pourrais vérifier les données, résident par résident (maison de repos, je suppose ?) ;
  • une commande d'impression, résident par résident ou globale.

Si il y avait ici un hacker mal-intentionné, avec les noms de tes résidents en clair, on saurait le nom de la résidence, ton nom, où tu habites et ton tour de slip.

Donc, tant qu'à faire :

  • donne-nous le secret de fabrication de tes n° de bordereau ;
  • le nom de la Résidence.

Ça te fera du boulot en moins...

T'en penses quoi, de tout ça ?

Pendant ce temps, j'avance...

A+

merci beaucoup pour votre aide.

Au niveau des bordereaux, c'est simple. C'est par ordre alphabétique. Le premier patient aura le numéro 1 et le dernier 26. Et pour le nom, c'est résidence théâtre. Quant à mon tour de slip, c'est .... secret

Votre solution me semble la bonne. Si je comprends bien, vous proposez d'utiliser le gros fichier comme "base de données" et de faire une connexion vers une feuille unique qui s'adapterait en fonction du nom de personnes. Chaud chaud

Salut Bertrantitude,

ça avance mais j'aimerais éclaircir certains points :

- certains prix publics, après l'addition (AmntPaid-Rebate) ont des montants bizarres

* PECQUEREAU Marcelle : Clexane de 38,88 à 6,07 (ça, mon Dieu, c'est tout bénef'), V perfuseur de 3,5 à 35,00... X 10 : ça fait mal!

* pour d'autres, ça tombe à zéro : tant mieux mais correct ?

- certains prix sont publiés en négatif !! Là, je calcule avec ABS pour en faire du positif : correct ?

Mise au point en ce qui concerne les libellés de colonne de la facture :

  • Prix public, c'est bien le prix brut avec TVA ?
  • Total par unité = total TVAC par unité ? TVAC/unité, c'est bon ?
  • Prix HTVA = total HTVA par unité ? HTVA/unité, c'est bon ?

Teste déjà le fichier joint pour voir tout ça.

Avec ce fichier XLSM, je postule :

  • que tu es un gars malin (je n'en doute pas!) et que tu ne l'utiliseras que pour traiter un fichier .CSV had hoc ;
  • que ce fichier .CSV sera ouvert (il ouvre le premier rencontré) ;
  • que sa structure sera identique !! Si tu penses que, de fichier en fichier, les colonnes peuvent se présenter dans le désordre et/ou que les libellés de colonne peuvent varier, je ne réponds plus de rien ! Il faudra alors adapter en fonction de critères permanents.

Pour démarrer le fichier, double-clic en feuille 'Bordereaux' (fichier .CSV ouvert) : la macro épluche ton .CSV et affiche le résultat en 'BDD'.

Ensuite, un clic en [C15] ouvre une liste de validation avec tous les noms des résidents.

Pour l'instant, la macro ne calcule que les produits par résident avec le total TVAC.

Il me faudrait plus de précisions pour la confection de ton n° de bordereau : un peu maigre !

Dernier numéro utilisé et calcul du suivant, détaillé !

Ouf, bon pour aujourd'jui !

A te lire !

A+

20bordereaux.xlsm (36.53 Ko)

Salut Bertrantitude,

ça avance mais j'aimerais éclaircir certains points :

- certains prix publics, après l'addition (AmntPaid-Rebate) ont des montants bizarres

* PECQUEREAU Marcelle : Clexane de 38,88 à 6,07 (ça, mon Dieu, c'est tout bénef'), V perfuseur de 3,5 à 35,00... X 10 : ça fait mal!

* pour d'autres, ça tombe à zéro : tant mieux mais correct ?

- certains prix sont publiés en négatif !! Là, je calcule avec ABS pour en faire du positif : correct ?

Mise au point en ce qui concerne les libellés de colonne de la facture :

  • Prix public, c'est bien le prix brut avec TVA ?
  • Total par unité = total TVAC par unité ? TVAC/unité, c'est bon ?
  • Prix HTVA = total HTVA par unité ? HTVA/unité, c'est bon ?

Teste déjà le fichier joint pour voir tout ça.

Avec ce fichier XLSM, je postule :

  • que tu es un gars malin (je n'en doute pas!) et que tu ne l'utiliseras que pour traiter un fichier .CSV had hoc ;
  • que ce fichier .CSV sera ouvert (il ouvre le premier rencontré) ;
  • que sa structure sera identique !! Si tu penses que, de fichier en fichier, les colonnes peuvent se présenter dans le désordre et/ou que les libellés de colonne peuvent varier, je ne réponds plus de rien ! Il faudra alors adapter en fonction de critères permanents.

Pour démarrer le fichier, double-clic en feuille 'Bordereaux' (fichier .CSV ouvert) : la macro épluche ton .CSV et affiche le résultat en 'BDD'.

Ensuite, un clic en [C15] ouvre une liste de validation avec tous les noms des résidents.

Pour l'instant, la macro ne calcule que les produits par résident avec le total TVAC.

Il me faudrait plus de précisions pour la confection de ton n° de bordereau : un peu maigre !

Dernier numéro utilisé et calcul du suivant, détaillé !

Ouf, bon pour aujourd'jui !

A te lire !

A+

Le prix public correspond en fait au prix que coûte le médicament. Dans ce prix, il y a la partie payée par le patient ainsi que celle qui est versée à la pharmacie via la sécurité sociale. Des prix négatifs sont possibles. C'est aussi possible que le prix payé soit 0 (totalement payé par la sécu dans ce cas).

Mise au point en ce qui concerne les libellés de colonne de la facture :

  • Prix public, c'est bien le prix brut avec TVA ? c'est le prix payé par le patient + ce que la sécu verse à la pharmacie. C'est juste la colonne pubpriceperunit que je divise par 10000 pour l'avoir
  • Total par unité = total TVAC par unité ? TVAC/unité, c'est bon ? oui, ce prix correspond aux colonnes AmntRebate et AmntRist additionnée et divisée par 10000
  • Prix HTVA = total HTVA par unité ? HTVA/unité, c'est bon ? oui

Au niveau de la confection des bordereaux, le numéro 1 sera Bauters (car premier par ordre alphabétique), le numéro 2 sera Bayart, etc et le dernier sera Willocq. Ni plus ni moins

Je vous propose de vous donner demain matin deux voire trois exemples bien précis (trois feuilles reprenant les résultats qui devraient être obtenus) afin d'être totalement sûr de ne pas vous faire travailler pour rien. Ici il m'est vraiment impossible de vous les donner maintenant... .

bonjour,

voilà les exemples que je souhaite obtenir.

Je reste à votre entière dispo pour tout renseignement supplémentaire évidemment

Par contre, pourriez-vous juste me dire comment au niveau de :

Pour démarrer le fichier, double-clic en feuille 'Bordereaux' (fichier .CSV ouvert) : la macro épluche ton .CSV et affiche le résultat en 'BDD'.

Ensuite, un clic en [C15] ouvre une liste de validation avec tous les noms des résidents.

Pour l'instant, la macro ne calcule que les produits par résident avec le total TVAC.

En fait je n'ai rien qui s'affiche dans la cellule C15, sauf quand je fais un copier coller du fichier .csv dans la feuille que vous avez appelée bdd. Mais ce n'est pas ce que vous dites de faire . Je vais me documenter au niveau de l’exécution des macros, car à mon humble avis ça doit être à ce niveau là que je fuite

6bauters.xlsx (13.00 Ko)
6bayart.xlsx (12.79 Ko)
10dewulf.xlsx (12.82 Ko)

Salut Bertrand,

Concernant le n° de bordereau, pas de souci... mais dans le fichier "Clement" fourni lors de la demande initiale, il y avait ceci...

Bordereau 2018000063/008

... qui n'a rien à voir avec ce que tu souhaites maintenant !

Quant à "l'exécution" de la macro... il suffit de double-cliquer n'importe où dans la feuille 'Bordereau'. Point !

Veille seulement à ce que le fichier .CSV soit ouvert.

A+

desolé pour cet erreur (Bordereau 2018000063/008) . C'est bien comme décrit dans mon précédent post

Salut Bertrand,

désolé d'avoir traîné : je me suis laissé tenté par d'autre sirènes!

Pour initialiser dans 'BDD' les données exploitables, double-clic dans 'Bordereaux' pour démarrer la macro, le fichier .CSV devant être ouvert.

Tu as deux boutons pour imprimer au coup par coup ou à la volée.

A+

25bordereaux.xlsm (52.52 Ko)

grand merci à vous . Je ne sais pas comment j'aurai pu arriver à ce résultat là par moi-même .

Enfin à chacun son métier hein

Salut Bertrand,

pas besoin d'adaptation ? Tout baigne ?

Bonne continuation!

A+

bonjour,

J'ai essayé avec un autre fichier, et il doit y avoir un petit soucis dans cette ligne :

tData1(0, iIdx1 - 1) = Split(tData(x, 12), ",")(0) & " " & Split(tData(x, 12), ",")(1) 'NOM

si je comprends bien, cette ligne sert à retirer la virgule de la colonne 12?

d'avance merci

9avril.zip (18.94 Ko)

Salut Bertrand,

SPLIT fractionne une donnée en fonction d'un délimiteur, ici la virgule.

Split(DATA, ",")(0)

isole la partie gauche, (1), la partie droite.

Le délimiteur est-il bien la virgule dans ton nouveau fichier ?

(Pas le temps de l'ouvrir maintenant)

Je regarde dès que je peux...

A+

je n'ai rien changé.

j'ai retiré la partie de droite : & " " & Split(tData(x, 12), ",")(1) 'NOM 'NOM et sans ça il n'y avait plus les prénoms

donc du coup j'ai remplacé cette foutu virgule par un espace, comme ça :

& " " & Split(tData(x, 12), " ")(1) 'NOM

et c'est bon, ça marche

par contre, j'ai deux petits soucis que je vois pas comment résoudre :

- les dates : dans la première colonne, les dates se mettent sous le format mm/dd/yy quand le jour du mois est strictement inférieur à 10 :

par exemple pour Mme Losfeld (mois d'avril 2018):

04/03/18

04/03/18

04/09/18

04/10/18

04/11/18

04/11/18

17/04/2018

17/04/2018

17/04/2018

- pour Monsieur Deroubai michel, j'arrive au résultat suivant :

04/03/18 1 BURINEX LEO COMP 30 X 1 MG 8,00 72000,00 67924,53 6 72000,00

04/03/18 1 AZOPT COLLYRE 1,0% 5ML 13,60 1,87 1,76 6 1,87

04/03/18 2 LRP LIPIKAR PAIN SURGRAS 150G 7,00 14,00 11,57 21 28,00

04/03/18 1 DAKTARIN SPRAY PULV FL PULV 8 GR 2% 8,98 8,98 8,47 6 8,98

04/09/18 1 PANTOMED 40 MG COMP 56 22,69 3,78 3,57 6 3,78

04/09/18 1 TEMESTA COMP. 50 X 2,5 MG 7,49 7,49 7,07 6 7,49

04/11/18 1 SINTROM COMP 100X1MG 6,84 46000,00 43396,23 6 46000,00

04/11/18 1 ALDACTONE COMP 50 X 25 MG 7,44 60000,00 56603,77 6 60000,00

16/04/2018 1 DERMOCREM ROUGEURS-IRRITATION DE LA PEAU CREME250G 10,75 10,75 8,88 21 10,75

24/04/2018 1 BURINEX LEO COMP 30 X 1 MG 8,00 72000,00 67924,53 6 72000,00

soit un total TVAC de 250060,87 €. Me voilà riche . Quand je regarde dans le fichier (que je suis obliger de prendre tel quel), je vois qu'il y a, au milieu des 18.700 ; 112.000 ;75.432 ;37.800 ; 62.916 des plus petits montants :

0.7200 ; 0.4600 ; 0.6000. C'est de là que viennent ces erreurs.

Voyez le 72000,00 devrait rester 0,72 ; le 46000,00 devrait rester 0,46 le 60000,00 devrait rester 0,6.

J'en conclus que quand le montant est inférieur à 1.000 , il ne faudrait pas diviser par 10000 mais juste par 1 . Desolé, je n'avais pas pensé à ça... .

Salut Bertrand,

problèmes à ce stade réglés!

  • un des noms ne comportait pas de virgule : RESIDENCE LE THEÂTRE, alors, forcément...
  • prix > 1000 calculés de façon plus cohérente.

Du coupe, toujours par un double-clic sur 'Bordereaux', ça fonctionne comme d'hab', le .CSV devant être ouvert.

        For x = 2 To UBound(tData, 1)
            If tData(x, 37) <> "" Then
                iIdx1 = iIdx1 + 1
                ReDim Preserve tData1(9, iIdx1)
                If InStr(tData(x, 12), ",") > 0 Then
                    tData1(0, iIdx1 - 1) = Split(tData(x, 12), ",")(0) & " " & Split(tData(x, 12), ",")(1)      'NOM
                Else
                    tData1(0, iIdx1 - 1) = tData(x, 12)
                End If
                If tData(x, 12) <> tData(x - 1, 12) Then
                    iIdx2 = iIdx2 + 1
                    ReDim Preserve tData2(1, iIdx2)
                    tData2(0, iIdx2 - 1) = tData1(0, iIdx1 - 1)
                End If
                tData1(1, iIdx1 - 1) = tData(x, 7)                                                  'Date
                tData1(2, iIdx1 - 1) = tData(x, 24)                                                 'Quantité
                tData1(3, iIdx1 - 1) = tData(x, 37)                                                 'Libellé
                tData1(4, iIdx1 - 1) = tData(x, 25) / IIf(Abs(tData(x, 25)) > 1000, 10000, 1)                                  'Prix public
                tData1(5, iIdx1 - 1) = (tData(x, 28) / IIf(Abs(tData(x, 28)) > 1000, 10000, 1)) + (tData(x, 29) / IIf(Abs(tData(x, 29)) > 1000, 10000, 1))                  'Prix par unité
                tData1(7, iIdx1 - 1) = CInt(tData(x, 31)) / 100                                     'TVA
                tData1(6, iIdx1 - 1) = tData1(5, iIdx1 - 1) / (1 + (tData1(7, iIdx1 - 1) / 100))    'Prix unitaire HTVA
                tData1(8, iIdx1 - 1) = IIf(tData(x, 24) > 0, tData1(5, iIdx1 - 1) * tData(x, 24), -(tData1(5, iIdx1 - 1) * tData(x, 24)))   'Prix total TVAC
                tData1(9, iIdx1 - 1) = IIf(tData(x, 24) > 0, tData1(6, iIdx1 - 1) * tData(x, 24), -(tData1(6, iIdx1 - 1) * tData(x, 24)))   'Prix total HTVA
            End If
        Next

A+

11bordereaux.xlsm (66.14 Ko)

merci pour la résolution de ces 2 problèmes. Il reste juste le problème avec les dates que je ne parviens pas à résoudre

Les dates se mettent sous le format mm/dd/yy quand le jour du mois est strictement inférieur à 10 :

par exemple pour Mme Losfeld (mois d'avril 2018):

04/03/18

04/03/18

04/09/18

04/10/18

04/11/18

04/11/18

17/04/2018

17/04/2018

17/04/2018

Salut bertrantitude,

dans la Sub Worksheet_BeforeDoubleClick, trouver et remplacer

tData1(1, iIdx1 - 1) = tData(x, 7)

par

tData1(1, iIdx1 - 1) = Format(tData(x, 7), "mm/dd/yyyy")

A+

Je viens de constater que quand j'imprime, le petit tableau en bas (tva %/base / TVA) n’apparaît pas sur la page imprimée. Et si c'était possible de commencer en haut et pas au milieu de la page (je pense que tout est centré au milieu de la page)?

Et dans cette ligne,

tData1(5, iIdx1 - 1) = (tData(x, 28) / IIf(Abs(tData(x, 28)) > 1000, 10000, 1)) + (tData(x, 29) / IIf(Abs(tData(x, 29)) > 1000, 10000, 1))

il doit y avoir quelque chose qui ne va pas quand la quantité est supérieur à 1 (voyez le fichier joins où la quantité de biolys est de 2) :

5,18 10,36 9,77 6 20,72

au lieu de

5,18 5,18 4,78 6 10.36

désolé de toujours rajouter des détails

biolys
Rechercher des sujets similaires à "bordereaux individuels base gros fichier"