MAKROLARI BİRLEŞTİRME

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
DEĞERLİ FORUM ÜYELERİ,

DOSYADAKİ İSİMLER OLAN SAYFALARDA HER BİR BUTONA BAĞLI MAKROLARI, BELİRLİ BİR SAYFADAKİ TEK BUTONA BAĞLAMA K İSTİYORUM. ASLINDA YAPMAK İSTEDİĞİM MAKROLARI BİRLEŞTİRME İŞLEMİDİR.

İLGİLİ DOSYA EKTEDİR.

YARDIMLARINIZ İÇİN ŞİMDİDEN ÇOK TEŞEKKÜRLER....
 

Ekli dosyalar

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Merhaba;
Doğru anladıysam eki deneyin.
İyi çalışmalar.

Sayın muygun yardımınız için çok teşekkür ederim ama galiba yapmak istediğimi anlatamamışım. Benim dosyamda yer alan ad olan her sayfada bir tablo ve bu tabloda isimler yer almaktadır. Her sayfada butona bağlı olan makrolarla, aynı sayfanın CH1 den başlayarak isimler alt alta sıralanıyor ve yan sütuna da her ismin kaç tane olduğu yazılıyor. Dolayısıyla, her sayfadaki buton ile bu işlemi tek tek yapıyorum. İstediğim bunu tek butona bağlayarak, bu sayfalarda tek tek yapılan işlemin bir kerede yapılması. Yani modül içinde yer alan 4 kodu 1 butona bağlamak.

Umarım yapmak istediğimi anlatabilmişimdir.

Yardımlarınız için şimdiden çok teşekkürler.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Dosyanızda 4 tane makro görüyorum. 4 makronun kodunu alt alta yazarak tek makro haline getirebilirsin. Yada;

Kod:
Sub dn()
Call IndexCikar_AYŞE
Call IndexCikar_KEMAL
Call IndexCikar_MEHMET
Call IndexCikar_ALİ
End Sub
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Dosyanızda 4 tane makro görüyorum. 4 makronun kodunu alt alta yazarak tek makro haline getirebilirsin. Yada;

Kod:
Sub dn()
Call IndexCikar_AYŞE
Call IndexCikar_KEMAL
Call IndexCikar_MEHMET
Call IndexCikar_ALİ
End Sub
Sayın recepkull çok çok teşekkür ederim. Nerede hata yaptığımı anlayamadım ama alt alta birleştirmeyi başaramadım. Ancak yazdığınız kodla işimi hallettim. Tekrardan çok teşekkürler...
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Dosyanızda 4 tane makro görüyorum. 4 makronun kodunu alt alta yazarak tek makro haline getirebilirsin. Yada;

Kod:
Sub dn()
Call IndexCikar_AYŞE
Call IndexCikar_KEMAL
Call IndexCikar_MEHMET
Call IndexCikar_ALİ
End Sub
Sayın recepkull, makrolar çalışmasına rağmen tablolarda yer alan isimlerin toplam sayıları yanlış çıkıyor. Makroları çalıştıran sayfadaki her buton ile çalıştırınca veriler doğru oluyor. Böyle bir hatanın nedenini anlayamadım.

Yardımlarınız için teşekkürler.
 

Ekli dosyalar

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Makro kodlarınızda s2 yi sayfa ismi olarak tanımlamışsınız ama kodlardaki For Each alan In [B7:I33].Cells satırında hangi sayfada işlem yapacağını belirtmemişsiniz. Bu yüzden makroyu hangi sayfada çalıştırırsanız o sayfaya göre işlem yapıyor. Kodlardaki bu satırları sayfa ismi belirleterek deneyin.

Kod:
For Each alan In S2.[B7:I33].Cells
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
EK olarak mesajlarınızı tamamını büyük harfle yazmayınız. (İlk mesajınız...)
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Makro kodlarınızda s2 yi sayfa ismi olarak tanımlamışsınız ama kodlardaki For Each alan In [B7:I33].Cells satırında hangi sayfada işlem yapacağını belirtmemişsiniz. Bu yüzden makroyu hangi sayfada çalıştırırsanız o sayfaya göre işlem yapıyor. Kodlardaki bu satırları sayfa ismi belirleterek deneyin.

Kod:
For Each alan In S2.[B7:I33].Cells
Sayın recepkull,

satırı aşağıdaki gibi düzenledim ancak hata veriyor.

