> Tous les forums > Forum Bureautique
 calcul automatique en fonction de la dateSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
valpat35
  Posté le 13/12/2012 @ 13:41 
Aller en bas de la page 
Petit astucien

Bonjour

j'ai fait un fichier excel pour gerer la caisse de l'accueil patient du labo ou je travaille

en colonne E les recettes

en colonne F les dépenses

en colonne G le montant total,

1) je voudrais rajouter en colonne H le montant journalier, mais le nombre d'opération par jour est variable

ci-joint mon fichier

www.cjoint.com%2F%3FBLnnnNZON4b&Horde=f4bcec29381d8364f930a7f54d7ad187" target="_blank">http://www.cjoint.com/?BLnnnNZON4b

2) Est 'il possible de remplacer la fonction de la colonne H =SI(NB.VIDE(A7)=1;" ";G6+E7-F7) par une macro

pour eviter l'effacement accidentel de la formule et de tirer la cellule sur 1000 lignes

3) la macro pour la date qui fonctionne bien sur d'autres fichiers me met la date au format anglais sur les douzes premiers jours du mois ( 12/05/20120 pour le 5 dec 2012).

merci de votre aide.

cordialement

valpat35



Modifié par valpat35 le 13/12/2012 15:20
Publicité
ferrand
 Posté le 13/12/2012 à 17:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour et bienvenue sur PCA,

On va commencer par ta 3e question. Pour ajuster la date, il convient de forcer le format...

Dans l'initialisation de tes Userform, remplacer la ligne :

UserForm1.TxtboxDate = Date par: UserForm1.TxtboxDate = Format(Date, "dd/mm/yyyy") [id. pour Userform2]

Ceci pour l'affichage dans le Userform. Même chose en ce qui concerne le transfert de la date sur la feuille (procédure associée au bouton Valider du Userform). Remplacer la ligne :

Worksheets("caisse").Range("A" & InsMot).Value = UserForm2.TxtboxDate.Value par :
Worksheets("caisse").Range("A" & InsMot).Value = Format(UserForm2.TxtboxDate.Value, "dd/mm/yyyy")
[id. pour la même procédure de Userform1].

Le reste après réflexion...

ferrand
 Posté le 13/12/2012 à 17:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Formules en colonnes G et H.

D'abord ta formule en G : =SI(NB.VIDE(A6)=1;" ";G5+E6-F6) paraît quelque peu tortueuse !

Je lui préfèrerais plus classiquement : =SI(A6<>"";G5+E6-F6;"")

Je crois surtout qu'il vaut mieux insérer le cas échéant une chaîne vide [""] plutôt qu'une espace [" "].

Pour ce qui est de la colonne H, vu ton exemple il n'est pas clairement établi si tu veux le total des Recettes du jour ou le total des Recettes-Dépenses. Voici quoiqu'il en soit une solution par formule (en H6 à tirer vers le bas) :

=SI(ET(A6<>"";NB.SI(A:A;A6)=NB.SI(A$6:A6;A6));SOMME.SI(A$6:A6;A6;E$6:E6)-SOMME.SI(A$6:A6;A6;F$6:F6);"")

Si tu ne totalises que les recettes, elle se réduit :

=SI(ET(A6<>"";NB.SI(A:A;A6)=NB.SI(A$6:A6;A6));SOMME.SI(A$6:A6;A6;E$6:E6);"")

Le total ne s'inscrit que sur la dernière ligne de chaque jour.

Si tu souhaitais remplacer la formule en G par une macro, je suppose que ce sera également le cas pour une formule en H !

G ne le justifiait pas spécialement, H le justifie un peu plus si ta liste est vraiment longue. C'est en tout cas certainement possible. A voir.

ferrand
 Posté le 13/12/2012 à 19:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Voici une macro à tester. A coller dans le module de la feuille Caisse (est lancée lorsque la colonne E ou F est servie).

Private Sub Worksheet_Change(ByVal Target As Range)
Dim n%, m%
n = Me.Range("A65536").End(xlUp).Row
If (Target.Column = 5 Or Target.Column = 6) And Target.Row = n Then
Me.Cells(n, 7).Value = Me.Cells(n - 1, 7).Value + Me.Cells(n, 5).Value - Me.Cells(n, 6).Value
Me.Cells(n, 8).Value = Me.Cells(n, 5).Value - Me.Cells(n, 6).Value
m = n - 1
Do While m > 0
If Me.Cells(m, 1).Value = Me.Cells(n, 1).Value Then
Exit Do
Else
m = m - 1
End If
Loop
If m > 0 Then
Me.Cells(n, 8).Value = Me.Cells(n, 8).Value + Me.Cells(m, 8).Value
Me.Cells(m, 8).ClearContents
End If
End If
End Sub

