Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Excel'e Yeni Başlayanlar
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Excel'e Yeni Başlayanlar Excel kullanmaya yeni başladıysanız sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 24-11-2016, 13:30   #1
u.L.a.s
 
Giriş: 08/09/2008
Şehir: İstanbul
Mesaj: 533
Excel Vers. ve Dili:
2010 İngilizce
Varsayılan Belli Bir sütunda hücrelere girilen adres verisini değiştirme

C sütununda her satırda hücrelere adres verisi giriyorum.

"xxx mahallesi yyy caddesi zzz sokak ddd bulvarı" gibi

Ben bu adres verisini kısaltmak istiyorum

Örneğin
C5 e adresi yazdım veya adres verisini yapıştırdım.enter tuşuna bastığımda o hücreye yazdığım veride
mahallesi veya mahalle gördüyse mah.
sokak yazılıysa sok.
caddesi veya cadde yazılıysa cad.
bulvar veya bulvarı yazılıysa blv. şeklinde düzelmesini istiyorum

yani
"xxx mahallesi yyy caddesi zzz sokak ddd bulvarı"

olarak girdiğim adres
""xxx mah. yyy cad. zzz sok. ddd blv." olarak düzelmiş olacak.

Tabi mahalle cadde sokak bulvar verisi görmediyse bir düzeltme yapmayacak. veride varolan ve düzelmesi gerekenler düzelmiş olacak

Bilgi ve yardımlarınızı rica ederim
u.L.a.s Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-11-2016, 15:10   #2
mucit77
Destek Ekibi
 
mucit77 kullanıcısının avatarı
 
Giriş: 22/10/2012
Mesaj: 1,972
Excel Vers. ve Dili:
2007 Türkçe
Varsayılan

Merhaba,
Aşağıdaki makro kodunu deneyiniz...
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub KOD()
bul = Array("mahalle", "cadde", "sokak", "bulvar")
deg = Array("mah.", "cad.", "sok.", "blv.")

For a = 2 To Range("C65500").End(3).Row
    metin = Split(Cells(a, "C").Value, " ")
    For b = LBound(metin) To UBound(metin)
        For c = LBound(bul) To UBound(bul)
            If InStr(1, metin(b), bul(c)) = 1 Then
                metin(b) = deg(c)
                Exit For
            End If
        Next
    Next
    Cells(a, "C").Value = Join(metin, " ")
Next
End Sub
Bul değişkeniyle başlayan kelimeleri deg değişkeniyle değiştirir.
__________________
Alıntı:
evi Nepal'de kalmış
Slovakyalı salyangozdur ruhum
mucit77 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-11-2016, 15:43   #3
u.L.a.s
 
Giriş: 08/09/2008
Şehir: İstanbul
Mesaj: 533
Excel Vers. ve Dili:
2010 İngilizce
Varsayılan

Kod güzel ama büyük küçük harf duyarı var.

burada mahalle arıyor. eğer hücrede Mahalle yazıyorsa değiştirmiyor.

ayrıca sadece mahalle değil veride mahallesi de geçebilir. onuda mah. olarak değiştirebilmeli

Yani bul ve deg değerleri şu şekilde olmalı
"mahalle","mahallesi" = "mah."
"caddesi","cadde" = "cad."
"bulvarı","bulvar" = "blv."
u.L.a.s Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-11-2016, 15:53   #4
mucit77
Destek Ekibi
 
mucit77 kullanıcısının avatarı
 
Giriş: 22/10/2012
Mesaj: 1,972
Excel Vers. ve Dili:
2007 Türkçe
Varsayılan

Büyük küçük harf duyarlılığı olmaması için aşağıdaki değişikliği yapınız.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub KOD()
bul = Array("mahalle", "cadde", "sokak", "bulvar")
deg = Array("mah.", "cad.", "sok.", "blv.")

For a = 2 To Range("C65500").End(3).Row
    metin = Split(Cells(a, "C").Value, " ")
    For b = LBound(metin) To UBound(metin)
        For c = LBound(bul) To UBound(bul)
            If InStr(1, metin(b), bul(c), vbTextCompare) = 1 Then
                metin(b) = deg(c)
                Exit For
            End If
        Next
    Next
    Cells(a, "C").Value = Join(metin, " ")
Next
End Sub
Yukarıda belirttiğim gibi "bul" değişkeniyle başlayan kelimeleri değiştirir. Yani mahalle belirtilmişse mahalle ile başlayan bütün kelimeler değişir. Ancak sokak dediğiniz zaman "sokağı" kelimesi değişmez. Çünkü; k yumuşadığı için bu kelime sokak ile başlamıyor. Bu problemi de bul ve deg değişkenlerine yeni veriler ekleyerek çözebilirsiniz.
İyi çalışmalar...
__________________
Alıntı:
evi Nepal'de kalmış
Slovakyalı salyangozdur ruhum
mucit77 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-11-2016, 16:09   #5
u.L.a.s
 
Giriş: 08/09/2008
Şehir: İstanbul
Mesaj: 533
Excel Vers. ve Dili:
2010 İngilizce
Varsayılan

Bu şekilde değiştirdim. zaten hem mahalle hemde mahallesi diye eklediğimde hata veriyor kod.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
bul = Array("mahallesi", "caddesi", "sokak", "bulvarı")
deg = Array("mah.", "cad.", "sok.", "blv.")
Peki bunu bir butona atamak yerine ben bu listeye zaten hergün 5-6 tane veri giriyorum sürekli. ben her seferinde bu kodu çalıştırmak yerine veri girdiğim hücre o an girdiğimde değiştirse olmuyor mu.

C2551 e adres verisini yazdığımda yada bir yerden kopyala yapıştır yaptığımda enter basında o girdiğim verideki bu değerler değişsin
u.L.a.s Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-11-2016, 16:19   #6
mucit77
Destek Ekibi
 
mucit77 kullanıcısının avatarı
 
Giriş: 22/10/2012
Mesaj: 1,972
Excel Vers. ve Dili:
2007 Türkçe
Varsayılan

Bu değiştirdiğiniz şekliyle mahalle kelimesini değiştirmez, ama "mahalle" yazarsanız "mahallesi" kelimesini de değiştirir. Şöyle anlatayım yazdığınız adresteki bir kelime bul değerinden biriyle başlıyorsa değişim yapar.
Veri girdiğinizde değişmesi için de aşağıdaki kodu ilgili sayfanın kod bölümüne kopyalayıız.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C:C")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
bul = Array("mahalle", "cadde", "sokak", "bulvar")
deg = Array("mah.", "cad.", "sok.", "blv.")
metin = Split(Target.Value, " ")
For b = LBound(metin) To UBound(metin)
    For c = LBound(bul) To UBound(bul)
        If InStr(1, metin(b), bul(c), vbTextCompare) = 1 Then
            metin(b) = deg(c)
            Exit For
        End If
    Next
Next
Target.Value = Join(metin, " ")
Application.EnableEvents = True
End Sub
__________________
Alıntı:
evi Nepal'de kalmış
Slovakyalı salyangozdur ruhum
mucit77 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-11-2016, 16:25   #7
u.L.a.s
 
Giriş: 08/09/2008
Şehir: İstanbul
Mesaj: 533
Excel Vers. ve Dili:
2010 İngilizce
Varsayılan

süper tamam şu an anlaıdm izah ettiğiniz durumu.

ve bu kodla çok güzel oldu emeğinize bilginize sağlık üstadım çok teşekkür ederim
u.L.a.s Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 01:01


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden