Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 15-05-2017, 13:16   #1
leonadies
Altın Üye
 
leonadies kullanıcısının avatarı
 
Giriş: 12/02/2015
Şehir: Ankara
Mesaj: 144
Excel Vers. ve Dili:
Excel 2016 TR
Varsayılan Makro ile hucreden kelime gruplari almak

Ustadlarim. K sutunundaki hucrelerde uzunca metinlerim var. Bu metinler icindeki kelimeler belli gruplar icinde ( ) parantezler icine yazilmakta. Ornegin k1 hucresi
......(Siyah araba) (beyaz cam) (yesil silgi) (mavi canta) .......
Bu ornekte nokta olan yerlerde degisken parantez icinde olmayan metinler olabiliyor. Bu metinlerinde belli bi standarti yok. Kisa da olabiliyor uzunda.
Istegim ise bu hucre icinde var olan parantez gruplari makro yardimi ile sayfa2 A1 den baslayarak sutunlara ayirmasi. Metni sutunlara cevir vb is yapmiyor. Cunku hucreler guncelleniyor. Ve veriler guncellendikce islem devam etmeli.
Yapilabilir mi?
leonadies Çevrimdışı   Alıntı Yaparak Cevapla
Eski 15-05-2017, 13:45   #2
Huseyinkis
 
Huseyinkis kullanıcısının avatarı
 
Giriş: 23/09/2004
Şehir: İstanbul
Mesaj: 1,747
Excel Vers. ve Dili:
Excel 2010 TR
Varsayılan

Ekteki Kodları Denermisiniz

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Denem()
For i = 1 To Cells(Rows.Count, 11).End(3).Row
Adet = 0: Bas = 0: Bit = 0: Süt = 0
For i1 = 1 To Len(Cells(i, 11))

If Mid(Cells(i, 11), i1, 1) = "(" Then
Bas = i1 + 1
Adet = Adet + 1
End If

If Mid(Cells(i, 11), i1, 1) = ")" Then
Bit = i1 - Bas
Adet = Adet + 1
End If

If Adet = 2 Then
Süt = Süt + 1
Sheets("Sayfa2").Cells(i, Süt) = Mid(Cells(i, 11), Bas, Bit)
Adet = 0
Bas = 0
Bit = 0
End If

Next i1, i
End Sub
__________________
///Ya severek "Acı Çekmesini" biliceksin yada Sevmeyeceksin hep "Acı Çekeceksin"///
Huseyinkis Çevrimdışı   Alıntı Yaparak Cevapla
Eski 15-05-2017, 13:48   #3
yanginci34
Altın Üye
 
Giriş: 06/07/2010
Şehir: istanbul
Mesaj: 398
Excel Vers. ve Dili:
excel2013
Varsayılan

Ekteki örneği incelermisiniz.
parantezli ifadeyi ayırma-1.xlsx
yanginci34 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 15-05-2017, 16:42   #4
antonio
Destek Ekibi
 
antonio kullanıcısının avatarı
 
Giriş: 13/02/2011
Mesaj: 1,031
Excel Vers. ve Dili:
Excel 2013
Varsayılan

Alternatif:
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub parantezli_ifadeyi_ayir()
Dim regexp, veri, alan, hcr, sh As Worksheet, ss As Long

Set sh = Sayfa1
ss = sh.Range("A" & Rows.Count).End(3).Row
Set alan = sh.Range("A1:A" & ss)
Set regexp = CreateObject("VBScript.RegExp")
regexp.Global = True
regexp.Pattern = "\(.*\)"

For Each hcr In alan
    veri = regexp.Execute(hcr).Item(0)
    ayir = Split(Mid(veri, 2, Len(veri) - 2), " ")
    For d = 0 To UBound(ayir)
        sh.Cells(hcr.Row, d + 2) = ayir(d)
    Next d
Next hcr
MsgBox "İşlem tamamlandı.", vbInformation, Application.UserName
End Sub
__________________
Özel mesaj sistemini devre dışı bıraktım.
Yardım istemeden önce Forum Kurallarını okuyunuz.
Aynı konuyu farklı bölümlerde açanların sorularını yanıtlamıyorum, bu durumu fark etmeden yanıtlamışsam, mesajımı siliyorum.
antonio Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-05-2017, 16:19   #5
leonadies
Altın Üye
 
leonadies kullanıcısının avatarı
 
Giriş: 12/02/2015
Şehir: Ankara
Mesaj: 144
Excel Vers. ve Dili:
Excel 2016 TR
Varsayılan

Alıntı:
Huseyinkis tarafından gönderildi Mesajı Görüntüle
Ekteki Kodları Denermisiniz

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Denem()
For i = 1 To Cells(Rows.Count, 11).End(3).Row
Adet = 0: Bas = 0: Bit = 0: Süt = 0
For i1 = 1 To Len(Cells(i, 11))

If Mid(Cells(i, 11), i1, 1) = "(" Then
Bas = i1 + 1
Adet = Adet + 1
End If

