XL 2013 Inventaire total et périodique

La flamme

XLDnaute Junior
bonjour les experts du codage, svp j'ai un problème qui me dépasse , c'est pour cette raison que je me tourne vers vous pour bénéficier de vos différents points de vues .
j'ai un facturier automatisé, et j'aimerais pouvoir faire , soit de toutes les factures ou sur une période délimiter par deux dates différentes. Le problème est le suivant l'inventaire doit prendre en compte : la somme des valeurs en B si en F est memtionné payé là on est sur sheets ("prog") - (la somme des cellules C D E de sheets ("achat") + autres dépenses obligatoire qui sera saisie dans un inputbox) là c'est de manière générale, l'utilisateur pourra avoir la possibilité de spécifier cette même opération sur une plage de date en saisissant date de début et date de fin.
je ne sais pas si cela est réalisable ou pas . Dans tous les cas je me remets à vous pour en savoir d'avantage. Merci d'avance
cordialement
 

Pièces jointes

  • inventaire.xlsm
    48.9 KB · Affichages: 24
Solution
J'ai rajouté le module Enregistrement.
Dans le module Périodique, à la fin des calculs, toutes les infos sont mémorisées dans des variables Public
( ColB à ColE )
En cas de demande d'enregistrement il suffit de transférer ces données publiques dans la page Dep.
Simple et efficace.
( L'enregistrement ne se fait qu'en Périodique à cause des dates qu'il faut mémoriser dans Dep )

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai rajouté le module Enregistrement.
Dans le module Périodique, à la fin des calculs, toutes les infos sont mémorisées dans des variables Public
( ColB à ColE )
En cas de demande d'enregistrement il suffit de transférer ces données publiques dans la page Dep.
Simple et efficace.
( L'enregistrement ne se fait qu'en Périodique à cause des dates qu'il faut mémoriser dans Dep )
 

Pièces jointes

  • inv3.xlsm
    54 KB · Affichages: 4

La flamme

XLDnaute Junior
Re bonjour j'ai introduit le code dans mon fichier source ça marche à merveille👌👌👍👍👍🤗, pour cela je te remercie grandement🙏🙏🙏. Mais quand j'essaye de l'exécuter avec office2010 partout où il y'a :
DL = .Range("A65500").End(xlUp).Row
Ça sélectionne DL et me renvoie Erreur de compilation : projet ou bibliothèque introuvable.
Svp comment remédier à cela ? Merci d'avance
Cordialement 👍👍👍👍👍
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Avec quoi avez vous testé quand vous dites que ça marche à merveille ?

Quand cela ne marche pas c'est surement que :
1- DL n'est pas déclaré et vous êtes en option explicite, rajoutez Dim DL% au début de la macro
2- La sheet n'est pas déclarée avant vous devriez avoir un With Sheets("xxxx") avant, car le point avant Range fait appel à une feuille déclarée auparavant.
3- Vous avez oublié un "morceau" de code quelque part, ou la déclaration Public.

sinon je ne vois pas.
 

La flamme

XLDnaute Junior
Avec
Avec quoi avez vous testé quand vous dites que ça marche à merveille ?

Quand cela ne marche pas c'est surement que :
1- DL n'est pas déclaré et vous êtes en option explicite, rajoutez Dim DL% au début de la macro
2- La sheet n'est pas déclarée avant vous devriez avoir un With Sheets("xxxx") avant, car le point avant Range fait appel à une feuille déclarée auparavant.
3- Vous avez oublié un "morceau" de code quelque part, ou la déclaration Public.

sinon je ne vois pas.
Office 2013 ça marche à merveille 👌👍 mais avec office 2010 ça renvoie l'erreur de compilation.
Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je suis en 2007 et ça marche.
Essayez de remplacer DL = .Range("A65500").End(xlUp).Row par
DL =Sheets("xxx") .Range("A65500").End(xlUp).Row

Ou alors c'est DL qu'il n'aime pas mais il n'y a aucune raison, dans ce cas essayez de changer tous les DL par DernLigne pour voir.

J'ai rencontré des OK sous 2013 mais KO sous 2007, ce qui peut être noral à cause des compatibilités ascendantes, mais des OK 2007, OK 2013 et KO 2010, ça m'échappe.
 

La flamme

XLDnaute Junior
Je ne comprends pas pourquoi ça fait cela . Même celui dans ThisWorkbook fait pareil. Avec Excel 2010 pourtant fonctionne avec 2013. J'ai cherché une réponse sans succès
Avec

Office 2013 ça marche à merveille 👌👍 mais avec office 2010 ça renvoie l'erreur de compilation.
Cordialement

Je suis en 2007 et ça marche.
Essayez de remplacer DL = .Range("A65500").End(xlUp).Row par
DL =Sheets("xxx") .Range("A65500").End(xlUp).Row

Ou alors c'est DL qu'il n'aime pas mais il n'y a aucune raison, dans ce cas essayez de changer tous les DL par DernLigne pour voir.

J'ai rencontré des OK sous 2013 mais KO sous 2007, ce qui peut être noral à cause des compatibilités ascendantes, mais des OK 2007, OK 2013 et KO 2010, ça m'échappe.
Re
A ma grande surprise ça ne marche toujours . Je suis même aller dans les références j'ai rien vu d'anormal. 🤔🤔🤔 Merci pour la collaboration , svp si c'est possible continuez à explorer d'autres pistes de résolution moi de mon côté je fais pareil . Merci d'avance
Cordialement 👍👍
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
A ma grande surprise ça ne marche toujours .
"A ma grande surprise ça ne marche toujours pas" ou "A ma grande surprise ça marche toujours ." ???
Cela veut dire que les deux modifs proposées ne marchent pas ?
Vérifiez que les noms de feuilles dans la VBA sont correctes.
Remplacer pour voir en mettant DL=1234 ( 1234 étant le nombre de lignes ) cela permettra de voir si c'est le DL ou le .Range("A65500").End(xlUp).Row qu'il n'aime pas.
Mais n'ayant que 2007, je ne peux pas en faire plus.
Testez la PJ avec vos deux XL, il fait trois fois la même chose avec des syntaxes différentes.
 

Pièces jointes

  • Test.xlsm
    16.7 KB · Affichages: 8

La flamme

XLDnaute Junior
"A ma grande surprise ça ne marche toujours pas" ou "A ma grande surprise ça marche toujours ." ???
Cela veut dire que les deux modifs proposées ne marchent pas ?
Vérifiez que les noms de feuilles dans la VBA sont correctes.
Remplacer pour voir en mettant DL=1234 ( 1234 étant le nombre de lignes ) cela permettra de voir si c'est le DL ou le .Range("A65500").End(xlUp).Row qu'il n'aime pas.
Mais n'ayant que 2007, je ne peux pas en faire plus.
Testez la PJ avec vos deux XL, il fait trois fois la même chose avec des syntaxes différentes.
Je n'arrive pas à avoir les idées j'ai tripatouillé entre Explorateur d'objets et références jusqu'à un fichier et comme je faisais les trucs à taton je ne me souviens plus de quelle paramètre modifié pour que les autres fichiers fonctionnent pareillement.
🤔🤔🤔
Je teste ton fichier et je reviens
Cordialement
 

La flamme

XLDnaute Junior
"A ma grande surprise ça ne marche toujours pas" ou "A ma grande surprise ça marche toujours ." ???
Cela veut dire que les deux modifs proposées ne marchent pas ?
Vérifiez que les noms de feuilles dans la VBA sont correctes.
Remplacer pour voir en mettant DL=1234 ( 1234 étant le nombre de lignes ) cela permettra de voir si c'est le DL ou le .Range("A65500").End(xlUp).Row qu'il n'aime pas.
Mais n'ayant que 2007, je ne peux pas en faire plus.
Testez la PJ avec vos deux XL, il fait trois fois la même chose avec des syntaxes différentes.
Re
Merci pour tout .
Il apparaît qu'il y'avait un supplément de références actives, j'ai activé uniquement :
- visual Basic for applications
- Microsoft Excel 14.0 Objet Library
-OLE Automation
- Microsoft Forms 2.0 Objet Library
Appliquer partout ça fonctionne à merveille 👌👍👍👍🤗
Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia