Additionne même no facture etsupprime total négatif ou tot 0.00

Résolu/Fermé
Marie Chant Messages postés 79 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 26 mars 2024 - 12 oct. 2016 à 12:38
Marie Chant Messages postés 79 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 26 mars 2024 - 30 janv. 2017 à 15:48
Bonjour,

J'ai développer une macro et je dois ajouter deux autres choses que je voudrais qu'elle fasse mais je ne sais pas comment. pourriez-vous m'aider s.v.p.

Dans mon classeur, je voudrais que sur ma feuille qui s'appelle '' factures ABC''

En A1 c'est inscrit ''no facture''
En Z1 c'est inscrit '' montant''
En A2 et après, il y a plusieurs no facture
soit
1 Colonne A No Facture - Colonne D No. compte- Colonne Z Montant
2 Colonne A FS1562 Colonne D 151 Colonne Z 0 .01
3 Colonne A AA-1259 Colonne D 185 Colonne Z 5.00
4 Colonne A AA-1259 Colonne D 210 Colonne Z -5.00
5 Colonne A Sur006 Colonne D 120 Colonne Z .89
6 Colonne A Sur006 Colonne D 210 Colonne Z 1.00
7 Colonne AFS1562 Colonne D151 Colonne Z -10.00

Je voudrais que ma macro fasse:

Va sur ma feuille nommé ABC
additionne les lignes du même numéro de facture( A2 et plus)
Si le total (en colonne Z) du numéro de facture est un nombre négatif ou est égal a 0.00 (important car je dois garder 0.01 et plus) supprime les lignes concernées.

Je m'explique
Dans mon exemple plus haut a la ligne A3et A4, le total de la facture soit en Z 5.00 -5.00 donne zéro alors supprime la ligne A3 et A4.
OU
si le total de la facture donne un nombre négatif supprime les lignes concernés
exemple le total de la facture FS1562 A2 et A7 donne -9.99 alors supprime la ligne A2 et A7
je devrais peu être mettre mes no factures en ordre du plus petit au plus grand dans la colonne A avant de commencer?

Il y a des corrections de fait si la factures n'a pas affecté les bons comptes ou il y a eu correction le mois passé (le montant de la facture sera en moins ce mois-ci ou a zéro)

Je voudrais que ma macro additionne les montants (colonne Z) qui on même numéro de facture(colonne A) et si les montants total de la facture donne 0.00 ou un nombre négatif, supprime les lignes concernées. (Seulement si le total du même numéro de facture donne 0.00 ou un nombre négatif)
Il y a des mois que j'ai 78 000 lignes et d'autres 50 000 lignes . Ce n'est jamais égale. Je voudrais quelle le fasse jusqu'en bas (tant qu'il y a des numéros de facture d'inscrit en A)

Je vous remercie énormément de votre aide.

2 réponses

Utilisateur anonyme
12 oct. 2016 à 22:42
Bonjour Marie Chant,

J'ai bien lu ton énoncé, mais il y a quelque chose qui ne va pas :

Tu veux supprimer les lignes 3 et 4 car le N° Facture est le même,
et que la somme des montants est inférieure ou égale à zéro :
5,00 - 5,00 = 0 ; soit !

Mais sauf erreur de saisie, les 2 N° de Compte sont différents :
185 et 210 ! Il faudrait que ce soit pour un même client (ou pour
un même fournisseur).

--------------------------------------

3 autres anomalies possibles pour ta colonne "N° Facture" :

a) Si les codes qui commencent par "AA-" sont des Avoirs,
    je verrais plutôt un Avoir "AA-1259" de -5,00 sur une
    Facture "FS1259" d'un montant >= 5,00.

b) Selon le même principe, ta ligne 7 avec -10,00 devrait
    plutôt être un avoir, donc avec le code "AA-1562".

c) Quels codes bizarres, "Sur006" : Facture ou Avoir ?
    Mais vu les montants, c'est peut-être 2 régularisations
    sur la facture FS006 (ou FS0006 si tu as oublié un 0) ?
    Mais là aussi : 2 N° Compte différents pour une même
    facture : 120 et 210 ? Peut-être as-tu inversé 2 chiffres,
    et c'est soit deux 120, soit deux 210 ?

--------------------------------------

Pour tes lignes 1 et 7, c'est bien le même N° de Compte :
151 => OK !  😉

--------------------------------------

Oui, je suis d'accord avec toi : ce serait bien mieux de commencer
par trier les lignes selon un tri croissant des N° ; mais comme il y
aurait à la fois des "FSxxxx" et des "AA-xxxx" (avec xxxx le N° de
la Facture ou de l'Avoir), je conseille d'ajouter une colonne "N°"
juste à droite de ta colonne "N° Facture" qui reprendra les 4
derniers caractères de ta colonne A, et c'est dessus que se fera
le tri croissant. Mais à charge pour toi de faire attention à ceci :

a) Mettre tous les N° de Facture ou Avoir sur 4 chiffres ; et qu'ils
    soient bien en dernier, sans rien après.

b) Faire en sorte que les N° Compte soient cohérents, donc les
    mêmes pour un même N° (de Facture ou Avoir).

--------------------------------------

À quoi correspond le S de FSxxxx ? Ne serait-ce pas mieux avec :
FVxxxx pour une Facture de Vente ? Ou, si des Fournisseurs :
FAxxxx pour une Facture d'Achat ?

