• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Metinin önünde ve sonundaki noktalama işaretlerini temizlemek

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Hücrede yazan değerin sağında ve solunda yer alan "," ve "." işaretlerini temizlemenin kolay bir yolu var mıdır?
aşağıdaki kodu yazdım ama, birden fazla işaret olduğu zaman eksik kalıyor.

Teşekkürler,
iyi akşamlar.

Kod:
Private Function ConvertTo(deger As Variant)
Dim deger2

If Right(deger, 1) = "," Then
    deger2 = Trim(Left(deger, Len(deger) - 1))
End If

If Left(deger2, 1) = "," Then
    deger2 = Trim(Mid(deger, 2, Len(deger2) - 1))
End If

ConvertTo = deger2

End Function
 
Merhaba Tamer Bey,
Örnek veriyi görmekte yarar var diye düşünüyorum.
 
Merhaba,
Kodunuzun ana yapısını korumaya çalıştım.
Deneyiniz.
Kod:
Private Function ConvertTo(deger As Variant)
Dim sag As Boolean, sol As Boolean

Do
    If Right(deger, 1) = "," Or Right(deger, 1) = "." Or Right(deger, 1) = Chr(133) Then
        deger = Trim(Left(deger, Len(deger) - 1))
    Else
        sag = True
    End If
   
    If Left(deger, 1) = "," Or Left(deger, 1) = "." Or Left(deger, 1) = Chr(133) Then
        deger = Trim(Mid(deger, 2))
    Else
        sol = True
    End If
Loop Until sag = True And sol = True

ConvertTo = deger

End Function
 
Ömer bey 'in cevabını görmedim. Alternatif olsun


Merhaba ,
Aşağıdaki kodu deneyebilirsiniz.
Kod:
Sub ss()
Dim X As Long

For i = 1 To Range("A" & Rows.Count).End(xlUp).Row + 1
hc = Cells(i, 1)
For X = 1 To Len(hc)
If Left(hc, 1) = "." Then
hc = Right(hc, Len(hc) - 1)
hc = Left(hc, Len(hc) - 1)
Else
Exit For
End If
Next
Cells(i, 2) = hc

Next i

End Sub
 
Merhaba,
Kodunuzun ana yapısını korumaya çalıştım.
Deneyiniz.
Kod:
Private Function ConvertTo(deger As Variant)
Dim sag As Boolean, sol As Boolean

Do
    If Right(deger, 1) = "," Or Right(deger, 1) = "." Or Right(deger, 1) = Chr(133) Then
        deger = Trim(Left(deger, Len(deger) - 1))
    Else
        sag = True
    End If
  
    If Left(deger, 1) = "," Or Left(deger, 1) = "." Or Left(deger, 1) = Chr(133) Then
        deger = Trim(Mid(deger, 2))
    Else
        sol = True
    End If
Loop Until sag = True And sol = True

ConvertTo = deger

End Function
teşekkürler Ömer Hocam
 
Size bir ktf yazdım. İster formül olarak kullananın. İsterseniz kodda döngüde kullanın.

Kod:
Function Temizle(alan As Range)
Dim regEx As Object
Dim str As String

Set regEx = CreateObject("VBScript.RegExp")

With regEx
    .Global = True
    .IgnoreCase = True
    .Pattern = "^\W{1,999}|\W{1,999}$"
End With
    
Temizle = regEx.Replace(alan.Value, "")
    
End Function
 

Ekli dosyalar

Size bir ktf yazdım. İster formül olarak kullananın. İsterseniz kodda döngüde kullanın.

Kod:
Function Temizle(alan As Range)
Dim regEx As Object
Dim str As String

Set regEx = CreateObject("VBScript.RegExp")

With regEx
    .Global = True
    .IgnoreCase = True
    .Pattern = "^\W{1,999}|\W{1,999}$"
End With
   
Temizle = regEx.Replace(alan.Value, "")
   
End Function
teşekkürler
 
Geri
Üst