• DİKKAT

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

Commandbutton ile başka sayfada ki makroyu çalıştırma

Katılım
11 Eylül 2011
Mesajlar
114
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar bir sorunum var şimdi excelde bir VERİ sayfam birde RAPOR sayfam var. Ben VERİ sayfam içinde bir userform oluşturdum. Bu user formun içinde bir listbox'ım var bir tanede commandButtonum var. Rapor sayfam da bir filtre yapan butonum var bunlar filtre yaptığım zaman Userform içinde o verileri çekiyorum. Ama Listboxın içine veri çekmek için önce RAPOR sayfasına gidip makroyu çalıştırıyorum liste güncelleniyor sonra gidip user form üzerinde güncel verileri görüyorum. Ben Userform içine bir commandButton koydum ve aşağıdaki kodu yazdım ama işe yaramıyor. Nasıl yapabilirim.

Private Sub CommandButton1_Click()
Application.Run "RAPORSÜZ()"
End Sub
 
Merhaba,
"RAPORSÜZ()" şeklinde belirttiğiniz ifadedeki parantezleri kaldırın. Application.Run "RAPORSÜZ" olaraki kalsın.
 
Sayın Antonia;
Dediğiniz işlemi yaptım ama butona tıklayınca filtreleme sonucunu VERİ sayfasına da taşıyor bu sefer onu nasıl çözebilirim.
 
Merhaba.

Sorunuzu, belirttiğiniz makrolar/userform içerisinde olacak ve uygun veriler içerecek şekilde örnek belge üzerinden sorarsanız daha hızlı çözüme ulaşabilirsiniz.
.
 
Yardımcı olabilecek bir arkadaş var mı; Bütün istediğim Userform2 üzerinde bulunan commandButona basınca gitsin RAPOR sayfasında bulunan FİLTRELE butonuna tıklasın. bunu yukarıda yazdığım kod ile yapıyorum ama filtrelemeyi RAPOR sayfasına yaparken VERİ sayfasına da getiriyor.
 
Kod:
Private Sub CommandButton1_Click()
Call RAPORSÜZ
End Sub
 
Sayın Antonio;
verdiğiniz kodu uyguladım ama kodu çalıştırınca RAPOR sayfasında değil VERİ sayfasına filtre sonuçlarını getiriyor maalesef. Yani 2 nolu mesajın aynısını yapıyor.
 
Sayın Antonio;
verdiğiniz kodu uyguladım ama kodu çalıştırınca RAPOR sayfasında değil VERİ sayfasına filtre sonuçlarını getiriyor maalesef. Yani 2 nolu mesajın aynısını yapıyor.
Rapor sayfası gizlenmiş, RAPORSÜZ kodu çalışırken özellikle bir sayfa belirtilmediği için doğal olarak aktif sayfada süzme işlemi yapılır.
RAPORSÜZ Kodlarını aşağıdaki şekilde değiştirin:
Kod:
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
    Application.CutCopyMode = False
[COLOR="Red"][B]    Sheets("RAPOR").Visible = True
    Sheets("RAPOR").Activate[/B][/COLOR]
    Range("LİSTE").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "C1:L2"), CopyToRange:=Range("C5:L5"), Unique:=False
    Range("C5").Select
   [COLOR="Red"][B] Sheets("RAPOR").Visible = xlSheetHidden[/B][/COLOR]

End Sub
 
Son düzenleme:
Sevgili antonio; çok teşekkür ederim sistem işler hale geldi. Hatta başka sayfalarda da uygulamada sorunsuz çalıştı. Eline sağlık... Ben mesela rapor sayfasını gizliyorum ama commandbuttona tıkladığım zaman gizli sayfayı açıyor bunu açtırmamanın bir yolu yok mu ? Bir şey daha sormak istiyorum bakıyorum ama bulamıyorum. Userform1 üzerinde Textbox1 var tarih girdiğim buna bir takvim eklemek ve takvim üzerinden bir tarih girişi oluşturmak mümkün mü ?
 
