• DİKKAT

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

Adres defteri

Katılım
24 Şubat 2010
Mesajlar
281
Excel Vers. ve Dili
EXCEL 2003
İyi akşamlar.
Bir Adres dosyası oluşturmak istiyoruz. A sütunundaki şehir bilgisine göre bütün satırı o şehre açılan sayfaya da yazsın.
Yardımcı olacaklara şimdiden teşekkürler.
 

Ekli dosyalar

Genel sayfa/sekme ismine sağ tıklayın ve Kod görüntüle deyin. aşağıdaki kodları açılan sayfaya yapıştırın:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A3:K" & Cells(Rows.Count, "A").End(3).Row + 1)) Is Nothing Then Exit Sub
a = Target.Row

If WorksheetFunction.CountBlank(Range("A" & a & ":K" & a)) = 0 Then
    sayfa = Cells(a, "A").Value
    Range("A" & a & ":K" & a).Copy Sheets(sayfa).Cells(Sheets(sayfa).Cells(Rows.Count, "A").End(3).Row + 1, "A")
End If

End Sub
 
Merhaba,

Alternatif olsun.

Tüm sayfayı kontrol eder, L sütununu boş gördüğü an o satırı ilgili sayfaya aktarır, Sayfa yoksa açar.

GENEL sayfasında aktardığını belli etmek için L sütununa Çentik atar. Bu sütunun font ismini Wingdings olarak ayarlarsanız çentiği görebilirsiniz.

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.

Kod:
Sub SayfalaraAktar()

    Dim i   As Long, _
        j   As Long, _
        Syf As String, _
        ShG As Worksheet, _
        ShY As Worksheet
    
    Set ShG = Sheets("GENEL")
    
    Application.ScreenUpdating = False
    
    For i = 3 To ShG.Cells(Rows.Count, "A").End(3).Row
    
        If Cells(i, "L") = "" Then
        
            Syf = Trim(ShG.Cells(i, "A"))
            If Not SayfaVarYok(Syf) Then
               Set ShY = Sheets.Add
               ShY.Move After:=Worksheets(Worksheets.Count)
               ShY.Name = Syf
               ShG.Range("A1:K2").Copy ShY.Range("A1")
             End If
            
            j = Sheets(Syf).Cells(Rows.Count, "A").End(3).Row + 1
            ShG.Range("A" & i & ":K" & i).Copy Sheets(Syf).Range("A" & j)
            ShG.Cells(i, "L") = "ü"
            
       End If
    Next i
    
    Application.ScreenUpdating = True
    
End Sub

Kod:
Function SayfaVarYok(SayfaAdi As String) As Boolean
    On Error Resume Next
    SayfaVarYok = CBool(Len(Worksheets(SayfaAdi).Name) > 0)
End Function
 
Arkadaşlar çok teşekkür ederim. İş yerinde server engellediği için teşekkür mesajım gecikti. İki çalışmayı da denedim. Nedense Yusuf44 ün çalışmasını uygulayamadım.Necdet Yeşertener'in çalışmasını uygulayabildim. İlgilendiğiniz için tekrar teşekkürler.
 
Geri
Üst