Hafızaya alınan değişkenlerin boşaltılması

Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merheba arkadaşlar,
Kullanmakta olduğum barkodla satış çalışmamda çok sayıda değişken tanımladım. örn;
Set a= [stok!a:a].Find(bar, lookat:=xlwhole)
Set b=a.offset(0,5)
..........
gibi.
Birkaç yıldır herhangi bir sorun yaşamadan sorunsuz kullanmama rağmen son iki gündür ilk birkaç işlemden sonra her barkod okutuşunun ardından giderek artan sürelerle beklemeye başladı. Yani Find komutunun kullanıldığı kodlarda yavaşlama oluyor. Sorunun hafızadan kaynaklandığını düşünerek ;

1- Her değişkeni tek tek mi boşaltmalıyım?
2- Tüm değişkenleri boşaltacak bir kod olabilir mi?
3 - Auto_Close içine yazılcak bir kodla bu mümkün müdür?

Eğer bunlardan herhangi biri mümkünse nasıl bir kod gerekiyor?
İlgilenen arkadaşlara teşekkür ederim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba, vba kod bilgim oldukça zayıf olduğundan kesin bir şey söyleyemiyorum.
Ancak, ben de daha evvel benzeri bir soru sormuştum, kıdemli bir üyenin bana yazdığı cevabı size ileteyim.
(Anladığım kadarıyla; kodun End Sub satırından hemen önce komut satırı eklemek gerekiyor.)

Bana iletilen mesajdaki cümle aynen şöyle;

"Sayısal değişkenler Empty , string değişkenler ve objectler Nothing , Diziler Erase ile boşaltılır."
 
Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Sayın omer .baran,
İlginize teşekkür ederim. Küçük ama önemli bir ayrıntı..
Set a= Nothing kodu ile tek tek boşaltıyorum. Ama özellikle sayısal değerler için Emty kullanmak gerektiğini öğrenmem iyi oldu.
Esen kalın.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Eyvallah sağ olunuz, söylediğim gibi kod konusunda çok bilgi sahibi değilim, sadece benim soruma verilen cevabı aktardım, faydalı olduğuna sevindim, iyi günler dilerim.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Değişkenlerin içini boşaltma ile ilgili olarak aşağıdaki resme bakabilirsiniz.
Resimde hangi değişken veri tipinin nasıl boşaltılacağı görülmektedir.
İlave bilgi olarak; Metin değişkenlerini Metin = "" şeklinde de boşaltabilirsiniz.​

 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Değişkenlerin içini boşaltma ile ilgili olarak aşağıdaki resme bakabilirsiniz.
Resimde hangi değişken veri tipinin nasıl boşaltılacağı görülmektedir.
İlave bilgi olarak; Metin değişkenlerini Metin = "" şeklinde de boşaltabilirsiniz.​
Merhaba Murat Bey, paylaşım için yürekten teşekkürler.
Kıyısından ucundan makrolarla uğraşmaya başlayan benim gibi üyeler için çok faydalı olacağından emin olabilirsiniz.
Sizi bulmuşken bir şey daha sormak isterim.
Sizin yazdığınız kodlarda (başkasında gördüğümü hatırlamıyorum) zaman zaman rastladığım Rky değişkeninin (değişken deyimi hatalı olabilir, malum bilgimiz kısıtlı) tam anlamını yazabilir misiniz acaba?
Yazdığınız bir kodda ilk gördüğümde "Molla Google"ye :) sormuştum ve anladığım kadarıyla,aralıktaki tüm hücreler için işlem yaptığı bilgisi aklımda kalmış.
(Sonradan ekliyorum) Bir de Evn diye bir şey var sizden başka kullanan hatırlamıyorum.
Açıklayabilirseniz sevinirim.
Sağlıcakla.
 
Son düzenleme:

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Merhabalar Ömer Bey,

Öncelikle kıyısından, ucundan da başlamış olsanız, nâcizane devam etmenizi öneririm.
VBA (Makro)'nın ne kadar önemli olduğunu size ve/veya diğer üyelere verilen kodların yaptığı işlevlerden görebiliyorsunuzdur zaten.

