Conversion format HH:MM:SS en VBA

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

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

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

Re : Conversion format HH:MM:SS en VBA

Re Bonjour
Bonsour®

😎
=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
 
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
 
- 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
8
Affichages
704
Réponses
17
Affichages
1 K
Réponses
7
Affichages
977
Réponses
10
Affichages
1 K
  • Question Question
Microsoft 365 heures sans les :
Réponses
2
Affichages
775
Retour