Makroda Değişken Sayfa Adını Referans Verebilmek

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba arkadaşlar. Değişen sayfa adını makro referans vermek mümkün müdür. Yani aktarılacak verileri belli bir hücreye sayfa adı ve hücre adını yazmak suretiyle istediğimiz sayfanın, istediğimiz hücresine kopyalanmasını sağlayabilir miyiz.

Örnek dosya :
Ekteki dosya DATA sayfası, aktarım TANIM sayfası ve aktarımın yapılacağı 4 sayfa var. DATA sayfasında bulunan verileri TANIM sayfasındaki D1 hücresinde belirtilen sayfanın D2 hücresinde belirtilen hücresine aktarılmasını nasıl sağlarız. İstenildiğinde D1 hücresine farklı sayfalar yazılabilmeli ama makroda revizyon yapmaya gerek kalmamalı.

Yardımcı olanlara şimdiden teşekkürler.
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kodlarınızı aşağıdaki şekilde değiştiriniz.

Kod:
Sub VERIAKTAR()
'
' VERIAKTAR Macro
' Macro recorded 19/06/2007 by aakbay
'
' Keyboard Shortcut: Ctrl+Shift+A
On Error Resume Next
    sayfa = [d4]
    hücre = [d2]
    Sheets("DATA").Select
    Range("A3:E9").Select
    Selection.Copy
    Sheets("TANIM").Select
    Range("D4").Select
    Sheets("" & sayfa & "").Select
    Range("" & hücre & "").Select
    ActiveSheet.Paste
    Range("A1").Select
    Application.CutCopyMode = False
End Sub
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,216
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Buda sadece sayfa isminin referans almış şekli.
Kod:
Sub VERIAKTAR()
Set s1 = Sheets("DATA")
Set s2 = Sheets("TANIM")
For i = 3 To Sheets.Count
If Sheets(i).Name = s2.[D1] Then
s1.[A3:E9].Copy
s = WorksheetFunction.CountA(Sheets(i).[a1:a65000])
Sheets(i).Range("a" & s + 1).PasteSpecial
End If
Next
End Sub
 

Korhan Ayhan

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

Alternatif bir çözümde ben sunmak isterim. Aşağıdaki kodu denermisiniz.

Kod:
Sub VERİ_AKTAR()
    On Error GoTo Son
    HEDEF_SAYFA = "(" & Sheets("TANIM").[D1] & ")"
    HEDEF_HÜCRE = Sheets("TANIM").[D2]
    Sheets(HEDEF_SAYFA).Cells.Clear
    Sheets("DATA").[A1].CurrentRegion.Copy Sheets(HEDEF_SAYFA).Range(HEDEF_HÜCRE)
    MsgBox "İŞLEMİNİZ TAMAMLANMIŞTIR.", vbInformation
    Exit Sub
Son: MsgBox "HEDEF SAYFA BULUNAMAMIŞTIR.", vbCritical
End Sub
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Teşekkürler

Merhaba. Nasıl olmuş ben de anlamadım ama bu konu ile ilgili teşekkürlerimi iletmemişim. Gecikme için sayın ustalardan çok özür diler ve candan teşekkürlerimi iletmek isterim.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Önemli değil.

9 ay sonrada geri bildirimde bulunmanız güzel. :D
 
Üst