• DİKKAT

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

Sayfa adında ki harflere göre macro kontrolü

Katılım
14 Ocak 2005
Mesajlar
807
Excel Vers. ve Dili
Microsoft Office Professional Plus 2021
Selam arkadaşlar.

sayfaadi = CStr(ActiveSheet.Name) bu şekilde aldırıyorum

Sayfa adım xxx xxx-ENG aaa aaa-ENG şeklinde sayfa adalarım var.
Macrolarımı bu sayfaların A sutunundan her hangi bir hücreye çift tıklayınca çalışıyor ve sayfa adını sayfaadi = CStr(ActiveSheet.Name) şeklinde sayfaadi değişkenime alıyorum.

1- Benim istediğim eğer sayfa adı -ENG varsa sonunda bu sayfadan bu çalıştıramazsınız şeklinde bir uyarı meseji
2- ile -ENG siz olan sayfaya yönlendirmek istiyorum.

Nasıl yapabilirim.

Yardımlarınız için şimdiden teşekkür ederim.
 
Merhaba,
Kodlarınızın başına ekleyin.
Kod:
sayfaadi = CStr(ActiveSheet.Name)
If Right(sayfaadi, 3) = "ENG" Then
MsgBox "Bu sayfadan bu çalıştıramazsınız!", vbCritical, "UYARI"
Exit Sub
End If
 
Olurmu Olur?
Trex hayırlı işler diler.;)
Kod:
Dim sf As Integer, sayfaadi As String
sayfaadi = UCase(CStr(ActiveSheet.Name))
If InStr(1, sayfaadi, "-ENG") > 0 Then
    MsgBox "Bu sayfayı çalıştıramazsınız." & vbLf & " Çünkü içinde -ENG var!", vbCritical, "UYARI"
    For sf = 1 To Worksheets.Count
        If InStr(1, UCase(Sheets(sf).Name), "-ENG") = 0 Then
            Sheets(sf).Select
            Exit For
        End If
    Next
End If
 
Teşekkür ederim Trex ve leumruk yardımlarınız için.
Sayın Trex
MsgBox "Bu sayfayı çalıştıramazsınız." & vbLf & " Çünkü içinde -ENG var!", vbCritical, "UYARI"
For sf = 1 To Worksheets.Count
If InStr(1, UCase(Sheets(sf).Name), "-ENG") = 0 Then
Sheets(sf).Select
Exit For
burada sf = 1 değerini alıyor neden aslında direk sayfa adını aldırsak daha iyi olmaz mı. yani sayfa adının sonundan -ENG değerini kesip atsak ve sf ye atasak daha doğru çalışacak bu hali ile hata veriyor gidip birinci sayfayı açmaya çalışıyor.
 
Son düzenleme:
Burada ki sorunumu hala çözemedim sayfa adınının son 4 hanesini nasıl alabiliriz ona göre bir kontrol yaptırsam.
 
Merhaba,

Kodlar düzgün çalışıyor, ben bir problem göremedim.
 
eğer gitmesini istediğimiz sayfa birinci sırada ise doğru çalışıyor birinci sırada farklı bir kod var ise o zaman sorun oluyor.
 
Sorunuz bu şekilde değildi. Farklı kodlarınız var ise paylaşmanız gerekir.

Kodların uygulaması:

Eğer kodu çalıştırdığınız sayfa adın da "-ENG" varsa, hata mesajını verir ve sonra ilk sayfadan başlayarak "-ENG" olmayan sayfayı arar, bu ölçüt de bulduğu ilk sayfa aktif olur ve kod durur.

Farklı bir uygulama istiyorsanız küçük bir örnek ekleyerek detaylı açıklama yapınız.

.
 
İşte bu yüzden hata veriyor Benim istediğim ilk mesajımda da söylediğim gibi
Selam arkadaşlar.

sayfaadi = CStr(ActiveSheet.Name) bu şekilde aldırıyorum

Sayfa adım xxx xxx-ENG aaa aaa-ENG bbbb bbbb-eng daha 20 kadar bu şekilde devam ediyor.

Macrolarımı bu sayfaların A sutunundan her hangi bir hücreye çift tıklayınca çalışıyor ve sayfa adını sayfaadi = CStr(ActiveSheet.Name) şeklinde sayfaadi değişkenime alıyorum.

1- Benim istediğim eğer sayfa adı -ENG varsa sonunda bu sayfadan bu çalıştıramazsınız şeklinde bir uyarı mesajı versin
2- ve sayfa adımda atıyorum aaaa-ENG YA birde bene mutlaka aaaa sayfası vardır yani biri türkçe biri ingilzce olan sayfa işte ben burada -ENG sisini alıp sadece aaaa sı kalsın ve o sayfaya yönlendirmek istiyorum.
Nasıl yapabilirim.

Yardımlarınız için şimdiden teşekkür ederim.
 
O sayfaya yönlendilirmek mi istiyorsunuz yoksa değişkene o sayfanın adını mı vermek istiyorsunuz.

.
 
her sayfanın birde -ENG si var ben -ENG si çıktın sonra sade olan sayfaya yönlendirilmek istiyorum.
 
Kodu tüm sayfalara değil, ThisWorkbook sayfasına kopyalamanız yeterli olacaktır.

Kod:
Option Explicit
 
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _
                        ByVal Target As Range, Cancel As Boolean)
 
Dim syf As Integer, sAyfaaDi As String
 
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
 
sAyfaaDi = UCase(CStr(ActiveSheet.Name))
 
If Right(sAyfaaDi, 4) = "-ENG" Then
    MsgBox "Bu sayfayı çalıştıramazsınız.", vbCritical, "Uyarı"
    For syf = 1 To Worksheets.Count
        With Sheets(syf)
            If UCase(.Name) = Left(sAyfaaDi, Len(sAyfaaDi) - 4) Then
                .Select
                Exit For
            End If
        End With
    Next syf
End If
 
End Sub
.
 
Sevgili Ömer bey çok teşekkür ederim elinize sağlık.
 
Geri
Üst