• DİKKAT

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

Hücre adresi kullanmadan, aktif kitaptan aktif kitaba veri kopyalama.

Katılım
7 Ekim 2013
Mesajlar
169
Excel Vers. ve Dili
2003 TR
Merhabalar. Değerli uzmanlarımızın yardımını bekliyorum.


Her iki kitapta açık olduğu anda

Kod şu işlemi yapacak:

Ben bu sayfada herhangi bir hücreyi seçip Enter a bastığım zaman

"Data" adlı kitabımızın "liste" sayfasında daha önceden seçilmiş olan alanı kopya edecek

ve ( herhangi bir hücreye ) değer olarak yapıştıracak.

Not kodu: "Çalışma" adlı kitapta kullanacağım.
 

Ekli dosyalar

Merhaba,

Aşağıdaki işlemleri uygulayın.

"çalışma" isimli kitabınızın;

"ThisWorkbook" bölümüne aşağıdaki kodu uygulayın.

Kod:
Private Sub Workbook_Activate()
    Application.OnKey "{ENTER}", "KOPYALA"
    Application.OnKey "~", "KOPYALA"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "{ENTER}"
    Application.OnKey "{~}"
End Sub

Private Sub Workbook_Deactivate()
    Application.OnKey "{ENTER}"
    Application.OnKey "{~}"
End Sub

Boş bir modüle aşağıdaki kodu uygulayın.

Kod:
Sub KOPYALA()
    Dim K1 As Workbook, K2 As Workbook
    Dim S1 As Worksheet, S2 As Worksheet
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("osman")
    Set K2 = Workbooks("data.xls")
    Set S2 = K2.Sheets("liste")
    
    S2.Activate
    Selection.Copy
    S1.Activate
    ActiveCell.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    
    Set K1 = Nothing
    Set S1 = Nothing
    Set K2 = Nothing
    Set S2 = Nothing
End Sub

Dosyanızı kayıt edip kapatın. Sonra tekrar iki dosyayıda açın ve "çalışma" isimli dosyada enter tuşuna basıp sonucu gözlemleyin.
 
Merhabalar Korhan hocam.

Söylediklerinizi yaptım ENTER tuşu bir alt hücreye geçiyor.

Her iki kod bloguda aynı bu arada. Normalmidir bilmiyorum.
 
Modül kodunu revize ettim. Tekrar deneyiniz.
 
Korhan hocam maalesef herhangi bir işlem olmuyor.

Kodları dosyalara bağlayabilirmisiniz acaba.


Bu arada yapıştırılacak alana sınır getirebilirsek çok daha iyi olur sanki (a1:d50) gibi
 
Sanıyorum siz numaratör tarafındaki ENTER tuşu ile deneme yapıyorsunuz. Büyük ENTER tuşu ile deneyiniz.

Üstteki mesajımdaki kodu her iki ENTER tuşu ile çalışacak şekilde düzenledim. İsterseniz son halini deneyiniz.
 
Merhabalar sayın hocam.

Evet şu anda "osman" adlı sayfada istediğim işlemi harfiyen yapıyor.
Şu şekilde bir durum var düzeltmemiz gereken. Çalışma adlı kitapta "osman" haricinde
başka bir sayfada enter tuşunu kulladığımız zaman: "osman" sayfasında hangi
hücre işaretli kaldı ise o hücreye yine veri getiriyor. Yani kod sadece "osman" sayfasında
çalışırsa istemediğimiz hatalara mahal vermeyiz.

İkinci bir şeyde yine "osman" sayfasında alan tanımlayıp o alanın dışında kod çalışmasın
(a1:d50) gibi. Şayet bunlar yapılabilir ise harika olur. Teşekkür ederim.
 
Merhaba,

Modül kodunu aşağıdaki gibi değiştirip dener misiniz?

Kod:
Sub KOPYALA()
    Dim K1 As Workbook, K2 As Workbook
    Dim S1 As Worksheet, S2 As Worksheet
    Dim Alan As Range
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("osman")
    Set K2 = Workbooks("data.xls")
    Set S2 = K2.Sheets("liste")
    Set Alan = S1.Range("A1:D50")
    
    If ActiveSheet.Name <> S1.Name Then Exit Sub
    If Intersect(Selection, Alan) Is Nothing Then Exit Sub
    
    S2.Activate
    Selection.Copy
    S1.Activate
    ActiveCell.PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    
    Set Alan = Nothing
    Set K1 = Nothing
    Set S1 = Nothing
    Set K2 = Nothing
    Set S2 = Nothing
End Sub
 
Harika oldu hocam, teşekkür ederim.

Ellerinize sağlık.
 
Geri
Üst