[Çözüldü]  Scripting Dictionary 65536 dan büyük

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Scripting Dictionary 65536 dan büyük

İleti#1)  feraz » 15 Nis 2018 16:52

Merhaba.

Scripting Dictionary de en fazla add olayı 65536 mıdır?

Giftede görüldüğü gibi 65536 dan fazla olursa işlem olmuyor.

Kod: Tümünü seç
Sub xyz()

    Dim i As Long
   
    Dim Dict As Object
    Set Dict = CreateObject("Scripting.Dictionary")
   
    Columns(2).Clear
    Columns(3).Clear
    For i = 1 To 65536
        Dict.Add i, i * 10
    Next
    Range("B1").Resize(Dict.Count, 1) = Application.Transpose(Dict.Keys)
    Range("C1").Resize(Dict.Count, 1) = Application.Transpose(Dict.Items)
   
    Set Dict = Nothing

End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Scripting Dictionary 65536 dan büyük

İleti#2)  feraz » 15 Nis 2018 18:02

Birde resimdeki renkli yeri kod ile nasıl işaretleyebiliriz acaba?
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Scripting Dictionary 65536 dan büyük

İleti#3)  Ozan İLGÜN » 16 Nis 2018 13:25

Array,dictionary,hashtag,stack,queue gibi koleksiyon öğelerinde limit 65536( 2¹⁶ ) olarak tanımlanmıştır. Aşağıdaki gibi kullanabilirsiniz.
Kod: Tümünü seç
Const count As Long = 65537

Sub rev()
    Dim dictionary(1 To count, 1 To 2) As Variant
    Dim i As Long
   Columns(2).Clear
Columns(3).Clear
   For i = 1 To count
   dictionary(i, 1) = i
   dictionary(i, 2) = i * 10
         Next
        Range("B1").Resize(count, 2) = dictionary
End Sub
ozanilgun@mynet.com

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 14:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 32
İleti: 2592
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



Cevap: Scripting Dictionary 65536 dan büyük

İleti#4)  feraz » 16 Nis 2018 13:50

Teşekkür ederim,sayın Ozan hocam açıklama ve kod için.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Scripting Dictionary 65536 dan büyük

İleti#5)  feraz » 16 Nis 2018 14:12

Pekii işaretleme olayı için çözüm var mı?
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Cevap: Scripting Dictionary 65536 dan büyük

İleti#6)  Ozan İLGÜN » 16 Nis 2018 14:35

feraz yazdı:Pekii işaretleme olayı için çözüm var mı?

Kod: Tümünü seç
   Dim vbproj
    Set vbproj = ActiveWorkbook.VBProject
    vbproj.References.AddFromFile "C:\WINDOWS\system32\scrrun.dll"
    Set vbproj = Nothing
ozanilgun@mynet.com

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 14:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 32
İleti: 2592
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Cevap: Cevap: Scripting Dictionary 65536 dan büyük

İleti#7)  feraz » 16 Nis 2018 18:26

Kod: Tümünü seç
   Dim vbproj
    Set vbproj = ActiveWorkbook.VBProject
    vbproj.References.AddFromFile "C:\WINDOWS\system32\scrrun.dll"
    Set vbproj = Nothing


Hata aldım malisef.Heralde güvenlik ayarı felan gerekecek.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Scripting Dictionary 65536 dan büyük

İleti#8)  Ozan İLGÜN » 16 Nis 2018 20:05

Excel Güven Merkezinden makro güvenlik ayarlarını değiştirin.
ozanilgun@mynet.com

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 14:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 32
İleti: 2592
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



Cevap: Scripting Dictionary 65536 dan büyük

İleti#9)  feraz » 16 Nis 2018 20:14

Güvenlik ayarları ile oynamadan işaretlenme olmuyorsa yapacak bişey.

Belki güvenlik ayarını değiştirme kodu vardır diyeceğim amma olmaz diye cevap geleceğinden korkuyorum :)

Güvenlik ayarlarıyla uğraşana kadar scripting.runtime yi manuel işaretleme daha mantıklı geldi :)
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Scripting Dictionary 65536 dan büyük

İleti#10)  Zeki Gürsoy » 17 Nis 2018 00:00

Sizdeki sınırın nedeni pek kesitirilemese de, bu sınır 65.536 değildir. Bu sınır, Byte türünde 2^32 ye kadar çıkabilir. Bu durum Array için de geçerlidir. Aşağıdaki iki kodu deneyebilirsiniz...

Kod: Tümünü seç
' out of memory...
dim arr(1 to 2000000000) as double


Kod: Tümünü seç
' başarılı...
dim arr(1 to 2000000000) as byte
Kullanıcı avatarı
Zeki Gürsoy
Yeni Başlamış
 
Adı Soyadı:Zeki Gürsoy
Kayıt: 18 Eyl 2011 23:43
Konum: Sakarya
Meslek: Muhasebe
Yaş: 40
İleti: 86
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Sakarya/Hendek

Cevap: Scripting Dictionary 65536 dan büyük

İleti#11)  feraz » 17 Nis 2018 07:27

Zeki hocam hata scripting.dictionary de oluyordu 65536 dan sonrası için.
Önce excel versiyon 2007 öncesine göre ayarladıklarını düşünmüştüm sayıyı.

Bu resimdeki yeri kod ile işaretleme yeri güvenlik ayarsız olmaz mı size görede.Ozan hocamızın anlattığından olmaz anladım.
İşaretlendirmememin sebebi noktaya basınca count,add,exists gibi olayların otomatik gelmesi.
Yoksa işaretlendirmeyede gerek yok esasen.

Saygılar.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Scripting Dictionary 65536 dan büyük

İleti#12)  feraz » 17 Nis 2018 07:42

Şunu yazmayı unutmuşum.

Eğer koda new kelimesini ekleyip resimdeki gibi işaretlenmezse hata oluşuyor.
Başka bilgisayarda kodu çalıştırırsam hata verecek malisef.

Kod bu yüzden lazımdı.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray

Cevap: Scripting Dictionary 65536 dan büyük

İleti#13)  feraz » 17 Nis 2018 17:53

Konuyu kilitleyebilirsiniz.

Seçeneklerden işaretlenip kaydedilince zaten işaretli kalıyormuş :)

Zeki ve Ozan hocam tekrar teşekkürler.
Kullanıcı avatarı
feraz
Site Dostu
 
Kayıt: 19 May 2014 19:36
Konum: Almanya
Meslek: İşçi
Yaş: 39
İleti: 5173
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Aksaray


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 5 misafir

Bumerang - Yazarkafe