• Initiateur de la discussion Initiateur de la discussion JJ
  • Date de début Date de début

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 !

J

JJ

Guest
Bonjour,
J'ai besoin d'aide pour m'écrire une macro:

j'ai une feuille excel avec 8 colonnes et une centaine de lignes
la colonne 7 est la durée (forme 00:00:00) et la colonne 8 le prix.
Je voudrais faire un 'cadeau' d' 1 heure à ce client en comptant et cumulant la durée de chaques lignes jusqu'à 1 heure (ces lignes doivent alors avoir aussi la mise à 0 de la colonne 8 prix (gratuité))

Puis après une durée cumulée d'1 heure, le prix n'est pas modifié, il me faudrait au bas le total de cette durée restante non gratuite

Merci à ceux qui m'aideront car c'est pas simple
JJ
 
Merci pour votre réponse, en fait il faut travailler sur 2 colonnes (7 pour la durée d'une location par ex, et 8 pour le prix sur la même ligne), il faut que la macro 'balaye' chaque ligne en cumulant chaque durée à la précédente (ligne) et remet a zero le prix sur chaque ligne tant que la durée cumulée n'est pas arrivée à 1H
Ensuite il suffit d'indiquer la durée restante non gratuite
ex de ligne 🙁col 7 et 8) 1mn 0
2mn 0
57mn 0
ensuite on compte la durée sans remettre a zero le prix en face
(je veux faire une heure de durée gratuite)
Bonne soirée
JJ
 
Bonsoir je joins un bout de fichier excel (onglet 2) pour montrer ce que la macro doit executer car c'est pas facile en l'écrivant

Le top serait (j'y pense en l'envoyant) que la partie supérieure à 1H (toute la ligne complète soit les 8 colonnes ) soit transférée et copiée dans l'onglet feuille suivante du classeur , ce qui me permettrait d'y faire d'autres tris!
merci
Bonne soirée
 
Bonsoir Hervé
Je vais tester la macro, mais comment va t elle 'balayer' la feuille de classeur excel? et executer ta boucle?
Il faut qu'elle balaye les colonnes 7 et 8 du debut a la fin de la feuille pour cumuler (en mémoire) la durée colonne 7 , mettre a zero la colonne 8 correspondante jusqu a ce que la durée cumulée atteigne 1H, puis ne plus remettre a zero le prix col 8 et afficher simplement en bas de la colonne 7 la durée > a 1H

merci
JJ
 
Bonjour Hervé
Comme je l'ai ecrit, j'ai testé ta macro: elle me convient parfaitement.
Toutefois, comme l'ont écrit les autres 'excelnautes' (que je remercie) elle ne tient pas compte d'un dépassement éventuel de l'heure (si la derniere durée est 2H comment faire ????)
merci et bon WE
 
Pour Hervé suite à sa macro,
je viens d'avoir une idée, il faudrait rajouter une ligne a ta macro pour faire la somme de la colonne 7 (durée) à partir de la ligne du cumul 1H et rajouter ce qui a été dépassé effectivement
ex: si le cumul des ligne 1 à 10 fait 1H (+10min) et que le cumul restant fait 2H , on rajoute les 10 minutes non comptées soit 2H10
Est ce possible?
merci
Bon WE
 
bonsoir tout le monde

Salut gérard 🙂

JJ, comme je n'ai pas compris ce que tu voulais faire du temps 'limite' au delà de 1 heures, ben je te préviens dans la macro via une msgbox.

Ainsi tu auras la syntaxe.

Donc, ce code supprime en 8ème colonne les montants dans le cadre d'un forfait d'une heure, et préviens si un reliquat est présent.

Sub Bouton1_QuandClic()
Dim c As Integer
Dim temps As Date
c = 1

Do While temps < '01:00:00'
temps = temps + Cells(c, 7)
If temps > '01:00:00' Then
&nbsp; &nbsp; Cells(c, 8) = ''
&nbsp; &nbsp; MsgBox 'Il reste : ' & CDate(TimeValue(temps) - TimeValue('01:00:00')) & ' à facturer.'
Else
&nbsp; &nbsp; Cells(c, 8) = ''
End If
c = c + 1
Loop

End Sub

salut
 
Bonjour,
Ta macro précédente suffisait, simplement comme l'heure ne 'tombait' pas juste et que je faisais le total de la durée apres la ligne ou s'arretait 1H , il faut que la macro ajoute simplement a cette durée le reliquat.
ex : si la macro remet a zero jusqu a la ligne 10 avec une durée de 1H5min et que la durée cumulée de la ligne 11 a 50 par ex est de 3H et bien il faut simplement rajouter les 5 min soit 3H5min
Est ce facile a rajouter sur la 1er macro qui tourne bien
merci
Bon WE
JJ
 
salut jj

En reprenant ton exemple :

dans les lignes de 1 à 50 tu as un total de 4h05mn. et tu veux 3h05mn soit le total - 1 heure + le reliquat du traitement de la macro.

Alors tu n'a pas besoin de macro il te suffit de faire la somme de tes temps et d'enlever 1 heure.

par formule, ca donne : =SOMME(G1:G15)-1/24

Et voilà tu auras bien la somme de tes temps - 1 heures.

ensuite il te suffit de faire tourner la macro 1 pour enlever les sommes.

salut
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
23
Affichages
665
Réponses
0
Affichages
431
Réponses
40
Affichages
3 K
Réponses
0
Affichages
556
Réponses
27
Affichages
2 K
Réponses
3
Affichages
568
Retour