Sorduğunuz soruyla alâkalı olarak; bahsettiğiniz iki kelime de (Rky - Evn) birer değişken isimleridir.
Onların yerine herhangi bir kelime veya harf ile başlamak konuşulu ile sayılar yazabilirsiniz.
Bu değişken isimlerini genelde, Hücre/Aralık (Range) ve Nesne (Object) değişkeni olarak kullanırım.

Selâmlar, saygılar
 
Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merheba,
Sayın Korhan Ayhan'a ve Sayın Murat OSMA'ya ilgilerinden ve verdikleri bilgilerden dolayı çok teşekkür ederim.
İlk mesajımda belirttiğim gibi birkaç yıldır, tümüyle bu forumdan öğrendiklerimle adım adım oluştırduğum ve işyerimde tüm ihtiyaçlarımı karşılayan bu çalışmamın son günlerde işlemez hale gelmesi doğrusu elimi kolumu bağladı. VBA geçmişim çok eski olmadığı ve VBA ya ortasından :) başladığım için sorunların sebepleri konusunda yeterli olamıyorum. Bu açıklamalardan sonra öğrenmek istediklerim;
1-Bu bir ram sorunu mudur?
2- Hafızaya alınan bu değişkenler bilgisayarın hafızasında mı kalıyor, yoksa vba nın kullandığı bir hafıza var mıdır? Bilgisayarın ram ini yükseltsem sorun geçici de olsa çözülür mü?
İlginizden dolayı tekrar teşekkür eder esenlikler dilerim.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Merhabalar,

Tüm kodlarınızı görebilme imkânımız varsa olabildiğince optimize etmeye çalışırız.
Bu arada bildiğim kadarıyla; değişkenlerin kapladığı alan Ram'den değil İşlemciden sağlanır.
Bu sebeple Ram ile ilgili bir işlem yapmanıza gerek olmadığını düşünüyorum.
 
Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Sayın Korhan Ayhan,
Verdiğiniz linki incelemeye çalıştım ancak ne yazık ki ingilizcem yazılanlardan yararlanmam için yeterli değil.

Önermiş olduğunuz komutu sizce ne şekilde kullanmalıyım? Bir modüle yazıp butonla mı çalıştırmalıyım yoksa açılış veya kapanıştaki bir kod içine mi yerleştirmeliyim?
Anlayamadığım ikinci bir nokta;
Sub ve End Sub bloğu içinde sadece End ifadesi var. Bundan önce hafızaya alınan değişkenleri yazmam gerekiyor mu?
İlginize teşekkür ederim. Esen kalın.
 
Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Sayın Murat OSMA,
Dosyamın boyutu 128 KB ve daha önce bahsettiğim gibi uzun bir süredir ihtiyaca göre yavaş yavaş eklemeler yaptığım için form içine yazılmış çok sayıda kullanılmayan makro var. Bu yüzden sadece çalıştığında yavaşlamaya sebep olan daha doğrusu bazan 25- 30 saniye bazan da daha uzun sürelerle duran satış makrosunu ekliyorum. Bu arada küçük bir not; Dosya kaydedilmeden kapatılıp tekrar açıldığında bir süre normal hızda çalışıyor.

Kod:
Sub satış()

Set b = [b65536].End(3).Offset(1, 0)
Set c = [stok!b:b].Find(BAR, LOOKAT:=xlWhole)
Set X = [I:I].FİND(BAR, LOOKAT:=xlWhole)
If km <> "" Then
        If GENTP <> "" Then
            If (((MİK * 1) * c.Offset(0, 7)) + CDbl(GENTP)) > km * 1 Then
            MsgBox "İŞLEM TUTARI KREDİ LİMİTİNİ " & ((MİK * 1) * c.Offset(0, 7)) - KK * 1 & " TL. AŞMAKTADIR !", vbCritical, "LİMİT AŞIMI !"
            BAR = ""
            Exit Sub
            End If
        Else
            If ((MİK * 1) * c.Offset(0, 7)) > km * 1 Then
            MsgBox "İŞLEM TUTARI KREDİ LİMİTİNİ " & ((MİK * 1) * c.Offset(0, 7)) - KK * 1 & " TL. AŞMAKTADIR !", vbCritical, "LİMİT AŞIMI !"
            BAR = ""
            Exit Sub
            End If
        End If
