format texte en nombre suite à une extraction

GG56000

XLDnaute Nouveau
bonjour à tous,

voilà ma problématique, je sors un tableau suite à une extraction, mais tout les chiffres sont en format texte, comment puis je tout transformer en format heure (c'est à dire 39:18 pour 39 heures et 18 minutes) soit via un bouton car le nombre de colonne sera toujours le meme.

Merci d'avance
 

Pièces jointes

  • extraction.xls
    368.5 KB · Affichages: 23

eriiic

XLDnaute Barbatruc
suite, voir au-dessus !

Ton fichier n'est pas pareil.
Tu démarrais en A1 et le tableau était isolé. Là tu démarres en U1 après d'autres données collées.

La macro adaptée :
VB:
Sub convertH()
    Const minDec = 1 / 60, repere As String = "Nom/prénom"
    Dim datas, lig As Long, col As Long, signe As Boolean, tmp, cel1 As Range
    Set cel1 = [1:2].Find(repere, , xlValues, xlWhole, , , , xlText)
    If cel1 Is Nothing Then MsgBox repere & " non trouvé en ligne 1": Exit Sub
    Set cel1 = cel1(1)
    col = Cells(1, Columns.Count).End(xlToLeft).Column ' dernière colonne
    lig = Cells(Rows.Count, cel1.Column + 1).End(xlUp).Row ' dernière ligne
    Range(cel1.Offset(1, 1), Cells(lig, col)).Select
    datas = Range(cel1.Offset(1, 1), Cells(lig, col)).Value
    For lig = 1 To UBound(datas, 1)
        For col = 1 To UBound(datas, 2)
            If InStr(datas(lig, col), ":") > 0 Then
                signe = Left(datas(lig, col), 1) = "-"
                If signe Then datas(lig, col) = Mid(datas(lig, col), 2)
                ' des heures >24 empêchent d'utiliser TimeValue pour la conversion
                tmp = Split(datas(lig, col), ":")
                datas(lig, col) = Round(tmp(0) + tmp(1) * minDec, 7)
                If signe Then datas(lig, col) = -datas(lig, col)
            End If
        Next col
    Next lig
    With cel1.Offset(1, 1).Resize(UBound(datas, 1), UBound(datas, 2))
        .Value = datas
        .NumberFormat = "0.00""h"";-0.00""h"";;@"
    End With
End Sub
eric
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, GG56000, eriiiic

Déjà il faudra 'Enregistrer sous...' en choisissant le Type *.xlsm si tu veux garder les macros.
Ctrl+F11 pour aller dans VBE
Juste pour infos
Ce n'est pas CTRL+F11
mais ALT+F11 pour accéder à VBE.
NB: CTRL+F11 insère une feuille macro XL4

•>eriiiic, c'était un petit coup de nostalgie ?
(Ah le bon temps de LIRE.CELLULE)
;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Ah, c'est pour ça que j'en ai trouvé une dans son fichier.
Je me demandais par quels détours il en était arrivé là :D
Bon, du coup je me suis senti obligé de corriger mon post
Bonjour le fil, David

•>eriiiic
Sauf erreur de ma part, tu gardes le ...ConTRôle, non?
J'ai point vu d'édition. ;)

NB: A moins que "corriger ton post", se fasse en cuir noir, avec un fouet en Option Explicit ;)
 

Discussions similaires

Réponses
9
Affichages
409

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote