Enlever espace dans chaine caractère VBA

Céline -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour j,aimerais enlever des chaines de caractère sur un format heure, mais ca ne marche pas voici mon code :

Sheets("AM").Select
Range("B3:B3").Select 'cellule où chercher l'heure (IL est deja sous format 08:30)
Selection.Copy
Range("T11:T11").Select 'cellule ou le coller
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats 'enlever les 0 et les :
Dim Ce As Variant
Sheets("AM").Select
For Each Ce In Range("T11:T11") '****ENLEVER LES ZÉROS
Ce.Value = Replace(Ce.Value, "0", "")
Ce.Value = Replace(Ce.Value, ":", "")
Next Ce
Je veux avoir 715 à la place de 07:15 ou 1545 a la place de 15:45:00

MERCI!!!

4 réponses

  1. Yoda
     
    Bonjour,

    On peut faire plus simple

    Sub test()
    Dim h2txt As String
    h2txt = Range("b3").Text
    h2txt = Left(h2txt, 2) & Mid(h2txt, 4, 2)
    If Left(h2txt, 1) = "0" Then h2txt = Right(h2txt, 3)
    'MsgBox h2txt
        Range("t11").Select
        Selection.NumberFormat = "@"
        Range("t11").Value = h2txt
    End Sub

    Avec ce code, 00:00 donne 000
    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour à tous

    autre proposition

    Public Function cvhms(d As Date) As String
    Dim ds As String
      ds = Hour(d) & Minute(d) & Second(d)
      While Right(ds, 1) = "0"
        ds = Left(ds, Len(ds) - 1)
      Wend
      cvhms = ds
    End Function

    reste à savoir ce qu'on veut obtenir si l'entrée en 00:00:00

    bonne suite
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Pas besoin de poster en double

    Dim S As String
        'Pourquoi employer une boucle pour modifier UNE SEULE CELLULE
        S = [T11]
        S = Replace(S, "0", "")
        S = Replace(S, ":", "")
        [T11] = ""
        [T11].NumberFormat = "@"
        [T11] = S
    

    Un peu biscornu mais sans vider la cellule pas moyen de changer le format.
    A+
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    > lermite

    j'ai pensé (mais bon ...) que pour quelque chose du genre 07:00:25 le résultat devait contenir le 0 des mn

    bonne suite
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Bonjour CCM,
      Tu a raison, mais je n'avais pas ces renseignements quand j'ai répondu dans l'autre topic
      Juste que si tu ne vide pas la cellule, la reformater en texte, le format sera toujours date.
      A+
      0