End If
  [b65536].End(3).Offset(1, 0) = KULL & "/" & syf & "/" & FİŞNO
' If arş.Value = True Then [b65536].End(3).Offset(1, 0) = syf & "/" & FİŞNO Else [b65536].End(3).Offset(1, 0) = KULL & "/" & syf & "/" & FİŞNO
 If [S1!D5] <> "" Then b.Offset(0, -1) = [S1!D5] Else b.Offset(0, -1) = KULL
If SŞ <> "İade Alım" Then b.Offset(0, 1) = "Prk.Sat." Else b.Offset(0, 1) = SŞ
    If CHA <> "" Then b.Offset(0, 2) = CHA Else b.Offset(0, 2) = "İsimsiz Kayıt"
       b.Offset(0, 3) = SŞ
        b.Offset(0, 4) = Format(TAR, "DD.MM.YYYY") & " / " & Time
         b.Offset(0, 5) = Date
         
         

         
                      b.Offset(0, 7) = BAR
                      'If b.Offset(0, 8) <> "" Then
                     If SŞ = "İade Alım" Then b.Offset(0, 8) = c.Offset(0, 1) & "(İade)" Else b.Offset(0, 8) = c.Offset(0, 1)
                       'End If
                      b.Offset(0, 10) = MİK * 1 'Else b.Offset(0, 9) = MİK * 1
                       If b.Offset(0, 8) <> "" Then
                     b.Offset(0, 11) = c.Offset(0, 2) 'Birim
                      End If
                     b.Offset(0, 12) = c.Offset(0, 7)
                                         
                     b.Offset(0, 14) = c.Offset(0, 3) 'KDV
                     
'If SŞ = "Açık Hesap Satış" And bky2 <= 0 Then GoTo at ' Açık hesap astışta; hesap eksiye düştüğünde iskonto uygulanma.

                     If İSKOR <> "" Then
                         If c.Offset(0, 11) = "" Or c.Offset(0, 11) = 0 Then b.Offset(0, 15) = İSKOR * 1 Else b.Offset(0, 15) = c.Offset(0, 11)
                       Else
                        If SŞ = "Peşin Satış" Or SŞ = "İade Alım" Then b.Offset(0, 15) = c.Offset(0, 11) 'İSK1 %
                     End If
'at:
                   If SŞ <> "İade Alım" Then b.Offset(0, 13) = Round(b.Offset(0, 12) / ((100 + b.Offset(0, 14)) / 100), 2) 'KHSF
                       b.Offset(0, 17) = b.Offset(0, 10) * b.Offset(0, 13)  'KDV HARİÇ SATIŞ TUTARI
                    b.Offset(0, 17) = Round(b.Offset(0, 10) * b.Offset(0, 13), 2) 'KDV HARİÇ SATIŞ TUTARI
                    If SŞ <> "İade Alım" Then b.Offset(0, 18) = b.Offset(0, 10) * b.Offset(0, 12) Else _
                    b.Offset(0, 18) = (b.Offset(0, 10) * b.Offset(0, 12)) - ((b.Offset(0, 10) * b.Offset(0, 12)) * 2) 'KDV DAHİL SATIŞ TUTARI
