• DİKKAT

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

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
Şö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?
 
Buradaki amacınız nedir?

Yani bu işlemle neye ulaşmaya çalışıyorsunuz.
 
Şö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

  • 58E09C4D-FF41-4962-9589-E1B389C6305F.jpeg
    58E09C4D-FF41-4962-9589-E1B389C6305F.jpeg
    241.5 KB · Görüntüleme: 2
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
 
Kodu örnek dosyama aynen yapıltırıp denedim fakat şöyle bir hata ile karşılaştım;214310214311
 
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.
 
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
 
Ş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
 
@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.
 
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.
 
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
 
Geri
Üst