Heure automatique en VBA

  • Initiateur de la discussion Initiateur de la discussion baptbapt
  • 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 !

baptbapt

XLDnaute Occasionnel
Je voudrais maintenant passer les heures situer en colonnes H et I en VBA
j'ai essayer, mais les valeurs afficher après itération me donne toujours 00:01:00

voila les équations sous excel

=H5+1/(24*60)--->H6
et bien sur je n'avais pas déterminé H5, car je ne sait pas convertir
=ARRONDI.INF(C5*24;0)/24--->H5
en VBA

colonne H colonne I
H5_______H6
H6_______H7
...

la colonne I est égale a H avec un décalage de 1

C5 correspond a la première valeur de ma simulation
exemple 12:00:00

arrondi.inf me permettant de mettre ma plage de valeur à la valeur correspondant a la valeur de départ de la simulation C5

si vous avez des solutions
 
Re : Heure automatique en VBA

et je le tape ou, pour l'instant je sait faire des macros, je débute quand meme.

Je réalise un nouvo module
et je fait une boucle d'itération?

Sub time()
Dim i As Variant
Dim g As Range
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
Range("D5😀" & Range("D65536").End(xlUp).Row).Select
Selection.ClearContents
Range("D5").Select
For Each g In Range("D5😀" & i + 4)
Application.WorksheetFunction.RoundDown(Range("C5") * 24, 0) / 24
Int(Range("C5") * 24) / 24
Next g
End Sub

mais sa ne tourne pas, a mon avis, je me suis planté

http://cjoint.com/?hfoVJVawnK

Avec la mise en page, on comprend mieu
 
Dernière édition:
Re : Heure automatique en VBA

Re...

Regarde ce code, attention dans le nom que tu utilises pour définir la macro, Time étant une fonction VBA, tu risques des plantages.

Code:
Sub basetime()
Dim i As Variant
Dim g As Range
Dim DebBase As Date

' Calcul la base du temps
DebBase = Int(Range("C5") * 24) / 24

'Saisie du nombre d'itération de la boucle
Do
   i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
Loop Until (Val(i) > 0) And (Val(i) < 257)

l = DebBase
'Efface la plage D5:Dxxx
Range("D5:D" & Range("D65536").End(xlUp).Row).ClearContents

'Affecte les temps dans les cellules
For Each g In Range("D5:D" & Val(i) + 4)
   g = l
   l = l + TimeValue("00:01:00")
   'par offset (0,1) on affecte la cellule de droite
   g.Offset(0, 1) = l
Next g
End Sub

Pense à mettre des commentaires dans ton code, cela va t'aider quand quelques semaines, quand tu vas devoir retravailler ton code, et utilise des interlignes pour décomposer les différentes actions dans ta macros.

Bon courage pour la suite.

@+Jean-Marie
 
- 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
7
Affichages
831
Réponses
17
Affichages
2 K
Réponses
7
Affichages
815
  • Question Question
Microsoft 365 Cpier/coller en VBA
Réponses
7
Affichages
819
T
Réponses
5
Affichages
1 K
Thomexcel
T
Retour