• DİKKAT

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

Açılır Pencereye göre Makro ?

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
iyi akşamlar; çeşitli işlemlerden sonra oluşan raporda ilave bir düzenleme yapmak istiyorum.
Kod:
Sub eksik_rapor()
Set sl = Sheets("YENİLENEN"): Set sk = Sheets("YENİLENEN")
son = sl.Range("M" & Rows.Count).End(3).Row + 1
sat = 5
sl.Range("M5:P" & son).ClearContents
For i = 3 To sk.Range("A" & Rows.Count).End(3).Row
If sk.Cells(i, "K") = "EKSİKLER" Then
sl.Cells(sat, "M") = sk.Cells(i, "a")
sl.Cells(sat, "N") = sk.Cells(i, "D")
sl.Cells(sat, "O") = sk.Cells(i, "G")
sl.Cells(sat, "P") = sk.Cells(i, "J")

sat = sat + 1
End If
Next i
End Sub
makro ile " K " sütunundaki "EKSİKLER" seçeneğine göre verileri raporluyorum. K1 hücresine açılır pencere ekleyerek "EKSİKLER;SATIŞLAR;ALIŞLAR" gibi seçenek ekleyerek makroyu seçenekli hale getirebilir miyiz.
 

Ekli dosyalar

  • yenilenen-1.jpg
    yenilenen-1.jpg
    161.2 KB · Görüntüleme: 4
  • YENİLENEN.xlsm
    YENİLENEN.xlsm
    61.8 KB · Görüntüleme: 3
  • yenilenen-2.jpg
    yenilenen-2.jpg
    19.2 KB · Görüntüleme: 4
Diyelim ki; K sütununa filtre uyguladınız, bu filtre kriterine göre kalan satırları mı (toplama vs. herhangi bir işlem yapmadan)
görmek istiyorsunuz sağ tarafta.
 
Diyelim ki; K sütununa filtre uyguladınız, bu filtre kriterine göre kalan satırları mı (toplama vs. herhangi bir işlem yapmadan)
görmek istiyorsunuz sağ tarafta.
filtreden ziyade eksik bilgi vermişim, K1 hücresini seçince (K sütunundaki açıklamaya göre EKSİKLER, ALIŞLAR, SATIŞLAR) EKSİKLER yazıyorsa,(eksik__rapor) , makrosu, SATIŞLAR yazıyorsa (eksik_rapor1) ve ALIŞLAR yazıyorsa ( eksik_rapor2 )' nin çalışması yani ROPOR butonu yerine açılır penceredeki seçeneğe göre makronun çalışması.
Kod:
Sub eksik_rapor()
Set sl = Sheets("YENİLENEN"): Set sk = Sheets("YENİLENEN")
son = sl.Range("M" & Rows.Count).End(3).Row + 1
sat = 5
sl.Range("M5:P" & son).ClearContents
For i = 3 To sk.Range("A" & Rows.Count).End(3).Row
If sk.Cells(i, "K") = "EKSİKLER" Then
sl.Cells(sat, "M") = sk.Cells(i, "a")
sl.Cells(sat, "N") = sk.Cells(i, "D")
sl.Cells(sat, "O") = sk.Cells(i, "G")
sl.Cells(sat, "P") = sk.Cells(i, "J")

sat = sat + 1
End If
Next i
End Sub

Sub eksik_rapor1()
Set sl = Sheets("YENİLENEN"): Set sk = Sheets("YENİLENEN")
son = sl.Range("M" & Rows.Count).End(3).Row + 1
sat = 5
sl.Range("M5:P" & son).ClearContents
For i = 3 To sk.Range("A" & Rows.Count).End(3).Row
If sk.Cells(i, "K") = "SATIŞLAR" Then
sl.Cells(sat, "M") = sk.Cells(i, "a")
sl.Cells(sat, "N") = sk.Cells(i, "c")
sl.Cells(sat, "O") = sk.Cells(i, "f")
sl.Cells(sat, "P") = sk.Cells(i, "I")

sat = sat + 1
End If
Next i
End Sub
Sub eksik_rapor2()
Set sl = Sheets("YENİLENEN"): Set sk = Sheets("YENİLENEN")
son = sl.Range("M" & Rows.Count).End(3).Row + 1
sat = 5
sl.Range("M5:P" & son).ClearContents
For i = 3 To sk.Range("A" & Rows.Count).End(3).Row
If sk.Cells(i, "K") = "ALIŞLAR" Then
sl.Cells(sat, "M") = sk.Cells(i, "a")
sl.Cells(sat, "N") = sk.Cells(i, "B")
sl.Cells(sat, "O") = sk.Cells(i, "F")
sl.Cells(sat, "P") = sk.Cells(i, "H")

sat = sat + 1
End If
Next i
End Sub
 
Diyelim ki; K sütununa filtre uyguladınız, bu filtre kriterine göre kalan satırları mı (toplama vs. herhangi bir işlem yapmadan)
görmek istiyorsunuz sağ tarafta.
Kusura bakmayın sonradan hatırıma geldi daha buna benzer soruya verdiğiniz cevap vardı
Kod:
Private Sub ComboBox1_Change()
If ComboBox1 = "" Then
    CommandButton1.Caption = "ÖNCE SEÇİM YAP"
Else
    CommandButton1.Caption = "İŞLEMİ YAP"
End If
End Sub

Private Sub CommandButton1_Click()
If ComboBox1 = "Sayfa2'ye GEÇ" Then s2yeGEC
If ComboBox1 = "Sayfa3'e GEÇ" Then s3eGEC
If ComboBox1 = "SİL MAKROSU" Then SIL
End Sub

Private Sub Worksheet_Activate()
ComboBox1.Clear
ComboBox1.AddItem "Sayfa2'ye GEÇ"
ComboBox1.AddItem "Sayfa3'e GEÇ"
ComboBox1.AddItem "SİL MAKROSU"
End Sub

Sub s2yeGEC()
    Sheets("Sayfa2").Activate
End Sub
Sub s3eGEC()
    Sheets("Sayfa3").Activate
End Sub
Sub SIL()
    MsgBox "SİL makrosu çalıştırıldı."
End Sub
bu şekilde sorunu çözebilirim. Teşekkürler.
 
Geri
Üst