Kod ile makro çalıştırmak

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Arkadaşlar UserFormda veriler değiştikten sonra makro ile listbox'un güncellenmesini sağladım. Benim sorum; başka bir komut'un sonunda listbox güncellenmesi için yazılan makro yu hangi kod ile çalıştırabilirim.

Yani:

Private Sub TextBox5_Change()
On Error Resume Next
METİN1 = TextBox5.Value
Set FC2 = Range("A9:AB65000").Find(What:=METİN1)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Selection.AutoFilter Field:=24, Criteria1:="*" & TextBox5.Value & "*"
If METİN1 = "" Then
Selection.AutoFilter Field:=24
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Textbox5 ile veri süzme yaptırıyorum.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Guncelle makrosu ile de listbox daki verileri güncelliyorum. Benim amacım bu iki komutu nasıl tek hale getiririm.
Yukarıdaki komutun sonuna "guncelle_click()" deyince aaşağıdaki komut çalışsın...


Private Sub guncelle_Click()
f = WorksheetFunction.CountA(Sheets("ksitte").Range("B9:B15000"))
Sheets("ksitte").Unprotect


Set rng = Sheets("ksitte").Range("B9:B" & f + 8).SpecialCells(xlCellTypeVisible)
'Sheets("ksitte").Protect
With ListBox1
.Clear
.RowSource = ""
End With

With ListBox4
.Clear
.RowSource = ""
End With

For Each rngCell In rng
ListBox1.AddItem rngCell.Value
ListBox4.AddItem rngCell.Value
Next rngCell

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Güncelle'nin içindeki kodları diğer kodların altına (end sub satırından önce) ekleseniz olur mu?
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Ben o şekilde değil de ilk kodun altına sadece "guncelle_click" deyip güncelle makrosunu nasıl çalıştırabilirim.
Bu kodu form içinde birçok yerde kullanacağım. her defasında tüm kodu yazmaktansa güncelleyi çalıştır demek istiyorum.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Öyleyse güncelle kodlarını düğme içine değil de modül içine makro olarak ekleyin. Sonra da çalıştırılması gereken yerlerde o makronun adını yazın. Örneğin aşağıdaki kodları bir modüle ekleyin, makronun adı guncelle olur:
PHP:
Sub guncelle()
f = WorksheetFunction.CountA(Sheets("ksitte").Range("B9:B15000"))
Sheets("ksitte").Unprotect


Set rng = Sheets("ksitte").Range("B9:B" & f + 8).SpecialCells(xlCellTypeVisible)
'Sheets("ksitte").Protect
With ListBox1
.Clear
.RowSource = ""
End With

With ListBox4
.Clear
.RowSource = ""
End With

For Each rngCell In rng
ListBox1.AddItem rngCell.Value
ListBox4.AddItem rngCell.Value
Next rngCell

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
guncelle düğmesinin kodlarını aşağıdaki gibi değiştirin:

PHP:
Private Sub guncelle_Click()
guncelle
End Sub
Textbox kodları da şöyle:

PHP:
Private Sub TextBox5_Change()
On Error Resume Next
METİN1 = TextBox5.Value
Set FC2 = Range("A9:AB65000").Find(What:=METİN1)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Selection.AutoFilter Field:=24, Criteria1:="*" & TextBox5.Value & "*"
If METİN1 = "" Then
Selection.AutoFilter Field:=24
guncelle
End Sub
Bu mantıkla düzenleyebilirsiniz.
 
Üst