• DİKKAT

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

Çoklu Çalışma Sayfalarında Sabit Hücrelere Birbirini Takip Eden Sayfa Numarası Vermek

Katılım
12 Ekim 2009
Mesajlar
11
Excel Vers. ve Dili
Excel 2007
İngilizce
Merhaba;

Konuyu uzun zamandır araştırıyorum ama bir türlü istediğim türden bir çözüm bulamadım. Ne İngilizce, ne Türkçe tam istediğim bir şey yok. Bu yüzden sizlerden yardım istiyorum. Buna benzer bir çok konu var ama ya ben toparlamayı beceremedim, ya da dediğim gibi benim istediğim şey biraz daha farklı.

34 ayrı çalışma sayfam var. Çalışma sayfalarımın formatları aynı. İş gereği sayfa numarasının format içerisinde belirli bir hücrede bulunması gerekiyor. Araştırmalarım sonucunda zaten belirli bir hücreye sayfa numarası koymanın biraz zor olduğunu gördüm. Ben bunun üstüne ayrıca sayfa numaralandırması yaparken bir önceki çalışma sayfasına 1 ekleyerek gitmesini istiyorum. Özetle, x'inci çalışma sayfamdaki Z2 hücresine x-1'inci çalışma sayfasındaki Z2 hücresinde hangi sayfa numarası varsa 1 arttırarak yazmak istiyorum.

Yani elle yaptığım zaman x'inci çalışma sayfamdaki Z2 hücresine "=x-1'inci çalışma sayfası!Z2+1" diye girmekte olduğum şeyi kodla yapabilir miyiz?

Bu arada çalışma sayfalarının isimleri "Sayfa1","Sayfa2" diye gitmiyor. Hepsini kendim giriyorum. Yani çalışma sayfası isimleri metin şeklinde değişiyor.

Şimdiden ilginiz ve yardımınız için teşekkürler.
 
Merhaba,

Küçük bir örnek dosya ile sorunuzu dosya üzerinde detaylı açıklarmısınız..
 
2 sayfalık bir örnek dosya hazırladım, umarım anlaşılır.
 

Ekli dosyalar

Z2 hücresi değiştirilince mi sayfa numarası değişecek yoksa tüm sayfaları oluşturduktan sonra Z2 hücrelerine göre mi sayfa numaraları değişecek.

Ayrıca.

Z2 hücresi 1 ike sayfa adı; "ÖZEL TK"
Z2 hücresi 2 ike sayfa adı; "ÖZEL2-TM-27"

bunda bir orantı göremedim.

Eklediğiniz dosyada konuyu adres belirterek açıklasaydınız daha kolay anlaşılabilirdi.

Konuyu daha net açıklarmısınız.

.
 
1- Tüm sayfalar oluşturulduktan sonra Z2 hücrelerine sayfa numarası yazılacak.

2- Z2 hücresi sayfa adından bağımsız. Sayfa adları ve Z2 hücrelerindeki sayfa numaraları daha sonra bir "toplam" sayfasında eşleştirilecekler.

Benim sorduğum sadece, Z2 hücresine sayfa numarası verdirmek. Birinci sayfadaki Z2 hücresi 1 olursa, 2. sayfada bu devam edecek ve hücrede "2" yazacak. Örnek dosyada yazdığım gibi olmasını istiyorum.

Sayfa isimlerinden bahsetmemin sebebi araştırdığım başlıklardan birinde "dosyaadı" kullanılarak sayfa numarası verdirilebiliyor olduğunu görmemdi. Ben sayfa adlarını farklı kullandığım için bu benim dosyamda işe yaramıyor.

Tek isteğim alt/üst bilgi olmadan istediğim bir hücreye, o da benim dosyamda Z2 oluyor, sayfa numarası yazdırabilmek ama bunu yaparken çoklu sayfaları da dikkate almasını sağlamak.

İlginiz için teşekkürler.
 
Module kopyalarak çalıştırınız.

Kod:
Sub Numara()
 
Dim i As Integer
For i = 1 To Worksheets.Count
    Sheets(i).[Z2] = i
Next i
 
End Sub
.
 
Eklediğiniz dosyada denedim, hata vermedi.

.
 
Elinize sağlık Ömer Bey, ufak bir hata yapmışım da ondan çalışmamış. Söylediğiniz gibi çalışıyor.

