[Yardım]  Yükset satır sayılı tablodan başka sayfaya veri alma

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

Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#1)  biops » 28 Nis 2019 14:12

Merhabalar. Yine forum içinden bulduğum basit uyguyabileceğim bir kodla en azından istediğimi başarabildim. İşlem süresi dışında problemsiz çalışıyor. Fakat tablo sayısı arttıkça işlem süresi sıkıntı yaratıyor.
Vvlookup, dictionary vb. örnekleri uyarlamaya çalıştım ve bir yerden sonra yardım olmadan başaramayacağımı anladım. örnek dosyam ve açıklama mevcuttur. Yardımlarınızı rica ediyorum
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#2)  tasad » 28 Nis 2019 14:56

Kodları deneyin.500 bin satır bile en fazla 20 saniye sürer.Ado SQL'in gücü...
Kod: Tümünü seç
Sub veriaktar()
Dim i As Long, con As Object, rs As Object
On Error Resume Next
Sayfa3.Range("a2:z999999").ClearContents
Set con = CreateObject("adodb.connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""excel 12.0;hdr=no;"""
For i = 2 To Sayfa2.Range("a999999").End(3).Row
Set rs = con.Execute("Select * from [VERİLER$] Where  f7 like '%" & Sayfa2.Cells(i, 1).Value & "%'")
Sayfa3.Range("A999999").End(3)(2, 1).CopyFromRecordset rs
Next i
rs.Close: con.Close
Set con = Nothing: Set rs = Nothing
End Sub
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#3)  biops » 28 Nis 2019 17:48

Öncelikle verdiğiniz cevap için teşekkür ederim.. Kodu tabloma göre uyarlayıp çalıştırınca excel donup yanıt vermiyor..
For-Next döngüsüne breakpoint koyup adımlama yaptığımda sıkıntı yok.. 10-15-20 adım sonrasında da verileri getiriyor.
Fakat ne zaman adımlamayı kaldırıp başlatsam donuyor.. Bunu donmayı çözmenin bir yolu var mı acaba.
xcalculate vb.. secenekler gibi..
Not olarak adımlama yaptığımda(for - Next) da her bir adım süresi 1,5 - 2 saniyeyi buluyor. Bu normal midir.? İyi çalışmalar.
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#4)  tasad » 28 Nis 2019 17:58

Bendeki dosyada dediğiniz şekilde donma yapmıyor.Dosyayı ekledim.inceleyin.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

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

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#5)  biops » 01 May 2019 08:03

Merhaba. Verdiğiniz kod gayet iyi çalşıyor. Excel in yanıt vermiyor yazmasının önemi yokmuş. kod 240 bin satırda yaklaşık 30 saniyede istediğim sonuçu getiriyor. Tekrar teşekkürler.
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#6)  biops » 17 May 2019 15:45

Tekrar merhaba. Konu kirliliği olmaması açısından buraya yazmayı uygun gördüm.
Kod: Tümünü seç
'kod 1
Private Sub data_al() ' bölge tablosu
Dim qt As QueryTable
Dim URL As String
URL = "https://********"
Set qt = ActiveSheet.QueryTables.Add( _
    Connection:="URL;" & URL, _
    Destination:=sayfa1.Range("A1"))
With qt
     .RefreshOnFileOpen = False
     .WebFormatting = xlWebFormattingNone
     .WebDisableDateRecognition = True   ' tarih algılama kapalı
     '.WebSelectionType = xlEntirePage ' tüm sayfa
         .WebSelectionType = xlAllTables 'tüm tablolar
    '        .WebSelectionType = xlSpecifiedTables 'özel tablo
     .Refresh BackgroundQuery:=False
    End With
Set qt = Nothing: Set Connection = Nothing

Dim xConnect As Object  ' bağlantı sonunda aktif bağlantıları kapatıyorum.. Refresh BackgroundQuery:=False ne işe yarıyorsa.
For Each xConnect In ActiveWorkbook.Connections
If xConnect.Name <> "ThisWorkbookDataModel" Then xConnect.Delete
Next xConnect
End Sub
Set xConnect = Nothing

End Sub


'sonrasında düzenleyip data tablosuna atıyorum.

Kod: Tümünü seç
'Kod 2
'**********************Ado ile getir********************

Private Sub a_bolge_al()
Dim dbismi As String
Dim baglan As String, Source As String
Dim baglanti As ADODB.Connection 'ADO collection class
Dim Recordset As ADODB.Recordset
Dim Col As Integer

'basla = Timer

dbismi = ThisWorkbook.Path & "\Data.accdb"
Set baglanti = New ADODB.Connection
'baglan = "provider=microsoft.ACE.oledb.12.0;" 'sürüm uyumluluğu için kullanabilirsin

baglanti.Open "provider=microsoft.ACE.oledb.12.0;data source=" & ThisWorkbook.Path & "\Data.accdb"

Sayfa2.Cells.ClearContents.ClearContents
For i = 2 To Sayfa2.Range("h999999").End(3).Row
aranan = Sayfa2.Cells(i, "h").Value
Set Recordset = New ADODB.Recordset

With Recordset
Source = "SELECT*FROM DATA WHERE [BOLGE] = '" & aranan & "'"   ' Tek tırnak işareti varsa sorun yaratıyor
'recordseti yaz
Sayfa3.Range("A999999").End(3)(2, 1).CopyFromRecordset Recordset

End With
Next i
Set Recordset = Nothing
Set baglanti = Nothing

'MsgBox  "İşlem süresi ; " & Chr(10) & Format(Timer - basla, "0.00"), vbInformation

End Sub



Siteniz ve yardımlarınız sayesinde;
Kod 1 ile istediğim verieri sunucudan alabiliyorum. Kod 2 ile de ado' dan veri getirebiliyorum.
Sorunum şu : önce kod 1 sonra kod 2 yi çalıştırdığımda kod 2 işlem süresi 150 sn sürüyor.
Fakat Kod 1 ile veri çekip dosyayı kaydedip kapatıp açtığımda , Kod 2 ile işlem süresi 6 sn. Bu çakışmanın nedeni ne olabilir yardımınızı rica ediyorum.
Not: Her web veri alımından sonra excel "DışVeri_1","DışVeri_2" şeklinde ad tanımlıyor. Bunun bir etkisi olacağını düşünmüyorum , bilgi olarak eklemek istedim
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#7)  biops » 20 May 2019 17:11

Güncel..Excel 2019 kullanıyorum. Sürüm düşürdüm sonuç aynı. Fikir verebilecek ?
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#8)  ertugrul1956 » 23 May 2019 17:50

Merhaba
Excelin yanıt vermiyor olabildiği durumlarda sayfalardaki satırları saydırıp
belli bir adedi geçtiğinde sayfayı dışarı çıkarıyorum.
Kullanıcı avatarı
ertugrul1956
Siteye Alışmış
 
Adı Soyadı:ertuğrul şengün
Kayıt: 01 May 2014 17:05
Konum: istanbul/pendik
Meslek: emekli
Yaş: 63
İleti: 130
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul/pendik

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#9)  biops » 02 Haz 2019 17:20

Sayın Ertuğrul bey ne demek istediğinizi tam olarak anlayamadım. Hala sayfamı kaydedip tekrar açıyorum datbase den veri çekmek için. Ve işlem süresi 5 sn kadar sürüyor.
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#10)  ertugrul1956 » 05 Haz 2019 07:57

Merhaba
Rapor alırken oluşan sayfayı limiti geçince dosyayı excelden çıkarıp devamı olan başka sayfa yaratin birdaha birdaha
çıkarılan dosyalar raporun parçaları olsun
Kullanıcı avatarı
ertugrul1956
Siteye Alışmış
 
Adı Soyadı:ertuğrul şengün
Kayıt: 01 May 2014 17:05
Konum: istanbul/pendik
Meslek: emekli
Yaş: 63
İleti: 130
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul/pendik

Cevap: Yükset satır sayılı tablodan başka sayfaya veri alma

İleti#11)  biops » 08 Haz 2019 15:16

Teşekkür ederim. Aldığım Raporların satır sayısı 9-10 bin satırı geçmediğinden (kaydet-kapat-ve yeniden aç) gibi Tarzan ' ca bir yöntem ile sorunu geçiştirdim. Konu Kilitlenebilir. İyi forumlar.
Kullanıcı avatarı
biops
 
Kayıt: 14 Mar 2019 10:50
Meslek: tekniker
Yaş: 32
İleti: 7
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: izmir


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Sogou ve 2 misafir

Bumerang - Yazarkafe