XL 2016 Calculer la durée et le montant

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
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

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
 
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

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.
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
696
Retour