Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Calculer la durée et le montant

Bobleesouf

XLDnaute Nouveau
Bonjour,

J'ai commencé un travail mais j'ai besoin de votre soutien par ce que je suis débuter,
J'ai utiluser un Macro pour ajouter le matricule après click sur le bouton 2, le matricule s'ajoute automatiquement à la feuil : Liste mais je veux que la date et l'heure s'ajoute aussi automatiquement.
après, et sur le formulaire Sortie, il suffit de saisie le matricule, cliquer sur le bouton "Sortie" et afficher (Date et Heure d'entrée + Date et Heure de sortie + et calculer le montant de stationnement automatiquement par rapport les tarifs (Feuil Tarifs).

et Merci à vous infiniment.
 

Pièces jointes

  • Calcule Stationnement.xlsm
    21.2 KB · Affichages: 2
Solution
Bonjour,
Pour l'impression d'une zone, il suffit de faire :
VB:
Sub Impression()
With Sheets("Ticket")                       ' Choix de la feuille
    .PageSetup.PrintArea = "$B$6:$F$12"     ' Zone à imprimer
    .PrintOut                               ' Impression
End With
End Sub
Code qu'il vous faut inclure là où vous voulez imprimer.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bobleesouf,
Votre macro me semble bien compliquée.
Un essai en PJ avec pour Entrée :
Code:
Sub Entrée()
With Sheets("Liste")
    .Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    .Range("A2:C2") = Range("C9:E9").Value
    .Range("D2") = Now
    Range("C9:E9").ClearContents
    Range("I8:K8").ClearContents
    Range("J10:K12").ClearContents
End With
End Sub
et pour Sortie :
Code:
Sub Sortie()
With Sheets("Liste")
    DL = .[A65000].End(xlUp).Row
    Range("J8:K8").ClearContents
    Range("J10:K12").ClearContents
    For L = 2 To DL
        If .Cells(L, "A") = [I8] And .Cells(L, "E") = "" Then
            .Cells(L, "E") = Now
            .Cells(L, "F") = .Cells(L, "E") - .Cells(L, "D")
            [J8] = .Cells(L, "B")
            [K8] = .Cells(L, "C")
            [J10] = .Cells(L, "D")
            [J12] = .Cells(L, "E")
            Exit For
        End If
    Next L
End With
End Sub
Il vous reste à traiter le prix car on n'a aucune règle sur ce point.
 

Pièces jointes

  • Calcule Stationnement.xlsm
    25 KB · Affichages: 5

Bobleesouf

XLDnaute Nouveau

sylvanu

XLDnaute Barbatruc​


Merci beaucoup ça marche très bien.
Une question concernant le prix : il y a pas de formule (par exemple la formule Si) qui peux nous donnez le prix ?
Si la durée ne dépasse pas 1 heure alors le prix égale à 5,00
si la durée est entre 1:01 heure et 3 heures => 7,00
entre 03:01 heure et 6 heure => 12,00
DE 07:00 HEURES DU MATIN A 19 :00 HEURES => 15,00
DE 19 :00 HEURES DU SOIR 07 :00 HEURES DU MATIN => 20,00
PERIODE DE 24 HEURES => 25,00
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Un essai en PJ.
J'ai mis le calcul de la somme dûe en formule en page Tarifs.
A noter qu'il manque un tarif, si >6H et <24H. J'ai mis arbitrairement 14DH. Et mis à jour le VBA en conséquence.
Mais les formules sont simples à modifier si nécessaire.
 

Pièces jointes

  • Calcule Stationnement (2).xlsm
    26.9 KB · Affichages: 5

Bobleesouf

XLDnaute Nouveau
Bonjour,
Voilà, j'ai changé un peu la tarification pour s'adapter avec les formule, je veux juste ajouter une option d'impression des tickets :
- une ticket d'entrée chaque fois on ajoute un nouveau matricule (exemple du ticket et sur la feuil "ticket".
- Une ticket de sortie (exemple du ticket : "Feuil Ajoute H6:N14").

Merci d'avance
 

Pièces jointes

  • Calcul Stationnement 02 (003).xlsm
    26.3 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Pour l'impression d'une zone, il suffit de faire :
VB:
Sub Impression()
With Sheets("Ticket")                       ' Choix de la feuille
    .PageSetup.PrintArea = "$B$6:$F$12"     ' Zone à imprimer
    .PrintOut                               ' Impression
End With
End Sub
Code qu'il vous faut inclure là où vous voulez imprimer.
 

Bobleesouf

XLDnaute Nouveau
Rebonjour,
çaaa marche très bien, merciii beaucoup.
Dernière question, est ce que je peux protéger les feuilles "Liste" "Tarifs" " Ticket", pour interdire la modification manuelle sans bloquer l'exécution des macros ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
La feuille Tarifs n'étant pas accéder par le VBA, il vous suffit de faire une protection classique avec "Protéger la feuille"
Pour les autres feuilles, en début de macro vous faites :
VB:
Sheets("Feuil1").Unprotect "MotDePasse"
en fin de macro :
Code:
Sheets("Feuil1").Protect "MotDePasse"
En changeant le nom de la feuille, et évidemment le mot de passe
 

Bobleesouf

XLDnaute Nouveau

Bonjour sylvanu,​

J'ai un truc à ajouter sur la feuille "liste" s'il est possible :
Je veux ajouter une colonne H "Estimation", c'est a dire pour les voitures qui ne sont pas encore sortie de calculer l'estimation du prix par rapport "Maintenant" ?

Cordialement.
 

Pièces jointes

  • Calcul Stationnement 02 (003).xlsm
    26.3 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Un essai en PJ avec :
VB:
Sub Estimation()
    For L = 2 To [D65000].End(xlUp).Row
        If Cells(L, "D") <> "" And Cells(L, "E") = "" Then
            Sheets("Tarifs").Range("C13") = Cells(L, "D")
            Sheets("Tarifs").Range("C14") = Now
            Calculate
            Cells(L, "H") = Format([Estimée], "0.00 DH")
        End If
    Next L
End Sub
 

Pièces jointes

  • Calcul Stationnement 02 (003).xlsm
    29.4 KB · Affichages: 4

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…