VBA - Compléter chaine de caractère

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 !

psychofred0

XLDnaute Nouveau
Bonjour,

Je me permets de solliciter votre aide concernant un bout de code que je souhaite ajouter dans ma procédure.
Je vous explique, je récupère des données sous un outil de suivi des temps que j'exploite ensuite.
Cependant, lorsque le temps cumulé est inférieur à 1H cela ne fonctionne pas correctement puisque le format n'est pas reconnu par exemple.

Voici un exemple du format qu'Excel a :
- lorsque c'est > à 1H : 01:10:00
- lorsque c'est < à 1H : :58:00 --> Là le fait que le 0 ne soit pas inclus dans la chaine de caractère lors de l'import des données bloque le traitement.

Je souhaite savoir comment je pourrais faire pour que le VBA scanne l'ensemble des cellules des colonnes concernées et ajoute un 0 avant le : afin de compléter la chaine de caractère de manière à ce que je puisse exploiter les données "temps" par la suite ?

J'espère avoir été clair dans mon explication.

En vous remerciant par avance,

Bonne lecture 🙂
 
Re : VBA - Compléter chaine de caractère

Bonjour,

Une possibilité serait peut-être de regarder si la chaîne de caractère commence par ":", auquel cas ajouter "0" ou "00" devant.

Ce qui donnerait, pour la cellule A1, un truc du genre :
If Left(Range("A1").Value, 1) = ":" Then Range("A1").Value = "00" & Range("A1").Value
 
Re : VBA - Compléter chaine de caractère

Bonjour et bienvenue sur XLD, psychofred0, bonjour, Marcel32, le Forum,

Un exemple avec ces quelques lignes :

Code:
Option Explicit
Sub Format_heure_adapter()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        If Left(Cells(i, 1), 1) = ":" Then Cells(i, 1) = "0" & Cells(i, 1)
    Next i
    Columns(1).NumberFormat = "[h]:mm:ss;@"
    Application.ScreenUpdating = True
End Sub

A bientôt 🙂
 
Re : VBA - Compléter chaine de caractère

Re bonjour,

Merci pour votre aide, je suis reparti de ce que vous m'avez proposé pour construire mon code.

Voici ce que cela donne :

Code:
Sub MEF_Format_Heure()
'Déclarer variable pour la DTC
Dim vNbLignesDTC
Dim vNumLigneDTC
'Déclarer variable pour la DTT
Dim vNbLignesDTT
Dim vNumLigneDTT
'Déclarer variable pour la DTG
Dim vNbLignesDTG
Dim vNumLigneDTG
vNbLignesDTC = Range("E8").CurrentRegion.Rows.Count
For vNumLigneDTC = 8 To vNbLignesDTC Step 1
    If Left(Range("E" & vNumLigneDTC).Value, 1) = ":" Then Range("E" & vNumLigneDTC).Value = "00" & Range("E" & vNumLigneDTC).Value
Next vNumLigneDTC

vNbLignesDTT = Range("I8").CurrentRegion.Rows.Count
For vNumLigneDTT = 8 To vNbLignesDTT Step 1
    If Left(Range("I" & vNumLigneDTT).Value, 1) = ":" Then Range("I" & vNumLigneDTT).Value = "00" & Range("I" & vNumLigneDTT).Value
Next vNumLigneDTT

vNbLignesDTG = Range("O8").CurrentRegion.Rows.Count
For vNumLigneDTG = 8 To vNbLignesDTG Step 1
    If Left(Range("O" & vNumLigneDTG).Value, 1) = ":" Then Range("O" & vNumLigneDTG).Value = "00" & Range("O" & vNumLigneDTG).Value
Next vNumLigneDTG
End Sub

J'ai testé et cela fonctionne à merveille.
Je suis encore novice dans la programmation, surtout sur les boucles...

Merci pour l'aide, cela va faire gagner pas mal de temps aux utilisateurs 🙂

Bonne journée, et bon WE... 😛😛
 
- 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
4
Affichages
223
Réponses
2
Affichages
419
Réponses
4
Affichages
109
Réponses
15
Affichages
629
Réponses
3
Affichages
109
Retour