• DİKKAT

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

If SheetExists

Katılım
9 Nisan 2009
Mesajlar
82
Excel Vers. ve Dili
2003 TR
Merhaba üstadlar...Belli verileri sayfalara ayırıp bu sayfalar üzerinde işlemler yapan kodum var. Yanlız verilere göre sayfa isimleri de değiştiği için,a sayfasını seç a sayfası yoksa geç gibi bir kod yazmak istiyorum.Bunun için kendimşu şekilde çozüm bulmaya çalıştım lakin başarılı olamadım:
Sub konu()
On Error GoTo hata
Sheets("SAYFA1").Select
....
....
....
hata:
End Sub

Yanlız bu şekilde 10-15 sayfam var ve on error goto hata1 hata2 hata3...diye gidiyor. Yanlız hata birden fazla olunca run error 9 hatasını alıyorum.

If SheetExists("SAYFA1") = True Then kodunu başa yazdığımda ise compile error uyarısını alıyorum.

Bana yardımcı olabilecek üstadlar var mı acaba? Yani istediğim Sayfa1 i seç yoksa geç veya Sayfa1 yoksa geç.
 
Sayfa isimlerini şu şekilde de tanımlayabilirsiniz.

Sheets(1).Select 'Sayfa 1'i seç
Sheets(2).Select 'Sayfa 2'yi seç gibi.

Böylece olmayan bir sayfa seçilmeye çalışılmaz. Bu işleminizi de döngü içine alırsanız sorun kalmaz. Yani;

Sub konu()
For a = 1 to worksheets.count
Sheets(a).Select
.....
.....
İşlemleriniz
.....
.....
Next a
End sub
 
Buyurun.:cool:
Kod:
Option Base 1
Sub sayfalar()
Dim sayfa(), i As Integer, k As Integer
sayfa = Array("Sayfa1", "Sayfa2", "Sayfa3")
For i = 1 To UBound(sayfa)
    For k = 1 To Worksheets.Count
        If sayfa(i) = Worksheets(k).Name Then
            Sheets(i).Select
            Exit Sub
        End If
    Next k
Next i
End Sub
 
Yanlız kodlar devamında o sayfayı ilgili kişiye mail atıyor. Mail yollama işlemi olmasa sayfaları seçmekte sıkıntı yok.
 
3 nolu mesajda cevap verdim.:cool:
Kendinize uyarlayınız.:cool:
 
Hocam maalesef olmadı o kodlar yada ben beceremedim. Sadece 1 mail yolluyor geri kalanını yollamıyor.
Aşağıdaki kod sayfa adları değişerek 28 kez tekrarlanıyor. Bu kodlar 2. modülde. Lakin 1. modül calıştıktan sonra 28 sayfa çıkmayabiliyor verilere bağlı olarak. sıkıntı burada zaten.
Worksheets(ActiveSheet.Index + 1).Select kullanarak sayfaları sırası ile seçtirebiliyorum ama seçilen sayfa ile mail yollanacak kişi uyuşmayabiliyor.

Sheets("SayfaA").Select
Dim strDate As String
ActiveSheet.Copy
strDate = Format(Date, "dd.mm.yy") & " " & Format(Time, "h-mm-ss")
ActiveWorkbook.SaveAs " " & ActiveSheet.Name _
& " " & strDate & ".xlsx"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ""
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
On Error GoTo 0
Dim OutApp As Object
Dim OutMail As Object
Set OutMail = Nothing
Set OutApp = Nothing
ActiveWorkbook.ChangeFileAccess xlReadOnly
Set Workbook = Nothing
Kill ActiveWorkbook.FullName
ActiveWorkbook.Close False
 
Buyurun:cool:
Kod:
Option Base 1
Sub sayfalar()
Dim sayfa(), i As Integer, k As Integer
sayfa = Array("Sayfa1", "Sayfa2", "Sayfa3")
For i = 1 To UBound(sayfa)
    For k = 1 To Worksheets.Count
        If sayfa(i) = Worksheets(k).Name Then
            Sheets(i).Select
            
        End If
    Next k
Next i
End Sub
 
Geri
Üst