Toplu Bul ve Değiştir

Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Merhaba arkadaşlar;

Elimde "Job Title" sütununda binlerce satır veri var. Toplu bir şekilde bul ve değiştir işlemi yaptırmak istiyorum. Alttaki resimde görüldüğü gibi Find ve Replace Sütunlarına bulunacak ve değiştirilecek kelime listesini oluşturacağım. Başlat butonuna tıkladığımda ise Bul ve Değiştir yapmasını istiyorum. Her gün bu şekilde binlerce veriyle tek tek uğraşıp çok zaman kaybediyorum. Eğer böyle bir makro yapılabilirse işim çok rahatlayacak. Yardımcı olabilmeniz mümkün müdür acaba?

 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Örnek dosya hazırlayıp dosya.tc gibi bir paylaşım sitesine ekleyin.
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kod ile yapabilirsiniz.
Kod:
Sub test()
    Dim Bak As Long
    For Bak = 2 To Cells(Rows.Count, "D").End(xlUp).Row
        Range("A:A").Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
    Next
msgbox "İşlem tamamlandı."
End Sub
 
Son düzenleme:
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Aşağıdaki kod ile yapabilirsiniz.
Kod:
Sub test()
    Dim Bak As Long
    For Bak = 2 To Cells(Rows.Count, "D").End(xlUp).Row
        Range("A:A").Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
    Next
End Sub
Hocam kod çalıştı çok teşekkürler. Acaba işlemin bittiğine dair bir mesaj nasıl çıkartabiliriz acaba? Malum binlerce satır var. Bunu da ekleyebilir misiniz acaba?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Oluşturduğunuz kodların en altındaki End Sub satırından hemen önce aşağıdaki satırı ilave edebilirsiniz.
MsgBox "İşlem tamamlandı"
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Tekrar merhabalar, yukarıda ki makro da onbinlerce satır işlem yapılıyor. Acaba bu makroya bir progress bar nasıl eklenebilir, yardımcı olabilir misiniz? Makro uzun saatler çalıştığı için işin ne kadarlık kısmını bitirdiğini % olarak görme şansım var mıdır? Çok teşekkürler.

Kod:
Sub test()
Dim Bak As Long
    For Bak = 2 To Cells(Rows.Count, "D").End(xlUp).Row
        Range("A:A").Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
Next
msgbox "İşlem tamamlandı."
End Sub

Örnek dosya yolu: https://s2.dosya.tc/server17/cl9ibp/toplu-bul-degistir.xlsx.html
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Kod:
Private Sub CommandButton1_Click()
    Dim Bak As Long
    Dim Say As Long
    Say = Cells(Rows.Count, "D").End(xlUp).Row
    ProgressBar1.Min = 1
    ProgressBar1.Max = Say
    ProgressBar1.Value = 1
    For Bak = 2 To Say
        ProgressBar1.Value = Bak
        ProgressBar1.Refresh
        Range("A:A").Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
    Next
    MsgBox "İşlem tamamlandı."
End Sub
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Merhaba.
Kod:
Private Sub CommandButton1_Click()
    Dim Bak As Long
    Dim Say As Long
    Say = Cells(Rows.Count, "D").End(xlUp).Row
    ProgressBar1.Min = 1
    ProgressBar1.Max = Say
    ProgressBar1.Value = 1
    For Bak = 2 To Say
        ProgressBar1.Value = Bak
        ProgressBar1.Refresh
        Range("A:A").Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
    Next
    MsgBox "İşlem tamamlandı."
End Sub

Merhaba hocam, kodu ekledim 1 buton oluşturdum. Ama çalıştıramadım. Yardımcı olabilir misiniz rica etsem . Teşekkür ederim.

Dosya linki: https://s7.dosya.tc/server22/ahmbdz/toplu-degistir.xlsm.html
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Muzaffer Bey merhaba, yardımlarınız için teşekkürler şimdi butona tıkladıktan sonra makro çalışmaya başladı. Şu an hala çalışıyor ama ekranda bir işlemin ne kadarlık kısmının yapıldığına dair bir yüzde penceresi gelmedi maalesef. Hata mı yapıyorum acaba
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Formun üzerinde ProgressBar var ilerleme oradan takip ediliyor.
VBA kısmından kontrol edin formun üzerinde ProgressBar yok mu?
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Butona tıkladıktan sonra VBA penceresi açılıyor kodlar görünüyor ama herhangi bir ProgressBar göremiyorum. Çok az veri olmasına rağmen excel donuyor hocam.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Formun kodlarını silin, yerine aşağıdakileri kopyalayın.

Kod:
Private Sub UserForm_Activate()
    Dim Bak As Long
    Dim SayA As Long
    Dim SayD As Long
    SayA = Cells(Rows.Count, "A").End(xlUp).Row
    SayD = Cells(Rows.Count, "D").End(xlUp).Row
    ProgressBar1.Min = 1
    ProgressBar1.Max = SayD
    ProgressBar1.Value = 1
    DoEvents
    For Bak = 2 To SayD
        ProgressBar1.Value = Bak
        Range("A1:A" & SayA).Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
        Label1.Caption = FormatNumber(Bak / (SayD / 100), 2)
        DoEvents
    Next
    Unload Me
    MsgBox "İşlem tamamlandı."
End Sub
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Hocam dediğiniz gibi yaptım ama excel kilitleniyor. Dosyayı göndereyim tekrardan size. Umarım hata yapmamışımdır.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Formdaki ProgressBarı silmişsiniz. Yada ProgressBar referansınız yok.
Bu yüzden hata alıyorsunuz.
Sadece Labelde % gösterecek şekilde yeniden kodları düzenledim.

Kod:
Private Sub UserForm_Activate()
    Dim Bak As Long
    Dim SayA As Long
    Dim SayD As Long
    SayA = Cells(Rows.Count, "A").End(xlUp).Row
    SayD = Cells(Rows.Count, "D").End(xlUp).Row
    For Bak = 2 To SayD
        Range("A1:A" & SayA).Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
        Label1.Caption ="Tamamlanan: " & FormatNumber(Bak / (SayD / 100), 2)
        DoEvents
    Next
    Unload Me
    MsgBox "İşlem tamamlandı."
End Sub
 
Katılım
2 Mayıs 2021
Mesajlar
56
Excel Vers. ve Dili
Excel 2016 - TR
Altın Üyelik Bitiş Tarihi
06-07-2023
Formdaki ProgressBarı silmişsiniz. Yada ProgressBar referansınız yok.
Bu yüzden hata alıyorsunuz.
Sadece Labelde % gösterecek şekilde yeniden kodları düzenledim.

Kod:
Private Sub UserForm_Activate()
    Dim Bak As Long
    Dim SayA As Long
    Dim SayD As Long
    SayA = Cells(Rows.Count, "A").End(xlUp).Row
    SayD = Cells(Rows.Count, "D").End(xlUp).Row
    For Bak = 2 To SayD
        Range("A1:A" & SayA).Replace what:=Cells(Bak, "C"), replacement:=Cells(Bak, "D"), lookat:=xlPart
        Label1.Caption ="Tamamlanan: " & FormatNumber(Bak / (SayD / 100), 2)
        DoEvents
    Next
    Unload Me
    MsgBox "İşlem tamamlandı."
End Sub

Muzaffer Hocam çalıştı çok sevindim. Emeğinize sağlık.
 
Üst