[VBA-E]selection de plusieurs cellules
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
Code:
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 |
PS. S'il existe deja un topic sur ce probleme, soyez sympa de me donner le lien moi je l'ai pas trouvé...
[Balises de code rajoutées par ThierryAIM, Merci d'y penser la prochaine fois]