return ile önceki sayfaya dönme

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
makro koduna göre başka bir sayfaya gidip işlem yaptıktan sonra önceki sayfaya geri dön komutunu nasıl yazabilirim?


Sub makro1()
...
...
Sheets("deneme").Select
...
Return
Sheets("önceki sayfa").Select
End Sub
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

Boş bir excel sayfasında deneyin.

Module1:
Kod:
Public Sayfa_Adi(1 To 2) As String

Public Sub Onceki_Sayfa()
    Sheets("" & Sayfa_Adi(2)).Activate
End Sub
ThisWorkbook modulu:
Kod:
Private Sub Workbook_Open()
    Sayfa_Adi(1) = ActiveSheet.Name
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Sayfa_Adi(2) = Sayfa_Adi(1)
    Sayfa_Adi(1) = ActiveSheet.Name
End Sub
Kolay gelsin...
 
Son düzenleme:

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Zeki Gürsoy, ilginize ve kodlar için teşekkür ederim
kodlar bu haliyle çalışıyor ama benim dosyaya nasıl adapte ederim, düşünmem lazım.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
sorunum esasen şu: C12 hücresine değer girdiğimde buna göre önüne birşey ekleyerek sayfa adını belirliyorum. ve başka bir sayfa bu C12 verisine göre önüne başka bir kelime ekleyerek sayfa adını belirliyor.

Private Sub Worksheet_Activate()
Call sayfaadı
End Sub
veya
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call sayfaadı
End Sub

aşağıdaki koduda sayfa adını denetlemek için kullanıyorum
Sub sayfaadı_degistir()
On Error Resume Next
Application.ScreenUpdating = False

Dim syf As Worksheet
sayfaadı = ActiveSheet.Range("C12").Value 'C12 değerini sayfaadı olarak dene
ad1 = Evaluate("=UPPER(""" & sayfaadı & """)") 'denenen adı büyük harfe çevir
ad2 = Evaluate("=LOWER(""" & sayfaadı & """)") 'denenen adı küçük harfe çevir

For Each syf In Worksheets
uzunluk2 = Len(syf.Name)
ad3 = Right(syf.Name, (uzunluk2 - 6)) 'diğer sayfaları kontrol et

If Not syf.Name = ActiveSheet.Name Then 'kendi sayfa adını atla
If ad3 = ad1 Or ad3 = ad2 Then GoTo 10 'kontrol edilen sayfa adı varsa mesaj ver
End If
Next
GoTo 20
10
MsgBox "' " & syf.Name & " '" & " Adında Bir Sayfa Zaten Var " & vbLf & " Başka Ad Kullanın!!!", vbCritical, "UYARI"
ActiveSheet.Range("C12") = "BOŞ"
ActiveSheet.Range("C12").Select
20
Call sayfaadı
Sheets("denem_BOŞ").Select
End Sub

Sub sayfaadı()
On Error Resume Next
If Range("C12").Value = Empty Then Exit Sub
ActiveSheet.Name = "denem_" & Range("C12").Value
End Sub

bu kod ile sayfa adını değiştirdiğimde denem_BOŞ sayfasının adınıda değiştirecek ama bu işlem bitince önceki sayfaya dönmesi lazım.
 
Üst