Macro pour journal de caisse
Crsi68300
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Cris68300 Messages postés 104 Date d'inscription Statut Membre Dernière intervention -
Cris68300 Messages postés 104 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai débuté un fichier pour une entreprise, mais je bloque déjà car trop complexe pour moi.
(je fais ça afin de m'améliorer sur Excel...)
Le but serait quand cliquant sur le mode de paiement, ça copie les données dans journal de caisse, sur la bonne ligne en fonction de la date, et sinon se serait trop simple, additionne au fur et à mesure les ventes.
Ensuite, viens déduire les produits du stock.
J'ai vraiment l'impression que c'est irréalisable...
Si quelqu'un peut m'aider?
Merci d'avance
Cris
https://www.cjoint.com/doc/17_09/GIuoXt4NBhD_Suivi-CA-Stock.xlsm
J'ai débuté un fichier pour une entreprise, mais je bloque déjà car trop complexe pour moi.
(je fais ça afin de m'améliorer sur Excel...)
Le but serait quand cliquant sur le mode de paiement, ça copie les données dans journal de caisse, sur la bonne ligne en fonction de la date, et sinon se serait trop simple, additionne au fur et à mesure les ventes.
Ensuite, viens déduire les produits du stock.
J'ai vraiment l'impression que c'est irréalisable...
Si quelqu'un peut m'aider?
Merci d'avance
Cris
https://www.cjoint.com/doc/17_09/GIuoXt4NBhD_Suivi-CA-Stock.xlsm
A voir également:
- Macro pour journal de caisse
- Journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mon journal intime - Télécharger - Vie quotidienne
- Jitbit macro recorder - Télécharger - Confidentialité
- Style journal officiel word - Guide
64 réponses
Via,
Je suis en train de m'y perdre...
Ta solution est très logique mais pas si simple à réaliser.
Je te montre si tu veux même si là, dans visual basic j'ai tout chamboulé à force de tout tester dans tout les sens...
https://mon-partage.fr/f/VMyDbhFr/
La macro fonctionne pour l'onglet statistique, mais non dans l'onglet Tableau de bord == Gestion mensuelle.
J'ai un problème de copy.
Cdt,
Cris
Je suis en train de m'y perdre...
Ta solution est très logique mais pas si simple à réaliser.
Je te montre si tu veux même si là, dans visual basic j'ai tout chamboulé à force de tout tester dans tout les sens...
https://mon-partage.fr/f/VMyDbhFr/
La macro fonctionne pour l'onglet statistique, mais non dans l'onglet Tableau de bord == Gestion mensuelle.
J'ai un problème de copy.
Cdt,
Cris
Bonjour Cris,
Je en comprends pas ce que tu veux obtenir avec ta macro, notamment la ligne
With Sheets("Journal de caisse")
If Range("B61") = "JANVIER" Then
Range("B67") = Range("O67").Value
Il n'y a pas de JANVIER en B61 de Journal !
Je pense que tu veux trop compliquer et que tu vas en faire une usine à gaz !
D'autre aprt lorque tu utilises With c'est pour éviter de repéter à chaque fois la feuille mais il ne faut pas oublier le point devant l'instruction devant suivre Sheets()
Dans tes lignes en fin de macro :
With Sheets("STATISTIQUE")
Sheets("STATISTIQUE").Activate
Range("AO65").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Range("B60").Select
End With
1) Sheets("STATISTIQUE") devant Activate est inutile puisqu'avant il y a le With don c tu devrait seulement avoir .Activate
2) Par contre après si tu veux sélectionner A065 de Statistiques il manque justement le point devant Range
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Je en comprends pas ce que tu veux obtenir avec ta macro, notamment la ligne
With Sheets("Journal de caisse")
If Range("B61") = "JANVIER" Then
Range("B67") = Range("O67").Value
Il n'y a pas de JANVIER en B61 de Journal !
Je pense que tu veux trop compliquer et que tu vas en faire une usine à gaz !
D'autre aprt lorque tu utilises With c'est pour éviter de repéter à chaque fois la feuille mais il ne faut pas oublier le point devant l'instruction devant suivre Sheets()
Dans tes lignes en fin de macro :
With Sheets("STATISTIQUE")
Sheets("STATISTIQUE").Activate
Range("AO65").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Range("B60").Select
End With
1) Sheets("STATISTIQUE") devant Activate est inutile puisqu'avant il y a le With don c tu devrait seulement avoir .Activate
2) Par contre après si tu veux sélectionner A065 de Statistiques il manque justement le point devant Range
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Merci pour ta réponse Via,
J'ai réussi à tout remettre comme je l'avais programmé avant de te poser cette question, comme ça tu y verras plus clair:
https://mon-partage.fr/f/phq9FpUC/
Car je ne pense pas que se soit trop... et le fichier touche à sa fin donc je n'ai presque rien à rajouter.
Là il s'agit du code Feuil10 statistique. commandbutton 2 que j'ai programmé l'autre jour.
C'est fonctionnel.
Je voulais juste faire un lien pour qu'en cliquant sur gestion mensuelle dans le tableau de bord, via usf gestion mensuelle, sa reproduise la même chose.
Je vais regarder car je pense devoir programmer différent en fonction des onglets, mais je te l'envoie juste pour que tu comprennes la base de ce que je voulais faire...
Et je vais y arriver car j'ai gardé en mémoire, au tout début du sujet, que tu m'as dit qu'on peut tout faire avec excel.
En tout cas merci encore.
Très bonne soirée
Cris
J'ai réussi à tout remettre comme je l'avais programmé avant de te poser cette question, comme ça tu y verras plus clair:
https://mon-partage.fr/f/phq9FpUC/
Car je ne pense pas que se soit trop... et le fichier touche à sa fin donc je n'ai presque rien à rajouter.
Là il s'agit du code Feuil10 statistique. commandbutton 2 que j'ai programmé l'autre jour.
C'est fonctionnel.
Je voulais juste faire un lien pour qu'en cliquant sur gestion mensuelle dans le tableau de bord, via usf gestion mensuelle, sa reproduise la même chose.
Je vais regarder car je pense devoir programmer différent en fonction des onglets, mais je te l'envoie juste pour que tu comprennes la base de ce que je voulais faire...
Et je vais y arriver car j'ai gardé en mémoire, au tout début du sujet, que tu m'as dit qu'on peut tout faire avec excel.
En tout cas merci encore.
Très bonne soirée
Cris
Tu ne devrais pas avoir de mal à appliquer une macro similaire mais :
- attention à bien nommer les feuilles et à mettre des Sheets(nom de la feuille) avant les range pour qu'il n'y ait pas de confusion avec la feuille active
- ne pas fermer l'userform avant la fin de la macro sinon la macro ne peut pas lire le mois choisi ou alors mettre en début de macro ce choix dans une variable moischoisi= Comboxbox1 .... puis fermer l'UF et utiliser ensuite la variable dans les IF
- Utiliser des With sheets() pour optimiser mais ne pas oublier les points devant les instructions cincernant cette feuille
Tu peux aussi remplacer avantageusement une série de IF... END IF qui reprennent les mêmes instructions avec seulement une variable ou deux qui changent par un Select Case
Exemple : calculer une taxe (à mettre en D2) en fonction d'un PHT (en B2) et d'un taux (choisi par combo type 1, 2 ou 3 et mis dans une variable letaux :
Select case letaux
case 1
tauxchoisi=20
case 2
tauxchosi=10
case 3
tauxchosi=5
End select
Range("D2") = range("B2") * tauxchosi/100
Cdlmnt
Via
- attention à bien nommer les feuilles et à mettre des Sheets(nom de la feuille) avant les range pour qu'il n'y ait pas de confusion avec la feuille active
- ne pas fermer l'userform avant la fin de la macro sinon la macro ne peut pas lire le mois choisi ou alors mettre en début de macro ce choix dans une variable moischoisi= Comboxbox1 .... puis fermer l'UF et utiliser ensuite la variable dans les IF
- Utiliser des With sheets() pour optimiser mais ne pas oublier les points devant les instructions cincernant cette feuille
Tu peux aussi remplacer avantageusement une série de IF... END IF qui reprennent les mêmes instructions avec seulement une variable ou deux qui changent par un Select Case
Exemple : calculer une taxe (à mettre en D2) en fonction d'un PHT (en B2) et d'un taux (choisi par combo type 1, 2 ou 3 et mis dans une variable letaux :
Select case letaux
case 1
tauxchoisi=20
case 2
tauxchosi=10
case 3
tauxchosi=5
End select
Range("D2") = range("B2") * tauxchosi/100
Cdlmnt
Via
Bonjour Via, le forum,
J'espère que tu vas bien depuis nos derniers échanges.
Je reviens vers toi car je rencontre un léger problème avec un des codes de programmation que tu m'avais donné...
Je m'explique: J'ai changé le journal de caisse 2017 en 2018. Puis installé le programme chez mon amie qui s'en sert maintenant tous les jours. Mais après avoir changé en 2018. En validant un ticket de caisse, il me faisais un report sur novembre (ex: 6 novembre lorsqu'on étais le 6 janvier).
Ton code:
Ligne = .Columns(2).Find(Date, , , , xlByColumns, xlPrevious).Row
Je l'ai changé en enlevant juste une virgule et c'étais bon.
Seulement là, je suis allé à l'institut car elle me disais que ses chiffres n'étais pas bon. Et lors de la journée de mardi, tous les tickets se sont bien rangés dans janvier et sans savoir pourquoi, 3 tickets se sont mis sur novembre.
Est ce que de ton côté tu arrives à comprendre ce qu'il se passe?
Merci d'avance si tu peux regarder.
Cdlt, Cris
https://mon-partage.fr/f/80utE4tX/
UseForm3
J'espère que tu vas bien depuis nos derniers échanges.
Je reviens vers toi car je rencontre un léger problème avec un des codes de programmation que tu m'avais donné...
Je m'explique: J'ai changé le journal de caisse 2017 en 2018. Puis installé le programme chez mon amie qui s'en sert maintenant tous les jours. Mais après avoir changé en 2018. En validant un ticket de caisse, il me faisais un report sur novembre (ex: 6 novembre lorsqu'on étais le 6 janvier).
Ton code:
Ligne = .Columns(2).Find(Date, , , , xlByColumns, xlPrevious).Row
Je l'ai changé en enlevant juste une virgule et c'étais bon.
Seulement là, je suis allé à l'institut car elle me disais que ses chiffres n'étais pas bon. Et lors de la journée de mardi, tous les tickets se sont bien rangés dans janvier et sans savoir pourquoi, 3 tickets se sont mis sur novembre.
Est ce que de ton côté tu arrives à comprendre ce qu'il se passe?
Merci d'avance si tu peux regarder.
Cdlt, Cris
https://mon-partage.fr/f/80utE4tX/
UseForm3
Bonsoir Cris
Oui ça va et toi aussi je suppose ☺
Oui en recherchant 18/01/2018 à partir du bas la macro s'arrête sur le 18/11/2018 !!
Pour éviter cela il faut exiger une correspondance exacte en rajoutant une instruction xlWhole dans toutes les lignes des macros recherchant Date avec Find
ligne = .Columns(2).Find(Date, , , xlWhole, xlByColumns, xlPrevious).Row
Cdlmnt
Via
Oui ça va et toi aussi je suppose ☺
Oui en recherchant 18/01/2018 à partir du bas la macro s'arrête sur le 18/11/2018 !!
Pour éviter cela il faut exiger une correspondance exacte en rajoutant une instruction xlWhole dans toutes les lignes des macros recherchant Date avec Find
ligne = .Columns(2).Find(Date, , , xlWhole, xlByColumns, xlPrevious).Row
Cdlmnt
Via