'
                If IsNumeric(b.Offset(0, 15).Text) Then
                    İSK1 = Format(((b.Offset(0, 15) * b.Offset(0, 18)) / 100), "#,##0.00") * 1 'İSK 1 TOPLAMI
                    İSK2 = ((b.Offset(0, 18) - İSK1 * 1) * b.Offset(0, 16)) / 100 'İSK 2 TOPLAMI
                 End If
                 If b.Offset(0, 15) >= 1 And IsNumeric(b.Offset(0, 15).Text) Then b.Offset(0, 19) = İSK1 _
                 Else b.Offset(0, 19) = 0 'İSKONTO 1 TUTARI
                 
                If IsNumeric(b.Offset(0, 15).Text) Then b.Offset(0, 20) = İSK2 'İSKONTO 2 TUTARI
                 net = b.Offset(0, 18) - (İSK1 + İSK2)
                 KDV = net * (b.Offset(0, 14)) / (b.Offset(0, 14) + 100)
                 
                b.Offset(0, 23) = c.Offset(0, 8) 'ALIŞ İSK 1
                 b.Offset(0, 24) = c.Offset(0, 9) 'ALIŞ İSK 2
                
                b.Offset(0, 27) = c.Offset(0, 4) 'KDV HARİÇ ALIŞ FİYATI
                 b.Offset(0, 39) = b.Offset(0, 10) * b.Offset(0, 27) 'KDV HARİÇ ALIŞ TUTARI
                b.Offset(0, 28) = c.Offset(0, 5)
                b.Offset(0, 30) = b.Offset(0, 18) - (İSK1 + İSK2) 'NET * 1 'b.Offset(0, 18) - b.Offset(0, 19) 'NET SATIŞ TUTARI
                b.Offset(0, 31) = b.Offset(0, 10) * b.Offset(0, 28) 'KDV DAHİL ALIŞ TOPLAMI
               ' B.Offset(0, 32) = B.Offset(0, 30) / ((100 + B.Offset(0, 14)) / 100)
                b.Offset(0, 32) = Round(b.Offset(0, 17) - b.Offset(0, 19), 2)
               ' B.Offset(0, 30) = Round(B.Offset(0, 32) * ((100 + B.Offset(0, 14)) / 100), 3)
                ' B.Offset(0, 21) = B.Offset(0, 13) * B.Offset(0, 14) / 100  'BİRİM KDV MİKTARI
                 b.Offset(0, 21) = Round(b.Offset(0, 13) * b.Offset(0, 14) / 100, 2) 'BİRİM KDV MİKTARI
                 ' B.Offset(0, 22) = ((B.Offset(0, 17) - B.Offset(0, 19)) * B.Offset(0, 14)) / 100 'KDV TOPLAMI
                b.Offset(0, 22) = b.Offset(0, 10) * b.Offset(0, 21) 'KDV TOPLAMI
                
                 BAİSK1 = (b.Offset(0, 23) * (b.Offset(0, 27)) / 100) * 1 'BİRİM ALIŞ İSK 1 MİKTARI
                 BAİSK2 = ((b.Offset(0, 27) - AİSK1) * b.Offset(0, 24)) / 100 * 1 'BİRİM ALIŞ İSK 2 MİKTARI
                
                ' AİSK1 = (b.Offset(0, 23) * (b.Offset(0, 30)) / 100) * 1 'ALIŞ İSK 1 TOPLAMI
                 'AİSK2 = ((b.Offset(0, 30) - AİSK1) * b.Offset(0, 24)) / 100 * 1 'ALIŞ İSK 2 TOPLAMI
                 
               ' b.Offset(0, 25) = (b.Offset(0, 23) * b.Offset(0, 17)) / 100 'ALIŞ İSK 1 TOPLAMI
               ' b.Offset(0, 26) = ((b.Offset(0, 30) - AİSK1) * b.Offset(0, 24)) / 100  'ALIŞ İSK 2 TOPLAMI
                b.Offset(0, 29) = b.Offset(0, 27) - ((b.Offset(0, 27) * b.Offset(0, 23)) / 100)
                b.Offset(0, 33) = b.Offset(0, 10) * b.Offset(0, 29)
                b.Offset(0, 34) = b.Offset(0, 32) - b.Offset(0, 33)
                 b.Offset(0, 37) = b.Offset(0, 30) - (b.Offset(0, 39) * b.Offset(0, 10))
                If İŞLNO <> "" Then b.Offset(0, 38) = syf & "/" & "/" & FİŞNO & " / " & İŞLNO
                  b.Offset(0, 41) = Format(TAR, "yyyy") * 1
                  b.Offset(0, 42) = Format(TAR, "MM") * 1
                  b.Offset(0, 43) = Format(TAR, "dd") * 1 'WorksheetFunction.Weekday(b.Offset(0, 43))
                  b.Offset(0, 44) = Me.Name
                 ' If [AP4] = "" Then [AP4] = 1 Else B.Offset(0, 40) = B.Offset(-1, 40) + 1
                   ' If SŞ = "Açık Hesap Satış" Then b.Offset(0, 41) = CHK
                    If CHK <> "" Then b.Offset(0, 47) = CHK Else b.Offset(0, 47) = "CHK00"
                 b.Offset(0, 48) = c.Offset(0, 22) 'TSG
                b.Offset(0, 49) = c.Offset(0, 23) 'ASG
                b.Offset(0, 50) = c.Offset(0, 24) 'ÖGK
                b.Offset(0, 51) = c.Offset(0, 21) 'ASG3
                b.Offset(0, 52) = c.Offset(0, 38) 'ASG4
                b.Offset(0, 55) = c.Offset(0, 29) 'FİRMA
                b.Offset(0, 56) = c.Offset(0, 39) 'MARKA
                If arş.Value = False Then b.Offset(0, 54) = "h" Else b.Offset(0, 54) = "e"
                If cb_mkr.Value = True Then
                    If SŞ <> "İade Alım" Then
                   ' If BAR = 1 Then mkrr_tpl_j Else mkrr_tpl_I
                    End If
                 End If


 
        iade = Format(WorksheetFunction.SumIf([c:c], "İade Alım", [af:af]), "#,##0.00")
        TPL = Format(WorksheetFunction.SumIf([c:c], "Prk.Sat.", [t:t]), "#,##0.00")
        İSKMİK = Format(WorksheetFunction.Sum(Range("U4:U200")), "#,##0.00") ' İade iskontolarını düşmesi için sumif kullanılmadı.
        If İSKMİK = "" Then ARATP = TPL Else ARATP = Format(TPL - İSKMİK, "#,##0.00")
        GENTP = Format(WorksheetFunction.Sum([af4:af65536]), "#,##0.00")
       ' If iade <> "" Then GENTP = Format(CDbl(ARATP) + CDbl(iade), "#,##0.00") Else GENTP = Format(ARATP, "#,##0.00")
        If bky1 <> "" Then bky2 = Format(CDbl(bky1) - CDbl(GENTP), "#,##0.00")
        If bky2 < 0 Then drm2 = "B" Else If gndrm > 0 Then drm2 = "A"
        If km <> "" Then KK = Format(km - GENTP, "#,##0.00")
        
