Enlever espace dans chaine caractère VBA

Fermé
Céline - 20 mars 2012 à 21:55
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 mars 2012 à 16:27
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!!!
A voir également:

4 réponses

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
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
21 mars 2012 à 11:17
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 mars 2012 à 11:53
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
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
21 mars 2012 à 15:24
> 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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 21/03/2012 à 16:30
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