Je cherche une macro VBA pour Supprimer dans une colonne les caractères avant un caractère spécial et après un autre.
Le résultat pour ce faire dans la colonne directement ou dans la colonne suivante.
Le résultat pour ce faire dans la colonne directement cel.Value = Tdate(1)
ou
dans la colonne suivante. cel.Offset(,1).Value = Tdate(1)
VB:
Option Explicit
Sub test()
Dim Rgn As Range
Set Rgn = [A1:A12]
'Rgn.Offset(, 1).Clear
Dim cel As Range
Dim Tdate() As String
Dim Separateurdate As String
Dim Match As Object
Dim Matches As Object
Dim StrPattern As String
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
StrPattern = "[_-]"
reg.Pattern = StrPattern
reg.MultiLine = True: reg.IgnoreCase = False: reg.Global = True
For Each cel In Rgn
Set Matches = reg.Execute(cel.Value)
ReDim Tdate(Matches.Count)
For Each Match In Matches
'Debug.Print "source >>", Match.Value
Separateurdate = reg.Replace(cel.Value, " ")
Next Match
Tdate = Split(Separateurdate, " ")
'Rgn = "'" & Join(Tdate, "/")
cel.Value = Tdate(1)
Next cel
' libération d'objets
Set Matches = Nothing
Set Match = Nothing
Set reg = Nothing
Erase Tdate
Set Rgn = Nothing
Set cel = Nothing
Separateurdate = Empty
End Sub
Vous avez Raison @job75 c'est plus simple avec cette Option Convertir.
Le résultat pour ce faire dans la colonne directement cel.Value = Split(Cel.Value, " ")(1)
ou
dans la colonne suivante. cel.Offset(,1).Value = Split(Cel.Value, " ")(1)
VB:
Sub remplacerCaracteres()
Dim Rgn, Cel As Range
Set Rgn = [A1:A12]
For Each Cel In Rgn
Cel = Replace(Replace(Trim(Cel.Value), "_", " "), "-", " ")
'Debug.Print Split(Cel.Value, " ")(1)
Cel.Value = Split(Cel.Value, " ")(1)
Next Cel
End Sub
Ou
VB:
Sub remplacerCaracteres()
Dim Rgn, Cel As Range
Set Rgn = [A1:A12]
For Each Cel In Rgn
Cel.Value = Split(Replace(Replace(Trim(Cel.Value), "_", " "), "-", " "), " ")(1)
Next Cel
End Sub