If Mid(Cells(i, 11), i1, 1) = ")" Then
Bit = i1 - Bas
Adet = Adet + 1
End If

If Adet = 2 Then
Süt = Süt + 1
Sheets("Sayfa2").Cells(i, Süt) = Mid(Cells(i, 11), Bas, Bit)
Adet = 0
Bas = 0
Bit = 0
End If

Next i1, i
End Sub

Çalışıyor. Ancak k2 de parantez grupları azaldığında sayfa 2 de eski hali ile kalıyor. Yani güncellemiyor
leonadies Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-05-2017, 16:20   #6
leonadies
Altın Üye
 
leonadies kullanıcısının avatarı
 
Giriş: 12/02/2015
Şehir: Ankara
Mesaj: 144
Excel Vers. ve Dili:
Excel 2016 TR
Varsayılan

Alıntı:
yanginci34 tarafından gönderildi Mesajı Görüntüle
Ekteki örneği incelermisiniz.
Dosya Eki 187431
Hiç bir makro yok içinde üstadım
leonadies Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-05-2017, 16:24   #7
leonadies
Altın Üye
 
leonadies kullanıcısının avatarı
 
Giriş: 12/02/2015
Şehir: Ankara
Mesaj: 144
Excel Vers. ve Dili:
Excel 2016 TR
Varsayılan

Alıntı:
antonio tarafından gönderildi Mesajı Görüntüle
Alternatif:
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub parantezli_ifadeyi_ayir()
Dim regexp, veri, alan, hcr, sh As Worksheet, ss As Long

Set sh = Sayfa1
ss = sh.Range("A" & Rows.Count).End(3).Row
Set alan = sh.Range("A1:A" & ss)
Set regexp = CreateObject("VBScript.RegExp")
regexp.Global = True
regexp.Pattern = "\(.*\)"

For Each hcr In alan
    veri = regexp.Execute(hcr).Item(0)
    ayir = Split(Mid(veri, 2, Len(veri) - 2), " ")
    For d = 0 To UBound(ayir)
        sh.Cells(hcr.Row, d + 2) = ayir(d)
    Next d
Next hcr
MsgBox "İşlem tamamlandı.", vbInformation, Application.UserName
End Sub
Invalıd Procedure hatası veriyor üstadım.
leonadies Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-05-2017, 17:19   #8
antonio
Destek Ekibi
 
antonio kullanıcısının avatarı
 
Giriş: 13/02/2011
Mesaj: 1,031
Excel Vers. ve Dili:
Excel 2013
Varsayılan

Alıntı:
leonadies tarafından gönderildi Mesajı Görüntüle
Invalıd Procedure hatası veriyor üstadım.
Örnek dosyayı inceleyiniz.
Eklenmiş Dosyalar
Dosya Türü: xls parantez içindeki ifadeyi sütunlara ayır.xls (43.5 KB, 12 Görüntülenme)
__________________
Özel mesaj sistemini devre dışı bıraktım.
Yardım istemeden önce Forum Kurallarını okuyunuz.
Aynı konuyu farklı bölümlerde açanların sorularını yanıtlamıyorum, bu durumu fark etmeden yanıtlamışsam, mesajımı siliyorum.
antonio Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-05-2017, 17:40   #9
leonadies
Altın Üye
 
leonadies kullanıcısının avatarı
 
Giriş: 12/02/2015
Şehir: Ankara
Mesaj: 144
Excel Vers. ve Dili:
Excel 2016 TR
Varsayılan

Alıntı:
antonio tarafından gönderildi Mesajı Görüntüle
Örnek dosyayı inceleyiniz.


(mavi arabanın siyah camı) yazısında camı kelimesini silince yan sütunlarda aynen kalıyo. Güncelleme olmuyor. Birde A sütunundaki hücrede boşluk bırakıp alta geçince aynı hatayı veriyor hocam. Benim hücrelerim sürekli güncellenen bir yapıya sahip olacak. her durumda kendini güncellemesi gerekiyor kısacası.
leonadies Çevrimdışı   Alıntı Yaparak Cevapla
Eski 16-05-2017, 17:52   #10
Zeki Gürsoy
Uzman
 
Zeki Gürsoy kullanıcısının avatarı
 
Giriş: 31/12/2005
Şehir: Sakarya-Hendek
Mesaj: 3,353
Excel Vers. ve Dili:
Office 2016 (x64) - Türkçe
Varsayılan

Alıntı:
leonadies tarafından gönderildi Mesajı Görüntüle
(mavi arabanın siyah camı) yazısında camı kelimesini silince yan sütunlarda aynen kalıyo. Güncelleme olmuyor. Birde A sütunundaki hücrede boşluk bırakıp alta geçince aynı hatayı veriyor hocam. Benim hücrelerim sürekli güncellenen bir yapıya sahip olacak. her durumda kendini güncellemesi gerekiyor kısacası.
Bu durumda proseduru "worksheet_change" olayı altında çalıştırmalısınız.

.
__________________

gursoyzeki@gmail.com




Zeki Gürsoy Ç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 11:43


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- Çorlu Çelik Konstruksiyon-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden