• DİKKAT

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

Makro düzenlenmesi

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba herkese hayırlı akşamlar.

Ekte gönderdiğim excel sayfası içerisinde RAKAMAYIR ve HARFAYIR makrosu var. Hücre içerisinde hem sayı ve hem isim olduğundan ben bunu bu makrolar ile ayırıyorum, ancak rakam ile kelime arasında (-, _, /, ,) bu işaretler olduğundan kelimenin başına geliyor.

Rakamayır makrosu sadece rakamları aldığı gibi, harfayır makrosuda sadece kelimelerin almasını istiyorum.

Kodu düzenleyecek arkadaşlara şimdiden teşekkür ederim.
 

Ekli dosyalar

Denermisiniz.,,
İşaretleri çoğaltabilin diye hepsine ayrı ayrı IF kullandım.

Kod:
Function HARFAYIR(Hücre As Range)
    For X = 1 To Len(Hücre)
    If Not IsNumeric(Mid(Hücre, X, 1)) Then
    If Mid(Hücre, X, 1) <> " " Then
    If Mid(Hücre, X, 1) <> "*" Then
    If Mid(Hücre, X, 1) <> "/" Then
    If Mid(Hücre, X, 1) <> "-" Then
    SONUÇ = SONUÇ & Mid(Hücre, X, 1)
    End If
    End If
    End If
    End If
    End If
    Next
    SONUÇ = IIf(SONUÇ = 0, "Harf Bulunamadı!", SONUÇ)
    HARFAYIR = SONUÇ
End Function
 
Sayın Mustafa Bey ellerinize sağlık çok teşekkür ederim, çok işime yaradı Allah razı olsun.

Küçük bir sorun var ismi birleşik yazıyor mesela AslanEraslan gibi, bunu nasıl çözebiliriz?
 
Sayın Mustafa Bey harfayır koduna sayı ile isim arasındaki boşluğu sil komutu gibi komut konulsa yeterli olacak.
 
Kod:
Function HARFAYIR(Hücre As Range)
    For X = 1 To Len(Hücre)
    MSTF = 0
    For MM = X To X + 1
    If MM = Len(Hücre) Then
    GoTo Gel
    End If
    If Mid(Hücre, MM, 1) = " " Then
    MSTF = MSTF + 1
    End If
    Next
    If MSTF > 1 Then
    GoTo Git
    End If
Gel:
    If Not IsNumeric(Mid(Hücre, X, 1)) Then
    If Mid(Hücre, X, 1) <> "*" Then
    If Mid(Hücre, X, 1) <> "/" Then
    If Mid(Hücre, X, 1) <> "-" Then
    SONUÇ = SONUÇ & Mid(Hücre, X, 1)
    End If
    End If
    End If
    End If
Git:
    Next
    SONUÇ = IIf(SONUÇ = 0, "Harf Bulunamadı!", SONUÇ)
    HARFAYIR = SONUÇ
End Function
 
Sayın Mustafa Bey, sayıdan ayırmış olduğum ismi, oluşturduğum cümle içerisinde kullanmak için bu kodu kullanmak istemiştim.

En son gönderdiğiniz kodu sayfama uyguladım hücre içerisine aşağıdaki gibi yazılırsa yani sayı ile isim bitişik olursa normal şekilde yazıyor, yani ismin başında boşluk yok, benim istediğimde bu, ancak arkadaşlar hücrede değişik uygulamalar yapacığından bunu önlemek istemiştim.
1970/Aslan ERASLAN
1970Aslan ERASLAN


Ancak A1 hücresinde aşağıdaki gibi yazılar yazıldığı zaman ismin başında bir boşluk oluşuyor,
1970 Aslan ERASLAN
1970 /Aslan ERASLAN
1970/ Aslan ERASLAN
1970 / Aslan ERASLAN
 
Şöyle deneyin bakalım belki işinizi görür.

Kod:
Function HARFAYIR(Hücre As Range)
    For X = 1 To Len(Hücre)
    If X >= 2 Then
    If Mid(Hücre, X - 1, 1) = " " Then
    If Mid(Hücre, X, 1) = " " Then
    GoTo Gel
    End If
    End If
    End If
    If Not IsNumeric(Mid(Hücre, X, 1)) Then
    If Mid(Hücre, X, 1) <> "*" Then
    If Mid(Hücre, X, 1) <> "/" Then
    If Mid(Hücre, X, 1) <> "-" Then
    
    SONUÇ = SONUÇ & Mid(Hücre, X, 1)
    If SONUÇ = " " Then
    SONUÇ = ""
    End If
    End If
    End If
    End If
    End If
Gel:
    Next
    SONUÇ = IIf(SONUÇ = 0, "Harf Bulunamadı!", SONUÇ)
    HARFAYIR = SONUÇ
End Function
 
Sayın Mustafa Bey uğraştırdım kusura bakmayın, valla süper oldu çok teşekkür ediyorum Allah razı olsun, çok işime yaradı hayırlı çalışmalar, hayırlı geceler.
 
. . .

Alternatif olarak şu şekilde çoğaltarak kullanabilirsiniz.

Kod:
HARFAYIR = Trim(Replace(Replace(sonuç, [COLOR="DarkRed"]"/"[/COLOR], ""),[COLOR="DarkRed"] "-"[/COLOR], ""))

. . .
 
. . .

Alternatif olarak şu şekilde çoğaltarak kullanabilirsiniz.

Kod:
HARFAYIR = Trim(Replace(Replace(sonuç, [COLOR="DarkRed"]"/"[/COLOR], ""),[COLOR="DarkRed"] "-"[/COLOR], ""))

. . .

Sayın Hüseyin Bey vardiyalı çalıştığım için ancak bilgisayar başına geçebildim.

Yukarıdaki kodu sayfa içerisindeki kodda nereden sonra yazmam gerekiyor?
 
. . .

Mevcut kodlarınızı hiç değiştirmeden şu şekilde de yapabilirsiniz.

Kod:
=KIRP(YERİNEKOY(YERİNEKOY(HARFAYIR(A2);"/";"");"-";""))

veya

Bu işlemin kodların içinde olmasını isterseniz şu şekilde olmalı;

Kod:
Function HARFAYIR(Hücre As Range)
    For X = 1 To Len(Hücre)
    If Not IsNumeric(Mid(Hücre, X, 1)) Then SONUÇ = SONUÇ & Mid(Hücre, X, 1)
    Next
    SONUÇ = IIf(SONUÇ = 0, "Harf Bulunamadı!", SONUÇ)
    'HARFAYIR = SONUÇ
     HARFAYIR = Trim(Replace(Replace(sonuç, "/", ""), "-", ""))
End Function

. . .
 
Sayın Hüseyin Bey çok teşekkür ederim, buda güzel oldu, hayırlı çalışmalar.
 
Geri
Üst