• DİKKAT

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

Makro kodlama ( istenilen sayfayı açma )

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
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
 
Hücrelerin boş olma durumu var mı?
 
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
 
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 ?
 
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.
 
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
 
Verilen cevaplar için teşekkür ederim
 
Geri
Üst