Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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à
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
448
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…