Conversion format HH:MM:SS en VBA

Risbal14

XLDnaute Nouveau
Bonjour à tous,

Je cherche une solution en VBA pour convertir des unités au format HH:MM:SS en minutes.

Dans la colonne A (cf. fichier joint) j'ai des unités avec différents formats (HH:MM:SS ou numérique).

Je souhaite en colonne B convertir les cellules dont le format est en HH:MM:SS en minutes (cellule Bi = cellule Ai x 60 x 24).

Pour les cellules dont le format n'est pas en HH:MM:SS, le format reste inchangée (cellule Bi = Ai).

Les données en colonne ne sont pas en format texte, sinon j'aurai appliquée une recherche de ":".

Avez-vous une idée pour solutionner ce problème?

Merci de votre aide.

Boris.
 

Pièces jointes

  • Vérification Format cellule.xlsx
    12.4 KB · Affichages: 71

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Conversion format HH:MM:SS en VBA

Re,

une autre solution par macro
Code:
Sub Macro1()
Dim cellule As Range
For Each cellule In Range("A2:A" & Range("A65535").End(xlUp).Row)
If cellule.NumberFormat = "General" Then
Cells(cellule.Row, 3) = cellule
Else
Cells(cellule.Row, 3) = cellule * 60 * 24
End If
Next cellule
End Sub

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    19.4 KB · Affichages: 67
  • 111.xlsm
    19.4 KB · Affichages: 75
  • 111.xlsm
    19.4 KB · Affichages: 74

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Conversion format HH:MM:SS en VBA

Re Bonjour
Bonsour®

:cool:
=SI(GAUCHE(CELLULE("format";A2);1)="H";A2/"0:1";A2)
à recopier vers le bas autant que nécessaire
ou double-click sur la poignée de recopie (croix angle inferieur droit de la cellule)

Salut Modeste, j'avais également cette solution mais elle ne fonctionne pas pour:
Le problème c'est si A >= 24:00:00

à+
Philippe
 

Modeste geedee

XLDnaute Barbatruc
Re : Conversion format HH:MM:SS en VBA

Bonsour®
Re Bonjour

Salut Modeste, j'avais également cette solution mais elle ne fonctionne pas pour:
Le problème c'est si A >= 24:00:00
à+
Philippe

ok...

alors :

Code VBA:
Sub Macro1()
Dim cellule As Range
For Each cellule In Range("A2:A" & Range("A65535").End(xlUp).Row)
cellule.Offset(0, 1) = cellule / IIf(InStr(cellule.Text, ":") <> 0, TimeValue("00:01"), 1)
Next cellule
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 FORMULE Excel VBA
Réponses
17
Affichages
809

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia