Makro kodlama ( istenilen sayfayı açma )

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Arkadaşlar excel dosyasına ilk girişte eğer şartlar sağlıyorsa istenilen sayfanın açılmasını nasıl sağlayabilirim.
Örneğin:
sayfa1 de A1 yada A2 hücrelerinin herhangi biri 10 dan küçük ise çalışma kitabımı ilk açtığımda sayfa2 nin açılmasını istiyorum. Biraz araştırdım aşağıdaki gibi bir kod buldum ama bu kodda nasıl düzenleme yapacağımı bilemedim. Yardımlarınız bekliyorum.

Kod:
Sub Auto_Open()
Sheets("Sayfa2").Select
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hücrelerin boş olma durumu var mı?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kod:
Sub Auto_Open()
    If Sheets("Sayfa1").Range("A1").Value < 10 Or Sheets("Sayfa1").Range("A2").Value < 10 Then
        Sheets("Sayfa2").Select
    End If
End Sub
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Deneyiniz.

Kod:
Sub Auto_Open()
    If Sheets("Sayfa1").Range("A1").Value < 10 Or Sheets("Sayfa1").Range("A2").Value < 10 Then
        Sheets("Sayfa2").Select
    End If
End Sub
Hocam yardımın için teşekkür ederim. Kod istediğim gibi çalışıyor ve ihtiyacımı karşılıyor. Yalnız öğrenmek için sormak istediğim bir şey var. Şartlar sadece A1 ve A2 hücreleri için değilde 2 den fazla hücreyi kapsıyorsa, her hücre için formüllerin arasına Or koymamız mı lazım ?
Örneğin ;
Kod:
If Sheets("Sayfa1").Range("A1").Value < 10 Or Sheets("Sayfa1").Range("A2").Value < 10  Or Sheets("Sayfa1").Range("A3").Value < 10 Then
Yani kısacası sormak istediğim şu. Formül, istenilen şartı 2 hücrede değilde 30 tane hücrede araması için aralara Or koyarak mı kodlamamız lazım ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hayır daha fazla hücre kontrol edilecekse EĞERSAY-ÇOKEĞERSAY-TOPLA.ÇARPIM fonksiyonları kullanılabilir.

30 adet "Or" kullanmak kodlama olarak çok uygun olmaz.
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,106
Excel Vers. ve Dili
office2010
Alternatif.

Kod:
Private Sub Workbook_Open()
Set dc = CreateObject("scripting.dictionary")
Set s1 = Sheets("Sayfa1")
a = s1.Range("A1:A" & s1.Cells(Rows.Count, 1).End(3).Row).Value
For i = 1 To UBound(a)
    dc(a(i, 1)) = a(i, 1)
Next i
sayi = Application.Min(dc.items)
If sayi < 10 Then
    Sheets("Sayfa2").Select
End If
End Sub
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Verilen cevaplar için teşekkür ederim
 
Üst