j'ai une petite macro qui sert à transformer les heures en secondes sur une feuille Excel.
ex. 12:45:30 = 45930 secondes
Ma macro fonctionne quand je l'utilise sur une seule cellule.
Ce que je veux, c'est qu'il s'applique aussi lorsque l'utilisateur sélectionne plusieurs cellules. La difficulté (pour moi) vient du fait que les cellules qui seront selectionnée ne sont jamais les même
PS. S'il existe deja un topic sur ce probleme, soyez sympa de me donner le lien moi je l'ai pas trouvé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 Sub Macro2() Dim strHeure As String Dim strHeureS As String Dim lgSecHt As Long Dim lgHeure As Long Dim strMinuteS As String Dim lgSecMt As Long Dim lgMinute As Long Dim strSecondeS As String Dim lgSecSt As Long Dim lgSeconde As Long Dim lgTotal As Long Dim strTotal As String Dim MyRange As Range ' Macro2 Macro ' Macro enregistrée le 2006-03-20 par Patrice Gamache ActiveCell.Select strHeure = Format(ActiveCell.Value, "hh:mm:ss") 'Sert à valider que la cellule n'est pas déja en secondes If ActiveCell.Value >= 5 Then 'le "5" est un peu choisi au hazard mais il fonctionne... MsgBox "veuillez choisir une cellule au format : HH:MM:SS" Selection.NumberFormat = "0" End End If ' Heure strHeureS = Left(strHeure, 2) lgHeure = Int(strHeureS) lgSecHt = lgHeure * 3600 ' Minutes strMinuteS = Mid(strHeure, 4, 2) lgMinute = Int(strMinuteS) lgSecMt = lgMinute * 60 ' Secondes strSecondeS = Right(strHeure, 2) lgSeconde = Int(strSecondeS) lgSecSt = lgSeconde 'Calcul lgTotal = lgSecHt + lgSecMt + lgSecSt Selection.NumberFormat = "0" strTotal = lgTotal ActiveCell.Value = lgTotal End Sub
[Balises de code rajoutées par ThierryAIM, Merci d'y penser la prochaine fois]
Partager