Yalnız şimdi şöyle bir sorun oldu, ÖZEL-TK sayfası şu an 4 sayfadan oluşuyor. Hepsi yine aynı formatta. Tabii diğer çalışma sayfalarında da artış olma ihtimali büyük. Bu kodu buna göre düzenleme şansımız var mı?

Kod işini bilmiyorum ama aklımda şöyle bir şey var, sayfa numaralarını yazdırdığımız hücre sayfa ekledikçe Z2, Z58, Z114... diye gidiyor. Sayfa formatı aynı olduğu için 56 satır fark oluşuyor hep. Boş olanını bulana kadar numaralandırsa, boş olanı bulunca diğer çalışma sayfasına atlasa?

Örnek gönderdim, bakabilirseniz sevinirim. Teşekkürler.
 

Ekli dosyalar

Bu şekilde deneyiniz..

Kod:
Sub Numara()
 
Dim i As Integer, son As Long, j As Long, say As Long
 
For i = 1 To Worksheets.Count
    With Sheets(i)
        son = .Cells(Rows.Count, "G").End(xlUp).Row
        For j = 2 To son Step 56
            If .Cells(j, "G") <> "" Then
                say = say + 1
                .Range("Z" & j) = say
            End If
        Next j
    End With
Next i
    
End Sub
.
 
Çok teşekkür ederim Ömer Bey.

Sorunsuz çalıştı. Elinize sağlık.
 
Merhaba,

Sorunuzu örnek dosya ekleyerek detaylı açıklarmısınız.
 
Merhaba Ömer bey,

Aşağıda yazmış olduğunuz makroya toplam sayfa numarasıda eklemek mümkün mü? (Örneğin; "Sayfa: 14/45 " gibi)

Saygılar


Bu şekilde deneyiniz..

Kod:
Sub Numara()
 
Dim i As Integer, son As Long, j As Long, say As Long
 
For i = 1 To Worksheets.Count
    With Sheets(i)
        son = .Cells(Rows.Count, "G").End(xlUp).Row
        For j = 2 To son Step 56
            If .Cells(j, "G") <> "" Then
                say = say + 1
                .Range("Z" & j) = say
            End If
        Next j
    End With
Next i
    
End Sub
.
 
Merhaba,

.Range("Z" & j) = say

yerine:

.Range("Z" & j) = .Name & "/" & say

yazınız.

.
 
Merhaba,

.Range("Z" & j) = say

yerine:

.Range("Z" & j) = .Name & "/" & say

yazınız.

.

Ömer bey cevabınız için teşekkür ederim, ancak benim yapmak istediğim sayfa numarasının yanında toplam sayfa sayısının çıkması.

Örneğin, excel çalışmamda 6 tane worksheet var. Bu worksheetlerde de toplam 45 sayfa var. Sizin ilk yaptığınız makroya göre sırasına göre sorunsuz numara verebiliyorum. Ancak bu numaraların yanında toplam sayfa sayınıda göstermem gerekli. (Yani toplam 45 sayfa varsa sayfa numaraları "1 of 45", "2 of 45" ...."45 of 45" şeklinde gitmeli.) Bu konuda yardımcı olabilirseniz çok sevinirim.

Saygılar.
 
Bu şekilde deneyin.

Kod:
Sub Numara()
 
    Dim i As Integer, son As Long, j As Long, say As Long
    Dim a As String, say_syf As Long
 
    Application.ScreenUpdating = False
    a = ActiveSheet.Name
 
    For i = 1 To Worksheets.Count
        Sheets(i).Select
        say_syf = say_syf + ExecuteExcel4Macro("Get.Document(50)")
    Next i
 
    Sheets(a).Select
    For i = 1 To Worksheets.Count
        With Sheets(i)
            son = .Cells(Rows.Count, "G").End(xlUp).Row
            For j = 2 To son Step 56
                If .Cells(j, "G") <> "" Then
                    say = say + 1
                    .Range("Z" & j) = say & " of " & say_syf
                End If
            Next j
        End With
    Next i
 
    Application.ScreenUpdating = True
 
End Sub

.
 
Ömer bey
Tam olarak istediğim buydu.
Teşekkür ederim.
İyi çalışmalar.
 
Geri
Üst