If SŞ = "Açık Hesap Satış" Then
If bky1 <> "" Then bky2 = Format(CDbl(bky1) - CDbl(GENTP), "#,##0.00") Else bky2 = Format((GENTP) * (-1), "#,##0.00")
End If

If SŞ = "Peşin Satış" Then
If bky1 <> "" Then bky2 = Format(CDbl(bky1) - CDbl(GENTP), "#,##0.00")
End If

If bky2 < 0 Then drm2 = "B" Else If gndrm > 0 Then drm2 = "A"

    TUTAR = Format([I4:I500].Find(BAR).Offset(0, 11) - [I4:I500].Find(BAR).Offset(0, 12), "#,##0.00")
    TOPMİK = [I4:I500].Find(BAR, LOOKAT:=xlWhole).Offset(0, 3)
    stkbky = c.Offset(0, 19) - TOPMİK
        If [s1!bn24] = "E" Then ekisknt
     ÜF = Format(c.Offset(0, 7), "#,##0.00")
      ÜA = c.Offset(0, 1)
     If SŞ <> "Açık Hesap Satış" Then
     Set i = [b65536].End(3)
    İSK1A = Format(i.Offset(0, 15), "#0")
    If c.Offset(0, 11) <> "" And c.Offset(0, 11) > 0 And IsNumeric(İSK1A.Text) Then İT = Format(((c.Offset(0, 7) * c.Offset(0, 11)) / 100) * TOPMİK * 1, "#,##0.00")
     End If
STKAD.TabStop = False
MİK.TabStop = True
BAR.TabStop = True
MİK.Enabled = False

