• DİKKAT

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

Hücre Değerine Göre Farklı Makro Çalışsın

  • Konbuyu başlatan Konbuyu başlatan Yuisfaz
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Ağustos 2007
Mesajlar
32
Excel Vers. ve Dili
Excel-2010 Tr
Merhabalar..
Çalıştığım bir sayfada bir noktada takıldım. Açılan listedeki seçime göre farklı alanları yazdırma alanı olarak belirleyebilir miyim? Örneğin A1 hücresinde "Ahmet" varsa, A10:C20 alanını, "Ayşe" varsa D1:J20 alanını yazdırma alanı olarak nasıl belirleyebilirim? Bu alanlar için yazdırma alanı belirle kodunu makro halinde yazdım ama seçime göre çalıştırma kodunu forumda bulamadım. Bulduklarımı da kendi kitabıma uyduramadım. Yardımcı olur musunuz?
 
Merhabalar..
Çalıştığım bir sayfada bir noktada takıldım. Açılan listedeki seçime göre farklı alanları yazdırma alanı olarak belirleyebilir miyim? Örneğin A1 hücresinde "Ahmet" varsa, A10:C20 alanını, "Ayşe" varsa D1:J20 alanını yazdırma alanı olarak nasıl belirleyebilirim? Bu alanlar için yazdırma alanı belirle kodunu makro halinde yazdım ama seçime göre çalıştırma kodunu forumda bulamadım. Bulduklarımı da kendi kitabıma uyduramadım. Yardımcı olur musunuz?
Bir modüle kopyalayın
Kod:
Sub Yazdırma_alanı()
If Range("a1") = "Ahmet" Then
ActiveSheet.PageSetup.PrintArea = "$A$10:$c$10"
Else
ActiveSheet.PageSetup.PrintArea = "$d$1:$J$20"
End If
End Sub
 
Merhaba
Bu işlemi daha kolay yolldan yapabilirsiniz
CTRL basılı ikin istediğiniz alanları seçin ve dosya yazdırma alanı belirle diyerek belirleyin,
ilk seçtiğiniz alan 1. yazdırma alanı, İkinci seçtiğiniz alan 2 yazdırma alaını olur (Ad Tanımlamada görebilirsiniz)
Sonra iki buton ekleyin ahmet - ayşe aşağıda ki kodları butonlar ekleyin ayşe 2.ise kırmızı ile iki görünüyor Makro2
Kod:
Sub Makro1()
    ActiveWindow.SelectedSheets.PrintOut [COLOR=Red]From:=1, To:=1,[/COLOR] Copies:=1, Collate _
        :=True
End Sub
Sub Makro2()
    ActiveWindow.SelectedSheets.PrintOut [COLOR=Red]From:=2, To:=2[/COLOR], Copies:=1, Collate _
        :=True
End Sub
 
Merhaba
Bu işlemi daha kolay yolldan yapabilirsiniz
CTRL basılı ikin istediğiniz alanları seçin ve dosya yazdırma alanı belirle diyerek belirleyin,
ilk seçtiğiniz alan 1. yazdırma alanı, İkinci seçtiğiniz alan 2 yazdırma alaını olur (Ad Tanımlamada görebilirsiniz)
Sonra iki buton ekleyin ahmet - ayşe aşağıda ki kodları butonlar ekleyin ayşe 2.ise kırmızı ile iki görünüyor Makro2
Kod:
Sub Makro1()
    ActiveWindow.SelectedSheets.PrintOut [COLOR=Red]From:=1, To:=1,[/COLOR] Copies:=1, Collate _
        :=True
End Sub
Sub Makro2()
    ActiveWindow.SelectedSheets.PrintOut [COLOR=Red]From:=2, To:=2[/COLOR], Copies:=1, Collate _
        :=True
End Sub

Bu geç vakitte gösterdiğiniz ilginiz için teşekkür ederim. Acaba hiç buton kullanmadan, veri doğrulamanın açılan listesindeki değer değiştiğinde bu makroyu nasıl çalıştırabilirim. Yani veri doğrulamada "Ayşe"yi seçtiğimde Ayşe'nin alanı yazdırma alanı olabilir mi?
 
Bu geç vakitte gösterdiğiniz ilginiz için teşekkür ederim. Acaba hiç buton kullanmadan, veri doğrulamanın açılan listesindeki değer değiştiğinde bu makroyu nasıl çalıştırabilirim. Yani veri doğrulamada "Ayşe"yi seçtiğimde Ayşe'nin alanı yazdırma alanı olabilir mi?
MErhaba
Çalışma sayfasının kod bölümüne
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1") = "Ahmet" Then
ActiveSheet.PageSetup.PrintArea = "$A$10:$c$10"
Else
ActiveSheet.PageSetup.PrintArea = "$d$1:$J$20"
End If
End Sub
 
MErhaba
Çalışma sayfasının kod bölümüne
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1") = "Ahmet" Then
ActiveSheet.PageSetup.PrintArea = "$A$10:$c$10"
Else
ActiveSheet.PageSetup.PrintArea = "$d$1:$J$20"
End If
End Sub

Çok Teşekkür ederim.
 
Aşağıdaki kodu eğer a1 de Ahmet yazıyorsa yazdıracak alan yok diye mesaj verse, yoksa else den sonraki yazdırma işlemini gerçekleştirmesi için nasıl bir revizyon yapmamız lazım kodlarda

Teşekkürler.

MErhaba
Çalışma sayfasının kod bölümüne
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1") = "Ahmet" Then
ActiveSheet.PageSetup.PrintArea = "$A$10:$c$10"
Else
ActiveSheet.PageSetup.PrintArea = "$d$1:$J$20"
End If
End Sub
 
Güncellemek için
 
Merhaba,

Kod:
Sub yazdır()
If Range("a1") = "Ahmet" Then
MsgBox "Yazdırma Alanı Yok"
Else
ActiveSheet.PrintOut
End If
End Sub
 
Mahir bey çok Teşekkürler.Allah Razı olsun.
 
Parametrik prosedürler konusunu araştırmanızı öneririm.:cool:
 
Merhaba Arkadaşlar.

Bir konuda yardıma ihtiyaçım var; a1 hücresine tanımladığım makro değeri manuel girince çalışıyor fakat formül olduğunda içinde veri değiştiğinde çalışmıyor.nasıl yapabilirim bu konuda yardımlarınız rica ederim.
 
Geri
Üst