• DİKKAT

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

Sayfa kontrolü

Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Arkadaşlar,
Aşaıdaki kodlarla yapılan şu;
Birinci bölümde
1- 6. sütuna bir veri girdirildiğinde, son sayfa , [giriş!c5] de yazılı olan sayfa ise, o sayfaya gidilerek aktar makrosu çalışsın ve makro sonlansın,
2- Değilse sona şablon sayfası kopyalanarak, sayfaya, [giriş!c5] de yazılı olan isim verilsin ve aktar makrosu çalışsın ve makro sonlansın.
Yapmak istediğim değişilik ise birinci bölümde;
6. sütuna bir veri girildiğinde, çalışma kitabında [giriş!c5] de ismi yazılı olan sayfa varsa o sayfaya gidilerek aktar makrosu çalışsın ve makro sonlansın,
Yoksa makronun ikinci böümü çalışsın.
Yani yalnız en sondaki sayfaya değil ,sayfaların tümü içinde [giriş!c5] de yazılı olan sayfanın olup olmadığına bakmak.
İlgilenen arkadaşlara teşekkür ederim..

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next
If Target.Column <> 6 Or Target.Value = "" Then Exit Sub
If Sheets(Sheets.Count).Name = [giriş!c5] Then
Sheets("" & [giriş!c5]).Select
Call aktar
Exit Sub
Else
Sheets("Şablon").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = [giriş!c5]
Call aktar
End If
End Sub
 
İsteğinizi örnek dosyada belirtmeniz cevap almanızı kolaylaştıracaktır.
 
Selamlar,

Anladığım kadarıyla sorunuzu yanıtlamaya çalıştım. Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Sayfa As Worksheet, Kontrol As Boolean
 
    If Target.Address = "$F$5" Then
 
    Application.ScreenUpdating = False
 
    For Each Sayfa In Worksheets
        If Kontrol = True Then GoTo Devam
        If Sayfa.Name = Sheets("giriş").Range("C5") Then
        Sheets("" & [giriş!c5]).Select
        Call aktar
        Kontrol = True
        End If
    Next
 
    If Kontrol = False Then
        Sheets("Şablon").Copy After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = Sheets("giriş").Range("C5")
        Call aktar
    End If
 
    End If
 
Devam:
    Application.ScreenUpdating = True
End Sub
 
Merhaba sayın Korhan Ayhan
İlginiz için teşekkür ederim.Gönderdiğiniz kod çalıştırıldığında aşağıdaki satırda hata verdi.
If Target.Column <> 6 Or Target.Value = "" Then Exit Sub
Bu satırı , If Target.Address = "$F$5" Then şeklinde değiştirdiğimde sorun kalmadı.
Ayrıca leumruk'a da ilgisinden dolayı teşekkür ederim. Yapıcı önerisine uyarak (başkalarının da işine yarayacağı düşüncesiyle) dosyayı ekliyorum.
Esenkalın..
 

Ekli dosyalar

Selamlar,

Bende verdiğiniz bilgi doğrultusunda üstteki mesajımdaki kodu güncelledim.
 
Geri
Üst