• DİKKAT

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

Kopyala-Hafızaya al

Katılım
17 Haziran 2008
Mesajlar
1,874
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Merhaba arkadaşlar;

Kod:
Private Sub CommandButton1_Click()
  Range("B3:E500").Select
    Selection.Copy
       Application.CutCopyMode = False
Range("b3").Select
End Sub

Bu şekilde yaptığım kodlamada, tablodaki değerleri hafızaya alamıyorum.. yani txt dosyası açıyorum, ama "yapıştır" aktif değil...?

yardımcı arkadaşlara şimdiden teşekkürler..
 
Kod:
Application.CutCopyMode = False
Kopyalamadan vazgeçiriyor bu kodu kaldır.
 
Kod:
Application.CutCopyMode = False
Kopyalamadan vazgeçiriyor bu kodu kaldır.


Hocam dediğiniz gibi daha önce yaptım, oldu. ama ben dosya kopyalar gibi yapmak istemiştim, oluyorsa.. yani tablo etrafındaki kesik çizgiler görünmeden, hafıza aldırmak..
 
txt dosyasında tablo çizgileri oluyor mu?
 
Excel'de herhangi bir tabloyu seçip kopyaladığınızda txt dosyasına sadece değerleri olarak yapıtırabiliyorsunuz zaten. Sizdeki sorun nedir anlamadım? Süleyman Bey'in belirttiği gibi o kod kopyalamayı iptal ettiği için sonradan yapıştıramazsınız, o satırı iptal ettiğinizde düzgün çalışması gerekir.
 
Düzgün olarak çalıştığını söyledim ben zaten.. orda bir sıkıntı yok. bahsedilen kodu sildiğimde oluyor bunu yazdım mesajımda.. dikkat ettiysen...

şimdi gelelim sorun kısmına.; (olayı daha net anlatma açısından..)

Exceli bi tarafa bırak,, bir dosyayı kopyalarken, CTRL+C olayını biliyoruz.. aynı bu şekilde bir mantıkta olurmu onu sordum ben,, yani tablomda kesik çizgileri görmeden hafızaya aldırabiliyormuyum ? "cutmode" kısmını ben zaten bilerek oluşturdum arkadaşım.. bilmem anlatabildim mi ?
 
Son düzenleme:
YUSUF hocam;

olay tam anlaşılmadığı kanatindeyim.. txt bir örnekdi sadece..

Şöyle söyleyeyim o zaman; kodun içinde bu kısım yada benzeri kalacak : Application.CutCopyMode = False aynı zamanda da Hafızaya kopyalayacak.. bu olabilir mi ?
 
O şekilde olur mu bilmiyorum ancak örneğin [b2] = sheets("ali").range("A3") gibi kodlarla kopyalama yapmadan veri aktarımı yapabildiğimizi biliyorsunuz. Tam olarak istediğinizi belirtirseniz yani verileri hafızaya aldıktan sonra ne için kullanacağınızı belirtirseniz belki farklı çözümler üretilebilir. Malum makrolarla yeni dosyalar oluşturulup düzenlenebilir, eski dosyalar üzerinde istenilen değişiklikler yapılabilir vs.
 
internette yaptığım araştırma sonucu bulduğum kodlar aşağıdadır

Bir Module açın aşağıdaki kodları yazın
Kod:
Option Explicit


Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) _
   As Long
Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) _
   As Long
Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
   ByVal dwBytes As Long) As Long
Declare Function CloseClipboard Lib "User32" () As Long
Declare Function OpenClipboard Lib "User32" (ByVal hwnd As Long) _
   As Long
Declare Function EmptyClipboard Lib "User32" () As Long
Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, _
   ByVal lpString2 As Any) As Long
Declare Function SetClipboardData Lib "User32" (ByVal wFormat _
   As Long, ByVal hMem As Long) As Long

 Const GHND = &H42
 Const CF_TEXT = 1
 Const MAXSIZE = 4096

Function ClipBoard_SetData(MyString As String)
   Dim hGlobalMemory As Long, lpGlobalMemory As Long
   Dim hClipMemory As Long, X As Long

   ' Allocate moveable global memory.
   '-------------------------------------------
   hGlobalMemory = GlobalAlloc(GHND, Len(MyString) + 1)

   ' Lock the block to get a far pointer
   ' to this memory.
   lpGlobalMemory = GlobalLock(hGlobalMemory)

   ' Copy the string to this global memory.
   lpGlobalMemory = lstrcpy(lpGlobalMemory, MyString)

   ' Unlock the memory.
   If GlobalUnlock(hGlobalMemory) <> 0 Then
      MsgBox "Could not unlock memory location. Copy aborted."
      GoTo OutOfHere2
   End If

   ' Open the Clipboard to copy data to.
   If OpenClipboard(0&) = 0 Then
      MsgBox "Could not open the Clipboard. Copy aborted."
      Exit Function
   End If

   ' Clear the Clipboard.
   X = EmptyClipboard()

   ' Copy the data to the Clipboard.
   hClipMemory = SetClipboardData(CF_TEXT, hGlobalMemory)

OutOfHere2:

   If CloseClipboard() = 0 Then
      MsgBox "Could not close Clipboard."
   End If

End Function

Kullanımı

Kod:
ClipBoard_SetData Range("a1").Value

kolay gelsin
 
Suleyman242-YUSUF44; - dalgalikur;

başka bir şekilde yapacağım hocam. cevaplar için çok teşekkür ediyorum.. saygılar..
 
Son düzenleme:
Geri
Üst