• DİKKAT

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

Kod ile makro çalıştırmak

  • Konbuyu başlatan Konbuyu başlatan asdsxx
  • Başlangıç tarihi Başlangıç tarihi

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
510
Excel Vers. ve Dili
Excel 2016 Türkçe
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
 
Güncelle'nin içindeki kodları diğer kodların altına (end sub satırından önce) ekleseniz olur mu?
 
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.
 
Ö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.
 
Geri
Üst