2 farklı tipte çok sayıda sayfa için makro çalıştırmak

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
örnek dosyada; anasayfaya koyacağım buton ile 2 farklı makroyu çalıştırmak istiyorum.

butonu tıkladığımda; ben ile başlayan sayfaları bul ve makro1'i çalıştır, sen ile başlayan sayfaları bul ve makro2'yi çalıştır.
makro1 ve makro2, tip sayfalarda aynı işlemi gerçekleştiriyor.
mesela makro1 çalıştığında ben ile başlayan sayfaların A1 hücresine uzman, makro2 çalıştığında sen ile başlayan sayfaların A1 hücresine amele yazıyor.
nasıl bir kod yazabiliriz?
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.:cool:
Kod:
Sub makro1()
Dim syf As Worksheet
For Each syf In Worksheets
    If Left(syf.Name, 3) = "ben" Then
        MsgBox "Makro1 Çalışıyor.Sayfa adı : " & syf.Name
    End If
Next
End Sub
Sub makro2()
Dim syf As Worksheet
For Each syf In Worksheets
    If Left(syf.Name, 3) = "sen" Then
        MsgBox "Makro2 Çalışıyor.Sayfa adı : " & syf.Name
    End If
Next
End Sub
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Kod:
For x = 1 To Sheets.Count
Sheets(x).Select
If Left(ActiveSheet.Name, 3) = "ben" Then
[a1] = "Uzman"
Else
[a1] = "Amele"
End If
Next
Umarım fikir vermesi açısından işinize yarar

Yada;

Kod:
For x = 1 To Sheets.Count
Sheets(x).Select
If Left(ActiveSheet.Name, 3) = "ben" Then
[a1] = "Uzman"
End If
If Left(ActiveSheet.Name, 3) = "sen" Then
[a1] = "Amele"
End If
Next
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Evren Gizlen, sanırım bu kodlar işimi görecek.
çok teşekkür ederim
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Rakkas, ilginize teşekkür ederim.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Evren Gizlen'in kodlarını dosyama uyarlamaya çalışıyorum.
ben_1 adlı sayfayı bulduğunda, bu sayfayı seç ve makro1 çalıştır demem lazım.
Sub makro1()
Dim syf As Worksheet
For Each syf In Worksheets
If Left(syf.Name, 3) = "ben" Then
Sheets("ben_1"). Select 'gibi bir komut satırını nasıl ilave edebilirim?
'MsgBox "Makro1 Çalışıyor.Sayfa adı : " & syf.Name
End If
Next
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
merhaba
syn Evren Gizlen'in kodlarını dosyama uyarlamaya çalışıyorum.
ben_1 adlı sayfayı bulduğunda, bu sayfayı seç ve makro1 çalıştır demem lazım.
Sub makro1()
Dim syf As Worksheet
For Each syf In Worksheets
If Left(syf.Name, 3) = "ben" Then
Sheets("ben_1"). Select 'gibi bir komut satırını nasıl ilave edebilirim?
'MsgBox "Makro1 Çalışıyor.Sayfa adı : " & syf.Name
End If
Next
End Sub
Ekli dosyayı inceleyiniz.:cool:
Kod:
Sub sayfalar()
Dim syf As Worksheet
For Each syf In Worksheets
    If Left(syf.Name, 5) = "ben_1" Then
        MsgBox syf.Name
        Call makro1
        Exit Sub
    End If
Next
End Sub
Sub makro1()
MsgBox "Makro1 Çalıştı"
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Evren Gizlen
Sub sayfalar()
Dim syf As Worksheet
For Each syf In Worksheets
If Left(syf.Name, 5) = "ben_1" Then MsgBox syf.Name
Call makro1
Exit Sub
End If
Next
End Sub
Sub makro1()
MsgBox "Makro1 Çalıştı"
End Sub

bu şekilde sadece ben_1 adlı sayfayı bulunca makro çalışır.
yapmaya çalıştığım ben ile başlayan sayfaları tektek bulduğunda makroyu çalıştırmak.
ben_1 i bulunca makro çalışsın. makronun işi bitince ben_2 sayfasını bulunca tekrar çalışsın. ya da ben ile başlayan sayfaları listelesin ve sırayla hepsinde makroyu çalıştırsın
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,658
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodları kullanabilirsiniz.

1) İstediğiniz koşulu sağlayana sayfaların A1 hücresine istediğiniz değeri yazar.
Kod:
Sub KONTROL()
    Dim SAYFA As Worksheet
    For Each SAYFA In Worksheets
    If Left(SAYFA.Name, 3) = "ben" Then
    SAYFA.[A1] = "uzman"
    ElseIf Left(SAYFA.Name, 3) = "sen" Then
    SAYFA.[A1] = "amele"
    End If
    Next
End Sub
2) İstediğini koşulu sağlayan sayfalarda istediğiniz makroyu çalıştırır.
Kod:
Sub KONTROL()
    Dim SAYFA As Worksheet
    For Each SAYFA In Worksheets
    If Left(SAYFA.Name, 3) = "ben" Then
    SAYFA.Select
    makro1
    ElseIf Left(SAYFA.Name, 3) = "sen" Then
    SAYFA.Select
    makro2
    End If
    Next
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
aşağıdaki gibi bir düzenleme yapmaya çalışıyorum.
sayfaları bulunca, bu sayfalarla ilgili kodlar çalışmalı

Sub Düğme1_Tıklat()
Call makro1
Call makro2
End Sub

Sub makro1()
Dim syf As Worksheet
For Each syf In Worksheets
If Left(syf.Name, 3) = "ben" Then
'Sheets("ben ?").Select ' burada bulunan sayfayı seçtirip makroyu çalıştırmam lazım
MsgBox "deneme_1 makrosu çalışacak .Sayfa adı : " & syf.Name
Call deneme_1
End If
Next
End Sub
Sub makro2()
Dim syf As Worksheet
For Each syf In Worksheets
If Left(syf.Name, 3) = "sen" Then
'Call deneme_2
MsgBox "Makro1 Çalıştı.Sayfa adı : " & syf.Name
End If
Next
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
aşağıdaki gibi düzenleyince istediğim sonucu aldım.
syn Evren Gizlen, Syn Rakkas, Syn Korhan Ayhan ilginize çok teşekkür ederim.
..
..
If Left(syf.Name, 3) = "ben" Then
syf.Select
..
..
 
Üst