If Not IsNumeric(c.Offset(0, 17)) Or Not IsNumeric(c.Offset(0, 18)) Then GoTo gc 'Stok giriş vyea çıkış miktarlarında sayısal değer yoksa
         k = c.Offset(0, 17) - (c.Offset(0, 18) + MİK * 1)
         
        If stkuyr.Value = True And c.Offset(0, 15) <> "" Then
              
                     If k = c.Offset(0, 15) Then
                
                        stk_ikaz
                        MsgBox " Bu stok minimum sayıya düşmüştür.", vbInformation, "STOK BİLGİ"
                       
                    End If
                
                    If k < c.Offset(0, 15) Then
                        stk_ikaz
                        MsgBox " Bu stok minimum stok sayısının altına düşmüştür.", vbInformation, "STOK BİLGİ"
                        
                     End If
                'End If
         Else
        
                 If stkuyr.Value = True And k <= 0 Then
                    stk_ikaz
                    MsgBox "Bu stok tükenmiştir." & vbCrLf & "Sipariş listesine ekleyiniz.", vbCritical, "STOK UYARI"
                 End If
        End If
gc:
   BAR = ""
BRM = ""
FYT = ""
KDV = ""
MİK = 1
      
  İŞLNO = İŞLNO + 1 '[S1!A1]
  [s1!a1] = İŞLNO * 1
 Set b = Nothing: Set c = Nothing: Set X = Nothing

End Sub
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN
Merhabalar,

Tüm kodlarınızı görebilme imkânımız varsa olabildiğince optimize etmeye çalışırız.
Düzeltiyorum.
Kodlarınızı gördükten sonra dosyanızı görmek daha iyi olur.

Not: Mesajınıza kodları eklerken, mesaj gövdesinin üzerindeki # simgesine tıklayın ve kodları arasına yapıştırın.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Murat beyin uyarısına istinaden mesajınızda verdiğiniz kodlarınız "code" tagı içine alınmıştır.

Bundan sonraki mesajlarınızda bu konuya dikkat ederseniz sevinirim.
 
Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Sayın Murat OSMA,
Önce, mesaja kod ekleme konusundaki bilgilendirmeniz için teşekkür ederim.
Dosya ekleme konusunda ise tereddütlüyüm, çünkü bahsettiğim gibi uzunca bir süredir eklemeler yaptığım için gerekli gereksiz çok sayıda kullanılmayan makro ve birçok sayfada müşteri bilgileri ile yaklaşık 45000 stok bilgisi var. Bunların silinerek yerlerine yeni verilerin girilmesi oldukça uzun zaman alacak. Ayrıca; dosya açılırken, çalışması için gerekli verilerin çoğunu bilgisayarımdaki farklı bir klasördeki stok, cari hesap bilgileri vb. gibi dosyalardan aldığı için bunların da oluşturulması gerekiyor. Bu iş hem sizi hem de beni fazlasıyla uğraştıracak. Programın başka bilgisayarda sorunsuz çalışması ve verdiğiniz, "değişkenlerin işlemci hafızasını kullandığı" bilgisi, "ram ile kurtarır mıyım? " umudumu bitirdi doğrusu.:cry: Bu, artık benim bilgisayarın bu yükü kaldıramayacağı anlamına geliyor galiba.:)
Ayırdığınız zaman ve verdiğiniz bilgiler için çok teşekkür ederim. Esen kalın..
 
Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Sayın Korhan Ayhan,
Benim yerime yaptığınız iş için teşekkür ederim. :) Bundan sonraki mesajlarımda uyarınız dikkate alınacaktır.
Esen kalın.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,500
Excel Vers. ve Dili
Microsoft 365 TR-EN

Şu an için maalesef benim yapabileceğim bir şey yok.

İyi günler.
 
Katılım
2 Şubat 2014
Mesajlar
745
Excel Vers. ve Dili
2007 Türkçe
Merhabalar, hafızada mevcut olan kopyalama işlemini
hangi kod satırı ile iptal edebilirim acaba ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,325
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Normalde kopyalama işlemini aşağıdaki satır ile iptal edebilirsiniz.

Kod:
Application.CutCopyMode = False
Bu işe yaramazsa aşağıdaki kodu deneyiniz.

Kod:
Public Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
Public Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long

Sub ClearClipboard()
    OpenClipboard 0&
    EmptyClipboard
    CloseClipboard
End Sub
 
Katılım
2 Şubat 2014
Mesajlar
745
Excel Vers. ve Dili
2007 Türkçe
Çok teşekkür ederim Korhan hocam.
Üstteki satır sorunumu çözdü.
Ellerinize sağlık.
 
Üst