İçinden Çıkamadığım "İF" Yapısı

Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Hayırlı Sabahlar,
Sorunum aşağıdan da belki anlaşılacağı üzere şu şekilde;
Eğer b8, b52, b97, b142 hücreleri dolu ise tümsayfaları yazdır,
Eğer b8, b52, b97 hücreleri dolu ise 1-3. sayfaları yazdır,
Eğer b8, b52 hücreleri dolu ise 1-2. sayfaları yazdır,
Eğer b8, b52 hücreleri dolu ise 1. sayfayı yazdır,

Aşağıda verdiğim kod, yazdır dediğimde tüm sayfaları yazıyor. Sadece b8 dolu olsa bile???
Hatamı da anlatırsanız memnun olurum.

Kod:
Private Sub yazdır_Click()
If "sayfa1!b8" = "" Then
Exit Sub
Else
If "sayfa1!b52" = "" Then
Exit Sub
Else
If "sayfa1!b97" = "" Then
Exit Sub
Else
If "sayfa1!b142" = "" Then
Exit Sub
Else
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=4, Copies:=1
End If
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=3, Copies:=1
End If
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1
End If
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
End If
End Sub
 
Son düzenleme:
Katılım
6 Şubat 2005
Mesajlar
1,467
ilk seçenekte b8, b52, b97, b142 hücrelerinin hepsi birden dolu ise tüm sayfalar,
ikinci seçenekte b8, b52, b97 hücrelerinin hepsi birden dolu ise 1-3 sayfalar yazdırılacak ise
Aşağıdaki kodları yazın.
If "sayfa1!b8" = "" "sayfa1!b52" = "" And "sayfa1!b97" Then
Exit Sub
End if
If "sayfa1!b142" = "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=3, Copies:=1
else
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End if
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Soruyu değiştirmişsin. Bir şey öğrenmek istiyorum. B8; 1. sayfayı, B52; 2. sayfayı, B97; 3. sayfayı, B142; 4. sayfanın yazdırılacağını belirliyor yoksa B8 hücresi doldurulmadan B52 hücresi doldurulmuyor, B8 ve B52 Hücreleri doldurulmadan B97 hücresi doldurulamıyor mu?
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Hocam kusuruma bakmayın ama vallahi anlayamadım :oops:
Verdiğiniz kodlardan bir kısmını alıp aşağıdaki gibi kullanayım dedim ama yine yapamadım.
Kod:
Private Sub yazdır_Click()
If "sayfa1!b8" <> "" And "sayfa1!b52" = "" And "sayfa1!b97" = "" And "sayfa1!b142" = "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
Else
Exit Sub
End If
If "sayfa1!b8" <> "" And "sayfa1!b52" <> "" And "sayfa1!b97" = "" And "sayfa1!b142" = "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=2
Else
Exit Sub
End If
If "sayfa1!b8" <> "" And "sayfa1!b52" <> "" And "sayfa1!b97" <> "" And "sayfa1!b142" = "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=3
Else
Exit Sub
End If
If "sayfa1!b8" <> "" And "sayfa1!b52" <> "" And "sayfa1!b97" <> "" And "sayfa1!b142" <> "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=4
Else
Exit Sub
End If
End Sub
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
Soruyu değiştirmişsin. Bir şey öğrenmek istiyorum. B8; 1. sayfayı, B52; 2. sayfayı, B97; 3. sayfayı, B142; 4. sayfanın yazdırılacağını belirliyor yoksa B8 hücresi doldurulmadan B52 hücresi doldurulmuyor, B8 ve B52 Hücreleri doldurulmadan B97 hücresi doldurulamıyor mu?


b8 hücresinde veri varsa 1 sayfa yazdırılacak,
b52 hücresinde veri varsa, (1 sayfa dolmuş ve 2. sayfa başlamış demek) 1. ve 2. sayfa yazdırılacak,
...
aynı şekilde sayfa 4'e kadar durum böyle.
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Öyle ise kodlar aşağıdaki gibi
If "sayfa1!b8" <> "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
Enf if
If "sayfa1!b52" <> "" Then
ActiveWindow.SelectedSheets.PrintOut From:=2, To:=2, Copies:=1
Enf if
If "sayfa1!b97" <> "" Then
ActiveWindow.SelectedSheets.PrintOut From:=3, To:=3, Copies:=1
Enf if
If "sayfa1!b142" <> "" Then
ActiveWindow.SelectedSheets.PrintOut From:=4, To:=4, Copies:=1
Enf if
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
hocam dosyam ekte, ben beceremedim, son gönderdiğiniz kodla bile tüm sayfaları yazdırıyor.
Bir de dosyaya müdahale edin bakalım.
 

Ekli dosyalar

Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
sn omerceri; acaba sayfa1 b8, b52, b97, b142 excel tarafından bir şekilde dolu gözüküyor olabilir mi? Çünkü ben tüm listeyi temizleyerek sözkonusu hücreleri boşaltsam dahi
Kod:
If "sayfa1!b8" <> "" Then
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
End if
koşulu çalışarak sayfa 1 yine de yazdırılıyor.
Kod:
tırlatmamak elde değil gerçekten!!!
 
Katılım
13 Aralık 2006
Mesajlar
575
Excel Vers. ve Dili
Office 2010
sn omerceri cok kurnazca bir çözüm bulmuşsunuz :eek:k::, ilginize çok teşekkür ederim.
ben de bu arada boş durmayıp;
Kod:
hangisi = InputBox("Hangi Sayfa yazılacak?")
ActiveWindow.SelectedSheets.PrintOut From:=hangisi, To:=hangisi, Copies:=1
yukarıdaki kod ile ben de manuel olarak (tabiki işi de birazcık kısaltmış olarak) çözmeye çalışmıştım.

tekrar görüşmek ümidiyle... teşekkürler...
 
Üst