À te lire. Cordialement.  😊
 
0
Marie Chant Messages postés 79 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 26 mars 2024 1
24 oct. 2016 à 18:48
Merci de me répondre c'est très gentil.

Je ne peux pas prendre les 4 chiffres car quelles fois c'est seulement des lettres.. J'ai des fichiers de 70 000 lignes et plus par mois.

La colonne A correspond a mes numéros de factures et j'ai plusieurs fournisseurs différents avec différents numéro de factures.

Dans ma colonne D c'est mes numéro de compte alors il se peut je retire un montant dans un compte pour aller le mettre dans un autre compte. Je ne m'occupe pas de cette colonne dans ma macro.

Ce que je veux quelle fasse c'est va dans la colonne A, fais le total des lignes de même numéro de facture et si le montant donne 0.00$ supprime toute les lignes du même no facture.(ce qui est inscrit dans la colonne Z)
Je voudrais que mon tableau me donne seulement les lignes qui on le même numéro et que son total est plus grand que 0. 01$

Merci beaucoup
0
Utilisateur anonyme > Marie Chant Messages postés 79 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 26 mars 2024
25 oct. 2016 à 07:13
Bonjour Marie Chant,

Je te laisse essayer ce Fichier Excel 2007 : ouvre le fichier, fais < Ctrl >< e > :
il restera seulement les factures avec solde positif. La macro Essai() est
dans Module1. Dis-moi ce que tu en penses, et si ça te convient.

N'hésites pas à me demander tout complément d'information si besoin.

Si ton problème est réglé, merci d'aller en haut de page pour cliquer
sur le lien « Marquer comme résolu ».

Cordialement.  😊
0
Marie Chant Messages postés 79 Date d'inscription lundi 24 mars 2014 Statut Membre Dernière intervention 26 mars 2024 1 > Utilisateur anonyme
30 janv. 2017 à 15:48
merci beaucoup Albkan de ton aide c'est grandement apprécié. Bonne journée
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 25/10/2016 à 09:50
Bonjour,

compte tenu du nombre de lignes (>70000 lignes), il vaudrait mieux ne pas procéder par test de cellules ( le seul avantage serait alors que tu aurais largement le temps d'aller faire un tour à la cafète de ta boite)

Peut-il y avoir plus de 2 fois la m^me facture ?

pourrais tu mettre un extrait de ton classeur avec 1500 lignes environ
pour cela
<code>Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente


 Michel
0
 
Bonjour michel_m,

Tu as peut-être raison, mais ce que tu as écris par rapport à des fichiers de plus
de 70 000 lignes est peut-être valable seulement pour d'anciens PC avec des
processeurs (relativement) lents comme les Intel Core 2 Duo ?

Est-ce que tu ne crois pas qu'avec des PC récents avec des Intel Core i5 super
rapides, même les tests de cellules sur des fichiers de plus de 70 000 lignes
peuvent s'exécuter quasi instantanément ? Je dis cela surtout quand on pense
qu'ils peuvent faire fonctionner rapidement des jeux très puissants tels que des
simulateurs de vol, ou de conduite de camion. Exemples : Flight Simulator ou
Euro Truck Simulator. Et les jeux de stratégie aussi demandent beaucoup de
ressources (processeur, mémoire vive, carte graphique). C'est pour ça que
j'ai du mal à croire qu'un simple logiciel bureautique (Excel ou autre) puisse
être lent sur des PC récents (dont RAM 8 Go et processeurs à 3,10 GHz ou +) !
Et aussi, si en plus, le PC est correctement optimisé (TuneUp Utilities ou
CCleaner => Base de registre de Windows propre).

Cordialement.  😊
 
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Utilisateur anonyme
25 oct. 2016 à 19:10
ce n'est pas question de matériel mais d'aller et retour processeur-ram-carte graphique très chronophages.
par exemple le fait de demander d'écrire une lettre sur l'écran (sans parler d'Excel) demande + de 100 tops du processeur
Ici, les seuls AR passent par la bande passante rapide RAM-cache L2 du processeur
il est prouvé qu'utiliser des variables-tableaux sont + rapides d'au moins 20 fois que par interrogation de cellules et inscription après test de condition.

tu as d'ailleurs pas mal d'exemples où la comparaison est concluante dans le forum "programmation VBA"
0
Utilisateur anonyme > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
25 oct. 2016 à 20:19
Oui mais avec Application.ScreenUpdating = False, écran figé => plus d'affichage
pendant tout le temps du traitement ! Ça règle le problème de lenteur, non ?  😉
0
Utilisateur anonyme > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
25 oct. 2016 à 22:50
Ajout : si j'avais le vrai fichier de plus de 70 000 lignes, et que c'est lent malgré
Application.ScreenUpdating = False, alors là oui, effectivement, je suivrais avec
bon gré ta recommandation d'utiliser des variables-tableaux ! Merci pour ta
réponse #6. Si vraiment ma solution s'avère trop lente, je conseille alors à
Marie Chant de te joindre un extrait de son fichier (avec environ 1500 lignes),
comme tu le lui as gentiment suggéré. Cordialement.  😊
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Utilisateur anonyme
Modifié par michel_m le 26/10/2016 à 08:29
Dans tous les cas, il est préférable d'utiliser screenupdating

une comparaison récente:
https://forums.commentcamarche.net/forum/affich-33979809-macro-tres-tres-lente-sur-200000-lignes
0