For Each alan In [(Sheets("AYŞE GELMEZ".B7:I33)].Cells

Yardımlarınız için teşekkürler...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Recep bey size nasıl yazmanız gerektiği konusunda örnek paylaşmış. Onu kullanın.
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Recep bey size nasıl yazmanız gerektiği konusunda örnek paylaşmış. Onu kullanın.

Sayın Korhan Ayhan, Recep beyin örneği üzerinden ilgili satırı düzenlemeye çalıştım zaten ama hata veriyor. Recep beyin verdiği örnekteki satır için açıklaması;

"Makro kodlarınızda s2 yi sayfa ismi olarak tanımlamışsınız ama kodlardaki For Each alan In [B7:I33].Cells satırında hangi sayfada işlem yapacağını belirtmemişsiniz. Bu yüzden makroyu hangi sayfada çalıştırırsanız o sayfaya göre işlem yapıyor. Kodlardaki bu satırları sayfa ismi belirleterek deneyin. "

şeklindeydi.

Ben de ilgili satırı;

For Each alan In [(Sheets("AYŞE GELMEZ".B7:I33)].Cells
şeklinde düzenledim ama hata veriyor.

Aslında ilk açtığım konuda da belirttiğim gibi, amacım her bir çalışma sayfasında tek tek butona bağlı olan makroları, herhangi bir sayfada tek bir buton ile çalıştırmak istiyorum.

Yardımlarınız için çok teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,748
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Recep beyin mesajında paylaştığı kod satırı sizde görünmüyor mu? (en alttaki satır)
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Recep beyin mesajında paylaştığı kod satırı sizde görünmüyor mu? (en alttaki satır)

Sayın Korhan Ayhan, her bir sayfa için yer alan kodlar aşağıdaki gibidir. Recep beyin önerdiğini şöyle anladım.

For Each alan In [B7:I33].Cells olan satırda sf adı belirtin.

Ben de ilgili satırı sayfa adı belirterek şu şekilde düzenledim.

For Each alan In [Sheets("KEMAL DURMAZ").("B7:I33")].Cells


Sub IndexCikar_KEMAL()
Set S2 = Sheets("KEMAL DURMAZ")
S2.[CH1:CI65536].ClearContents
Application.ScreenUpdating = False
Set dic = CreateObject("Scripting.Dictionary")
dic.CompareMode = TextCompare

' For Each alan In [B7:I33].Cells

For Each alan In [Sheets("KEMAL DURMAZ").("B7:I33")].Cells

ekle = alan.Value
If dic.exists(ekle) Then
w = dic(ekle)
dic(ekle) = w + 1
Else
w = 1
dic.Add ekle, w
End If
Next
dizi = dic.Keys
S2.Range("CH300").Resize(UBound(dizi) + 1) = WorksheetFunction.Transpose(dizi)
dizi = dic.Items
S2.Range("CI300").Resize(UBound(dizi) + 1) = WorksheetFunction.Transpose(dizi)
S2.[CH:CI].Sort Key1:=S2.[CH300], Order1:=xlAscending, Header:=xlGuess
Application.ScreenUpdating = True
S2.Select
Erase dizi
Set dic = Nothing
Set S2 = Nothing
End Sub


Yardımlarınız için teşekkür ederim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın recepkull'un paylaştığı kod:

For Each alan In S2.[B7:I33].Cells

Sizin anladığınız:

For Each alan In [Sheets("KEMAL DURMAZ").("B7:I33")].Cells

Lütfen kodu sayın recepkull gibi düzeltiniz
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın muygun, Sayın recepkull, Sayın Korhan Ayhan, Sayın Yusuf44,

Herbirinizin emekleri için ayrı ayrı çok teşekkür ederim. Sorunum çözüldü.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Makro kodlarınızda s2 yi sayfa ismi olarak tanımlamışsınız ama kodlardaki For Each alan In [B7:I33].Cells satırında hangi sayfada işlem yapacağını belirtmemişsiniz. Bu yüzden makroyu hangi sayfada çalıştırırsanız o sayfaya göre işlem yapıyor. Kodlardaki bu satırları sayfa ismi belirleterek deneyin.

Kod:
For Each alan In S2.[B7:I33].Cells
Hatanın neyden kaynaklandığını söyledim, nasıl çözüleceğini söyledim ve mesajımın en altına da sorunu çözecek kodu paylaştım siz onu fark etmediniz sanırım :)
Kod:
For Each alan In S2.[B7:I33].Cells
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Hatanın neyden kaynaklandığını söyledim, nasıl çözüleceğini söyledim ve mesajımın en altına da sorunu çözecek kodu paylaştım siz onu fark etmediniz sanırım :)
Kod:
For Each alan In S2.[B7:I33].Cells
Evet sayın recepkull, maalesef farkedememiştim. Çok teşekkür ederim tekrardan.
 

mhaluksen

Altın Üye
Katılım
27 Ocak 2006
Mesajlar
205
Excel Vers. ve Dili
ofis 2010- Türkçe
Altın Üyelik Bitiş Tarihi
25-06-2026
sayın Erdinç bey dosyanın son halini yükleyebilir misin? Aynı durum bende de var da.
 
Üst