Arkadaşlar merhabalar,
Kargo ve diğer gönderilere etiket yazdırmak için kullanmakta olduğum bir excel dosyam var,
her sayfada müşteri sevk adresi bilgileri mevcut.Daha önceki konularda bir formül buldum ama benim tarafımda bazı farklı isteklerim olacak
daha önceki excel dosyasında yaklaşık 3000 sayfa vardı ve vakti zamanında bunlar için sayfa1'e tek tek sayfa isimleri elle yazılmış ve köprü yapılmış,
yeni bir dosya oluşturacağım ve istediğim;
Sayfa1'e (ya da anasayfaya) excel dosyasındaki tüm sayfa isimlerinin köprülü bir şekilde gelmesi,
aşağıdaki formülde her sayfada a1 hücresine verilen anasayfa linkinin g4 hücresine verilmesi,
yine aşağıdaki formülde her kolona 25 adet olarak verilmiş, ben tek kolonda aşağı doğru ilerlemesini istiyorum (ki ctrl+f ile istediğim sayfayı bulabiliyorum)
ve son olarak ta her yeni sayfa eklendiğinde veya sayfa ismi değiştiğinde anasayfadaki fihristte aynı değişikliğin otomatik yapılabilmesi,
ne dersiniz arkadaşlar, bu hasta yaşar mı

bu acemi arkadaşınıza yardımlarınız için şimdiden teşekkür ediyorum,
eski konuların içerisinde bulduğum formül aşağıdaki gibidir,
ayrıca formül için sayın @asri'ye teşekkür ediyorum,
SayfaIndex adında sayfayı yeniden oluşturup, tüm sayfaların sayfa adlarını bu sayfada her bir kolonda 25 sayfa olacak şekilde köprü yapar.
Aynı zamanda her bir sayfanın A1 hücresine SayfaIndex sayfasına köprü yapar.
Tüm sayfaların A1 hücreleri boş olmak zorundadır.
Kod:
Sub SayfaIndex()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If WorksheetExists("SayfaIndex") Then Sheets("SayfaIndex").Delete
Set NewSh = Sheets.Add(Before:=Sheets(1))
NewSh.Name = "SayfaIndex"
Cells.ClearContents
kolon = 1
satir = 2
Cells(1, 1).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="SayfaIndex!A1", TextToDisplay:="SayfaIndex"
For i = 2 To Sheets.Count
Cells(satir, kolon).Value = Sheets(i).Name
Sheets(i).Hyperlinks.Add Anchor:=Sheets(i).Cells(1, 1), Address:="", SubAddress:="SayfaIndex!A1", TextToDisplay:="SayfaIndex"
ActiveSheet.Hyperlinks.Add Anchor:=Cells(satir, kolon), Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
satir = satir + 1
If satir = 26 Then
kolon = kolon + 1
satir = 2
End If
Next i
Cells.Select
Cells.EntireColumn.AutoFit
Range("E1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean
On Error Resume Next
WorksheetExists = (Sheets(WorksheetName).Name <> "")
On Error GoTo 0
End Function
Kargo ve diğer gönderilere etiket yazdırmak için kullanmakta olduğum bir excel dosyam var,
her sayfada müşteri sevk adresi bilgileri mevcut.Daha önceki konularda bir formül buldum ama benim tarafımda bazı farklı isteklerim olacak
daha önceki excel dosyasında yaklaşık 3000 sayfa vardı ve vakti zamanında bunlar için sayfa1'e tek tek sayfa isimleri elle yazılmış ve köprü yapılmış,
yeni bir dosya oluşturacağım ve istediğim;
Sayfa1'e (ya da anasayfaya) excel dosyasındaki tüm sayfa isimlerinin köprülü bir şekilde gelmesi,
aşağıdaki formülde her sayfada a1 hücresine verilen anasayfa linkinin g4 hücresine verilmesi,
yine aşağıdaki formülde her kolona 25 adet olarak verilmiş, ben tek kolonda aşağı doğru ilerlemesini istiyorum (ki ctrl+f ile istediğim sayfayı bulabiliyorum)
ve son olarak ta her yeni sayfa eklendiğinde veya sayfa ismi değiştiğinde anasayfadaki fihristte aynı değişikliğin otomatik yapılabilmesi,
ne dersiniz arkadaşlar, bu hasta yaşar mı
bu acemi arkadaşınıza yardımlarınız için şimdiden teşekkür ediyorum,
eski konuların içerisinde bulduğum formül aşağıdaki gibidir,
ayrıca formül için sayın @asri'ye teşekkür ediyorum,
SayfaIndex adında sayfayı yeniden oluşturup, tüm sayfaların sayfa adlarını bu sayfada her bir kolonda 25 sayfa olacak şekilde köprü yapar.
Aynı zamanda her bir sayfanın A1 hücresine SayfaIndex sayfasına köprü yapar.
Tüm sayfaların A1 hücreleri boş olmak zorundadır.
Kod:
Sub SayfaIndex()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If WorksheetExists("SayfaIndex") Then Sheets("SayfaIndex").Delete
Set NewSh = Sheets.Add(Before:=Sheets(1))
NewSh.Name = "SayfaIndex"
Cells.ClearContents
kolon = 1
satir = 2
Cells(1, 1).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="SayfaIndex!A1", TextToDisplay:="SayfaIndex"
For i = 2 To Sheets.Count
Cells(satir, kolon).Value = Sheets(i).Name
Sheets(i).Hyperlinks.Add Anchor:=Sheets(i).Cells(1, 1), Address:="", SubAddress:="SayfaIndex!A1", TextToDisplay:="SayfaIndex"
ActiveSheet.Hyperlinks.Add Anchor:=Cells(satir, kolon), Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
satir = satir + 1
If satir = 26 Then
kolon = kolon + 1
satir = 2
End If
Next i
Cells.Select
Cells.EntireColumn.AutoFit
Range("E1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean
On Error Resume Next
WorksheetExists = (Sheets(WorksheetName).Name <> "")
On Error GoTo 0
End Function