Soru Makro ile her tıklamada bir alt hücreden veri çekme

Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Şöyle bi formülüm var “=AB12” ben bunun makroya tıkladığımda “=AB13” olmasını istiyorum. Yani bir alt hücresinden veri çekmesini istiyorum. Fakat bir daha çalıştırdığımda bu sefer “=AB14” olsun yani her makro çalıştığında +1 eklenerek bi alt hücreden veri çeksin. Yardımcı olabilirseniz çok sevinirim?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,520
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Buradaki amacınız nedir?

Yani bu işlemle neye ulaşmaya çalışıyorsunuz.
 
Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Şöyle anlatayım 18 tane dolabım bar alfabetik sıralı, ben bu dolaplarıma dosyları tarihsel sırayla dizdim. Hangi dolapta hangi tarihli dosyalar var, excel dosyamdan kontrol edebiliyorum. Şöyle bir ihtiyaç oluştu; dosyalarımı sisteme kaydedince folaptan kaldırıyorum, ve dosyalar bir geri kayıyor. Yani nisan 2019 dosyası normalde b numaralı dolaptaysa a numaralı dolaba geçiyor. Böyle böyle bir ileri yada bir geri kaydırmam gerekiyor.
Bende bu ihtiyaca çözüm olarak tarihleri görünmeyen bir yere yukarıdan aşağıya tüm tarihleri yazdım, oradan çektiriyorum, makro ile bir aşağıdaki tarihten çektirmeye çalışıyordum.
Örnek bir görsel bıraktım;214255
 

Ekli dosyalar

Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Örnek dosya ekledim, ilginiz için de teşekkür ederim bu arada;
 

Ekli dosyalar

Korhan Ayhan

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

C++:
Option Explicit

Sub Bir_Ileri_Tasi()
    Dim Adres As String
    Adres = Replace(ActiveCell.Formula, "=", "")
    ActiveCell.Formula = "=" & Range(Adres).Offset(1).Address(0, 0)
End Sub

Sub Bir_Geri_Tasi()
    Dim Adres As String
    Adres = Replace(ActiveCell.Formula, "=", "")
    ActiveCell.Formula = "=" & Range(Adres).Offset(-1).Address(0, 0)
End Sub
 
Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Kodu örnek dosyama aynen yapıltırıp denedim fakat şöyle bir hata ile karşılaştım;214310214311
 
Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Yardımcı olabilir mi biri gerçekten ihtiyacım var bu problemi çözmeye :/
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba , kodda bir hata yok , aktif hücredeki formülü istediğiniz şekilde arttırıyor. Eğer siz herhangi bir hücreden çalıştırmak istiyorsanız , kodlardaki ActiveCell yazan yerlere adres vererek yapılmalı, örneğin [A1] olarak değiştirin. Yada sizin formülünüz hangi hücrede ise A1 yerine onu yazın.
 
Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Adresim ''Q11'' yani formulu bu şekilde mi kullanmalıyım;
Sub Bir_Ileri_Tasi()
Dim Adres As String
Adres = Replace([Q11], "=", "")
ActiveCell.Formula = "=" & Range(Adres).Offset(1).Address(0, 0)
End Sub
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Şu şekilde deneyiniz..

Kod:
Sub Bir_Ileri_Tasi()
    Dim Adres As String
    Adres = Replace([Q11].Formula, "=", "")
    [Q11].Formula = "=" & Range(Adres).Offset(1).Address(0, 0)
End Sub
 
Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
@EmrExcel16 çok teşekkür ederim, denedim ve çok güzel çalışıyor. Yardımınız için sağolun.
@Korhan Ayhan size de teşekkür ederim benim hatam varmış kodunuz çok iyi çalışıyor, sizde vakit ayırıp yardımcı olduğunuz için teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,520
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ona hata demiyelim...

Ben mesajımda belirtmediğim için bu durum oluştu. Ben sizin hücreyi seçip kodu çalıştıracağınızı düşündüğüm için hücre adresi vermemiştim.
 
Katılım
6 Ağustos 2017
Mesajlar
98
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
11-03-2020
Anladım, sayenizde öğrenmiş oldum “active cell” terimi seçili olan hücre anlamına geliyor sanırım. Yani ya o kelimenin yerine direk hücreyi yazacağım [Q11] şeklinde, yada kodun başına Range(“Q11”). Select şeklinde önce hücreyi seçtirip sonra işlemi yaptıracağım. Teşekkür ederim tekrardan
 
Üst