Je ne trouve pas trop satisfaisant, mais pas de meilleure idée pour l'instant. J'ai mis un verrou pour qu'elle ne se déclenche que pour la dernière ligne servie, donc lorsqu'on valide une recette ou une dépense, mais pas certain d'avoir tout prévu.

valpat35
 Posté le 14/12/2012 à 15:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour Ferrand

merci pour ton mot de bienvenue et de ton aide, mais tu m'as déja aidé sur le forum.

Concernanr mon fichier, impossible de me connecter sous mon ancien compte patval35, malgré plusieurs réinitialisations de mon mot de passe et 2 mails aux administrateurs, j'ai donc créer un nouveau compte

le problème de date subsiste malgré le changement , j'ai la solution de forcer l'affichage en choisissant le format de date anglaise dans format de cellule

j'a modifié les formules comme indiqué. c'est ce que je cherchais à faire , le total des recettes et dépenses de la journée

Par contre je n'arrive pas à faire fonctionner la macro, rien ne se passe .

Cordialement,

Valpat35



Modifié par valpat35 le 14/12/2012 15:26
ferrand
 Posté le 14/12/2012 à 15:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

valpat35 a écrit :

, mais tu m'as déja aidé sur le forum.

Je me souviens ! Ton pseudo m'évoquait quelque chose mais dans l'incertitude... Bon retour donc

La macro est une évènementielle, à placer dans le module de la feuille concernée. Se lançait bien dans ton classeur modèle, lors de la saisie d'une recette ou dépense au moyen des userform.

Si tu l'insères dans un classeur en cours, peut-être y a-t-il un apprêt à faire pour qu'elle prenne le relais en donnant les résultats attendus. Il faut donc voir comment tu as procédé ?

valpat35
 Posté le 14/12/2012 à 17:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'ai copier ta macro dans le module 1 de la feuille du classeur modele, cela ne fonctionne pas. j'ai essayé dans le module 2 aussi.

je ne l'ai peut-etre pas copier au bon endroit?

valpat35

galopin01
 Posté le 14/12/2012 à 18:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
ferrand a écrit :

Voici une macro à tester. A coller dans le module de la feuille Caisse (est lancée lorsque la colonne E ou F est servie).


Bonsoir,

le module de la feuille "Caisse", c'est le module de la feuille "Caisse".

Pas Module1 !

valpat35
 Posté le 14/12/2012 à 19:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Désolé

je ne comprend pas , comment creer le module de la feuille "caisse"?

rj390111
 Posté le 14/12/2012 à 19:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Valpat Ferrand Galopin01 ca fait longtemps pour les deux derniers

Clic droit sur l'onglet de la feuille > Visualiser le code.

valpat35
 Posté le 14/12/2012 à 19:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci

cela fonctionne mieux quand on copie le code au bon endroit sur le fichier test

je teste cela lundi au boulot

bon week-end à tous

galopin01
 Posté le 15/12/2012 à 02:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

C'est vrai que ça parait un peu dommage de coller des formules dans ce tableau.

Il y a quand même quelques détails qui me "titillent"...

Le modèle fourni présente une date dans le désordre.

Cela est-il possible dans la réalité ?

Si non il conviendrait de modifier le USF pour éviter de revenir sur une date antérieure. Cet illogisme pose un problème peu compatible avec un calcul de Fin de Journée.

Si oui comment peut-on savoir qu'il faut déclancher la Fin de journée ? Cette Fin de Journée doit-elle se déclancher automatiquement ou à la demande de l'opérateur ?

C'est un peu dommage d'avoir deux USF pour la même fonction...

Un UserForm unique "Saisie" aurait suffit avec en sortie -au lieu du bouton "Valider"- un bouton "Recette" et un bouton "Dépenses"

A+



Modifié par galopin01 le 15/12/2012 02:57
ferrand
 Posté le 15/12/2012 à 07:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

galopin01 a écrit :

Le modèle fourni présente une date dans le désordre.

Cela est-il possible dans la réalité ?

Effectivement, compte tenu du modèle j'ai considéré que les dates pouvaient se chevaucher... Si on fait en sorte que ce ne soit plus le cas on peut faire appel à des solutions moins lourdes.

Ceci dit cela reste un problème d'utilisation, j'avais imposé une succession chronologique de compte perso dans un programme fait il y a quelques années et j'ai fini par trouver enquiquinant à l'usage, je viens de casser ce verrouillage en l'actualisant pour rattraper plus aisément des omissions sans gymnastique avec les dates (mais je ne fais de situations que mensuelles et non journalières).

C'est un peu dommage d'avoir deux USF pour la même fonction...

Un UserForm unique "Saisie" aurait suffit avec en sortie -au lieu du bouton "Valider"- un bouton "Recette" et un bouton "Dépenses"

