Autres Exécution de la macro lentement !

talbimassinissa

XLDnaute Nouveau
Bonjour,

Contexte du problème :

Ci-joint un fichier Excel avec une macro qui permet de lettrer les comptes c'est à dire rapprochement de chaque payement pour opération d'achat.
Le souci c'est que quand je clic sur l'exécution ça me prend énormément de temps pour voir le résultant, sachant que le fichier n'est pas vraiment volumineux, pourriez-vous m'aider à trouver une solution pour éviter les bugs sur Excel enfin l'exécution ?

En vous remerciant par avance
MT
 

Pièces jointes

  • Lettrage.xlsm
    50.6 KB · Affichages: 11
Dernière édition:

talbimassinissa

XLDnaute Nouveau
Pour un non comptable, c'est vrai que l'explication n'est pas très claire.
Le lettrage consiste à trouver la même somme en débit et Crédit.
Un lettrage sert à repérer, pour un même client, les factures (colonne E) qui ont été payées (colonne F) en indiquant un code de Lettrage (colonne H), par exemple A, B, C,.. AA, AB,.. etc. Les factures lettrés sont payées, les factures sans Lettrage sont des factures non payées. Un paiement sans facture, signifie que la facture n'a pas été enregistrée.

Comment faire le lettrage ?

- 1 prendre chaque montant de la colonne E et comparer avec chaque montant de la colonne F. Si on trouve un montant identique, on met un code de lettrage à la colonne H. A chaque fois, on incrémente le code de lettrage (par exemple après A, il y a B au crédit et au débit). Il y a une boucle à faire pour chaque montant E mais la prochaine boucle ne tient plus compte des paiements déjà lettrés pour alléger la recherche.

- étape 2 : prendre chaque montant de la colonne E qui n'a pas été lettré et faire une combinaison, deux par deux des montants F qui n'ont pas été lettrés et s'il y a une correspondance (Cela veut dire qu'une facture a été payée 2 fois) passer au suivant. A chaque fois on élimine de la recherche les montants déjà lettrés.

- étape 3 : avec les montants qui restent, chercher des combinaisons de 3, 4, 5. Avec plus cela ne sert à rien parce que cela prendre trop de temps.

- étape 4 : il peut exister aussi plusieurs factures qui sont payées avec un seul paiement. A ce moment là, faire une combinaison avec un montant de F et plusieurs montants de E

Ne pas tenir compte des dates parce qu'il existe des acomptes. Il y a des possibilités d'erreurs, et une vérification manuelle s'avère nécessaire. Mais si on peut faire tout ça c'est déjà pas mal. Les logiciels comptables font des lettrages automatiques, avec des erreurs aussi, mais je ne connais pas leur procédure.

Et pour cela j'ai du créé une macro VBA que j'ai du trouvé sur ce forum d'ailleurs pour permettre de faire ce lettrage plus efficacement sauf que quand je clic sur lettrer le lettrage marche bien mais ça prend beaucoup de temps pour avoir le résultat
 

Dranreb

XLDnaute Barbatruc
Bonjour.
La lenteur est inhérente à l'algorithme utilisé, si les compensations possibles entre débits et crédits sont rarissimes comme dans l'exemple présenté.
Cependant il pourrait être intéressant de mettre un format Monétaire ou Comptabilité aux colonnes exploitées, afin qu'Excel resitue en Currency les valeurs de cellules toutefois toujours réellement enregistrées en Double, pour éviter de louper bêtement certaines correspondances à cause d'arrondis de parties fractionnaires imparfaitement représentées en binaire.
 

Dranreb

XLDnaute Barbatruc
Qu'est-ce qui n'est pas clair ?
De toute façon je n'ai pas de solution pour des donnée où il n'a pratiquement jamais aucune correspondance entre des sommes de certains débits et des sommes de certains crédits. J'ai juste cette suggestion pour ne pas en louper en plus qui ne correspondent pas parfaitement dans leur représentation binaire.
Le type Currency, au moins, a toujours 4 décimales exactes car il est codé comme un entier valant 10000 fois sa valeur conventionnelle.
 

talbimassinissa

XLDnaute Nouveau
Pour l'instant je veux juste trouver une solution sur comment exécuter la macro d'une manière à récupérer des résultants rapidement enfin sans attendre des heures !! sinon pour ce qui est du codage je pourrais le modifier par la suite ce n'est pas trop le souci pour l'instant ..
 

Dranreb

XLDnaute Barbatruc
Ce n'est pas possible avec des données complètement pêle-mêle sans correspondance, à moins de limiter encore le nombre de montants non résolus trimballés par le traitement.
Cherchez aussi du coté de l'ordre de classement. La date n'est pas suffisante.
 

Discussions similaires

Réponses
42
Affichages
2 K

Statistiques des forums

Discussions
312 287
Messages
2 086 820
Membres
103 394
dernier inscrit
elhamdi