Bir önceki sayfa ismini hücreye yazdırmak

Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Merhaba,

E25 hücresinde yapmak istediğim,
"Bir önceki sayfa ismi + sayfasından devir tutarı" şeklinde yazdırmak. Her sayfa bir önceki sayfa ismini nin sonuna "sayfasından devir tutarı" ekleyecek.
Bu işlemi nasıl yaparım?

Teşekkürler.
 
Katılım
16 Aralık 2005
Mesajlar
130
Sub SayfaAdları()
For i = 2 To Sheets.Count: Sheets(i-1).[E25] = Sheets(i).Name & " sayfasından devir tutarı": Next
End Sub
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Teşekkür ederim.
Küçük bir değişiklik yapabilir miyiz?

Bu işlem sayfa değiştiğinde gerçekleşecek ve "DEVİR (bir önceki sayfa ismi)" şeklinde olacak. Sizin formülde sağdaki sayfanın ismini alıyor. Ben soldaki sayfanın ismini almasını istiyorum.

Teşekkürler.
 
Katılım
16 Aralık 2005
Mesajlar
130
rica ederim.
Çalışma Kitabı olaylarının yazıldığı sayfaya kopyalayınız.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For i = 2 To Sheets.Count: Sheets(i).[E25] = "Devir:" & Sheets(i - 1).Name & " sayfasından devir tutarı": Next
End Sub
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Teşekkürler.
Bir şey daha. Bir önceki sayfa ismini parantez () içinde gösterebilir miyiz?
DEVİR (Bir önceki sayfa ismi) şeklinde.

Teşekkürler.
 
Katılım
16 Aralık 2005
Mesajlar
130
Rica ederim
" " işaretlerinin arasına her türlü metni yazabilirsiniz.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For i = 2 To Sheets.Count: Sheets(i).[E25] = "Devir:(" & Sheets(i - 1).Name & ")sayfasından devir tutarı": Next
End Sub
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Çok teşekkürler. Tam istediğim gibi oldu.
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
İstediğim oldu derken, bir pürüz çıktı.
Bu macronun her sayfada çalışmasını istemiyorum. İstemediğim sayfa isimlerini kodda belirterek o sayfalarda bu işlemin geçersiz olmasını sağlayabilir miyiz?
Teşekkürler.
 
Katılım
16 Aralık 2005
Mesajlar
130
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For i = 2 To Sheets.Count
If Sheets(i).Name <> "Sayfa2" Then
Sheets(i).[E25] = "Devir:(" & Sheets(i - 1).Name & ")sayfasından devir tutarı"
End If
Next
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
sayfa indexi kullanılarak aşağıdaki gibi bir alternatifte kullanılabilir.

[vb:1:edb870d3b5]Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If ActiveSheet.Name <> "Sayfa2" Then ActiveSheet.[E25] = "Devir:(" & Sheets(ActiveSheet.Index - 1).Name & ")sayfasından devir tutarı"
End Sub
[/vb:1:edb870d3b5]
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Sayın osmantelci ve leventm yardımlarınız için sağolun.

Yalnızca "Sayfa2" değilde, sayfa 5 - 9 - 12'de de kodların çalışmasını istediğimde o sayfa isimlerini nasıl ilave edeceğim. Denemeler yaptım ama başaramadım.

Teşekkürler.
 
Katılım
16 Aralık 2005
Mesajlar
130
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For i = 5 To 12
dizi = Array(5, 9, 12)
For j = 1 To 3
If Sheets(i).Index = dizi(j - 1) Then
Sheets(i).[E25] = "Devir:(" & Sheets(i - 1).Name & ")sayfasından devir tutarı"
End If
Next: Next
End Sub
 
Katılım
7 Temmuz 2004
Mesajlar
330
Excel Vers. ve Dili
Office 2013 Türkçe
Çok teşekkür ederim.
 
Üst