En effet ! Ce serait une bonne simplification. Mais j'aurais une préférence pour sélectionner Recette ou Dépense par cases d'option, avec bonne signalisation visuelle de la sélection effectuée (je sais que pour ma part j'aurais une fréquence d'erreurs plus grande avec deux boutons de validation...), et garder un seul Valider (et un Annuler).

patval, j'ai vu tes démêlés avec le module de feuille... il me semble pourtant me souvenir que tu n'étais pas tout à fait novice en matière de macros ! A toi de te pencher sur les suggestions de Galopin (que je n'ai pas voulu faire... mais qui sont tout à fait judicieuses).

Bonne journée à tous

valpat35
 Posté le 16/12/2012 à 21:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir à tous

Effectivement c'est une erreur de ma part d'avoir mis une date dans le désordre, normalement la date saisie devrait etre celle du jour, voire de la veille en cas de coup de bourre à l'heure de la fermeture.

j'ai choisit deux USf car certaines de mes collegues non JAMAIS utiliser excell et je pense limiter les risques d'erreurs ainsi mais je peux le modifier à l'usage.

effectivement je ne suis pas tout à fait novice en matiere de macro, mais surtout autodidacte

les macros que j'utilise sont des copier coller de celle que je trouve sur le net ou que vous m'aider a faire et que j'essaie d'adapter à mes besoins

j'essaie de comprendre les grandes lignes des macros utilisés et je n'avais pas encore rencontré de macro dans le module d'une feuille.

je vous tiens au courant demain si cela fonctionne aussi bien sur le fichier réel que sur le fichier test

A+

valpat35
 Posté le 18/12/2012 à 13:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour à tous

le fichier fonctionnre et mes collegues sont contentes de ne plus faire la caisse manuellement

merci pour votre aide

cordialement

valpat35

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
299,99 €PC portable 14 pouces Asus (Pentium, 4 Go RAM, 128 Go eMMC, Windows 10, Office 365) + sac à 299,99 €
Valable jusqu'au 25 Octobre

Cdiscount fait une promotion sur le PC portable 14 pouces Asus E406MA-BV1040TS qui passe à 299,99 € au lieu de 400 €. Ce portable dispose d'un écran 14 pouces HD (1368x 768 pixels), d'un processeur Intel Pentium Silver N5030, de 4 Go de RAM et d'un espace de stockage eMMC de 128 Go extensible par USB, d'une webcam, du WiFi et du bluetooth, de l'USB 3.0. Il pèse 1,3 kg et offre une autonomie de 10h environ.

Il possède un numpad (pavé numérique intégré au touchpad). Notez qu'un abonnement d'1 an à Office 365 (Word, Excel, OneNote, PowerPoint, Outlook, Access et Publisher) vous est également offert ainsi qu'une sacoche et une souris.

Une bonne affaire pour un petit portable à emmener partout avec vous.


> Voir l'offre
89,99 €SSD Crucial P2 1 To (3D NAND, NVMe, PCIe, M.2) à 89,99 €
Valable jusqu'au 25 Octobre

Amazon fait une promotion sur le SSD Crucial P2 1 To (3D NAND, NVMe, PCIe, M.2) qui passe à 89,50 € livré gratuitement. On le trouve ailleurs à partir de 125 €. Ce SSD offre des vitesses de lecture/écriture séquentielle allant jusqu’à 2 400/ 1 900 Mo/s. Il est garanti 5 ans.


> Voir l'offre
104,90 €Carte mère Asus TUF B550-Plus Gaming à 104,90 €
Valable jusqu'au 24 Octobre

RueDuCommerce fait une promotion sur la carte mère Asus TUF B550-Plus Gaming qui passe à 104,99 €. On la trouve ailleurs à partir de 135 €. 

Prête à accueillir les processeurs AMD Ryzen de 3ème génération (nom de Core Matisse), la carte mère ASUS TUF GAMING B550M-PLUS est idéale pour concevoir un PC Gaming performant et équilibré. Le support du PCI-Express 4.0 vous emmène vers de nouveaux sommets. Grâce à la prise en charge de la mémoire vive DDR4 jusqu'à 128 Go, des cartes graphiques PCI-Express 3.0, des disques M.2 PCIe 4.0 4x, la carte mère ASUS TUF GAMING B550M-PLUS profite grâce à son chipset AMD B550, de ce qui se fait de mieux.


> Voir l'offre

Sujets relatifs
une colonne de calcul automatique
report automatique date et compteur fichier excel.
report automatique date et compteur fichier excel.
tarif en fonction de la date
Calc calcul automatique différence
Calculer date en fonction d'une valeur dans une plage de cellules
Calcul automatique word ou excel 2007
calcul automatique
Fonction Max ne fonctionne plus lorsque date
calcul automatique de vitesse moyenne sous excel
Plus de sujets relatifs à calcul automatique en fonction de la date
 > Tous les forums > Forum Bureautique