Son düzenleme:
RAPOR Sayfasının filtreleme işlemi sonrası gizli kalması için 10 No'lu mesajımda düzenleme yaptım. En alt kısıma:
Kod:
Sheets("RAPOR").Visible = xlSheetHidden
satırını da ilave ederseniz normal olarak gizli kalır.
Sitede Userformdaki textboxlara tıklayınca açılan takvimlerden çok güzel örnekler mevcut. Ancak API kodları ve Class kodları da işin içine giriyor. Bu uygulamaları kullanan kişilerin biraz VBA kodlarına hakim olmasında fayda var. Özellikle API kodları, bilgisayarların 32 ve 64 bit olmalarına göre kimisinde çalışırken diğerlerinde hata verebilirler. Şahsen size tavsiyem, textboxlarda gün-ay-yıl girildikçe otomatik olarak doğru tarih formatını veren çalışmalar yapmanızdır. Hem textboxların change (veri girişi anında oluşan) olaylarını geliştirmiş olursunuz, hemde döngü mantığını bolca test edersiniz.
 
Sayın Antonio; Bir kere daha teşekkür ederim problemsiz çalışıyor. Diğer bir sorum vardı: Userform1 de tarihin yanına bir takvim açtırarak oradan tarih girdirme şansım var mı acaba ?
 
Sayın Antonio; Bir kere daha teşekkür ederim problemsiz çalışıyor. Diğer bir sorum vardı: Userform1 de tarihin yanına bir takvim açtırarak oradan tarih girdirme şansım var mı acaba ?
Userformdaki Textboxa tıklayınca açılan takvime ilişkin önceki mesajımda detaylı bilgilendirme yaptım. Konuya ilişkin aşağıdaki çalışmaları incelemenizi tavsiye ederim:
http://www.excel.web.tr/f128/takvim-t95533.html

http://www.excel.web.tr/f48/userforma-acylyr-takvim-ekleme-t116521.html
http://www.excelvba.net/viewtopic.php?f=4&t=865
Kolay gelsin.
 
Sayın Antonio;
verdiğiniz kodu uyguladım ama kodu çalıştırınca RAPOR sayfasında değil VERİ sayfasına filtre sonuçlarını getiriyor maalesef. Yani 2 nolu mesajın aynısını yapıyor.
...........
RAPORSÜZ Kodlarını aşağıdaki şekilde değiştirin:
Kod:
................
[COLOR="Red"][B]    Sheets("RAPOR").Visible = True
    Sheets("RAPOR").Activate[/B][/COLOR]
    Range("LİSTE").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "C1:L2"), CopyToRange:=Range("C5:L5"), Unique:=False
    Range("C5").Select
   [COLOR="Red"][B] Sheets("RAPOR").Visible = xlSheetHidden[/B][/COLOR]
.............
Merhaba Sayın taneryuksell.

Daha önceki sıkıntınızla ilgili olarak Sayın antonio'nun önerdiği ve sizin de işlem tamam dediğiniz kod değişikliği
(yukarıdaki kırmızı kısım) yerine, eski kodlarınıza göre aşağıdaki mavi renklendirdiğim kısımları değiştirmenizin yeterli olacağını belirtmek istiyorum.

Filtre/gelişmiş filtre/bir sayfaya veri yazma/silme gibi işlemler için ilgili sayfaların görünür olmasına ve
....Activate, .....Select gibi kod satırlarının kullanılmasına gerek yok.

Kod vasıtasıyla bu işlemlerin tümü, ilgili sayfa/sayfalar gizli iken de gerçekleştirilebilir.
Yeterki ilgili sayfa ve alanlar tam olarak belirtilmiş olsun.

Ayrıca bir önemli husus da şu; gerek makroların adları ve gerekse de makro kodları arasında kullanılan
değişken adlarında Türkçe karakter kullanmanız halinde, belge başka bilgisayarlarda kullanıldığında sorun çıkartabiliyor.
Örneğin makronun adını RAPORSÜZ yerine RAPORSUZ olarak değiştirmenizi öneriyorum.

NOT: Application.CutCopyMode = False şeklindeki satırın gerekip gerekmediğini, kopyalanan şeyin ne olduğunu
ve bundan vazgeçildiğini anlamadığım için, bu konuda değişiklik yapmadım, gerekmiyorsa o satırı da silebilirsiniz elbette.
.
Kod:
[B]Sub RAPORSÜZ()[/B]
    [COLOR="Red"]Application.CutCopyMode = False[/COLOR]
    Range("LİSTE").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[B][COLOR="Blue"]Sheets("RAPOR").[/COLOR][/B]Range( _
        "C1:L2"), CopyToRange:=[B][COLOR="blue"]Sheets("RAPOR").[/COLOR][/B]Range("C5:L5"), Unique:=False
[B]End Sub[/B]
 
Yadımlarınız için tşk ederim uygulamam sorunsuz çalışıyor.
 
Geri
Üst