• DİKKAT

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

çoklu sayfadan veri getirmek

  • Konbuyu başlatan Konbuyu başlatan othara
  • Başlangıç tarihi Başlangıç tarihi
idris bey merhaba tekrar bu çalısmayı yaptım oldu fakat kaydederken cok bekliyor excel donuyor neden acaba ana listede 1500 satırım var neden acaba
 
.

Dosyanızda çok biçimlendirme ve renklendirmeler var. Bu yavaşlatıyor olabilir.

.
 
turkuaz gibi görünen kısımlar renkli degil sayın idrsi örnek olsun diye formülü asagi çekikiyorum geliyor kaydet diyince duruyor dosyanın boyutu 4,9 mb
 
formülü adagi çekince geliyor kaydet diyince kalıyor öylece dosyam ektedir formülü asagi çekip kaydetmek istiyorum yardımınız olabilirmi idrsi bey

Acaba ana sayfanın yanındakilerden kaynkalanıyor olabilirmi
 

Ekli dosyalar

.

Sadece bu sayfa değil. Diğer sayfalarınızda yer alan renklendirme ve biçimlendirmeleri mümkün olduğu kadar azaltarak deneyin.

.
 
renklendirmeleri sildim hepsini yine bekliyor
1554797106985.png
 
Sayın İdris Serdar bey,
9. penceredeki formülü Excel 2003 için aşağıdaki şekilde yapmaya çalıştım. Takıldı. Lütfen Excel 2003 için nasıl formül düzenleyebiliriz.
Kod:
=eğer(ehatalıysa(DÜŞEYARA($A2;DOLAYLI("'"&İNDİS(SATIR($A$1:$A$100);KAÇINCI(1;--(EĞERSAY(DOLAYLI("'"&SATIR($A$1:$A$100)&"'!A2:A200");$A2)>0);0))&"'!A2:e100");SÜTUN(C1);0));"";DÜŞEYARA($A2;DOLAYLI("'"&İNDİS(SATIR($A$1:$A$100);KAÇINCI(1;--(EĞERSAY(DOLAYLI("'"&SATIR($A$1:$A$100)&"'!A2:A200");$A2)>0);0))&"'!A2:e100");SÜTUN(C1);0))
 
Sayın idris her yolu denedim dosya kaydetmedi..Bunu makro ile getirebilmemiz mümkümü acaba ?
 
Ekteki dosyayı deneyiniz.

Makro kullanılmıştır. "ANA LİSTE" isimli sayfanızdaki butona tıklayıp sonucu gözlemleyin.

Ek olarak dosyanın içinde kullanıcı tanımlı fonksiyonda var. Fakat 1.170 satırlık veride çok iyi performans vermediği için kullanmadım. İncelemeniz için silmedim.

Kullanıcı tanımlı fonksiyon aşağıdadır.

Söz dizimi;

=Sayfalarda_Düşeyara(Aranan_Veri, Aranan_Veri_Sütun_No, İlk_Sayfa_No, Son_Sayfa_No, Veri_Aralığı, Sütun_İndis_Sayısı)


Kullanım şekli (ANA LİSTE F+ hücresi için);

=Sayfalarda_Düşeyara($B4;1;1;50;$A$5:$A$1000;SÜTUN(AK$1))


Kod:
Option Explicit

Function Sayfalarda_Düşeyara(Aranan_Veri As Range, _
                             Aranan_Veri_Sütun_No As Integer, _
                             İlk_Sayfa_No As Integer, _
                             Son_Sayfa_No As Integer, _
                             Veri_Aralığı As Range, _
                             Sütun_İndis_Sayısı As Integer)
    
    Dim Dizi As Object, No As Integer, Sayfa As Worksheet
    Dim Veri As Variant, Son As Long, X As Long, Kriter As Variant
    
    Application.Volatile True
    
    Set Dizi = CreateObject("Scripting.Dictionary")
    
    For No = İlk_Sayfa_No To Son_Sayfa_No
        Set Sayfa = Sheets(CStr(No))
        
        If WorksheetFunction.CountIf(Sayfa.Columns(Aranan_Veri_Sütun_No), Aranan_Veri.Value) > 0 Then
            Veri = Sayfa.Range(Veri_Aralığı.Address).Value
            Son = Sayfa.Cells(Rows.Count, Aranan_Veri_Sütun_No).End(3).Row
            For X = 1 To UBound(Veri)
                If X > Son Then Exit For
                Kriter = Veri(X, 1)
                Dizi(Kriter) = Veri(X, Sütun_İndis_Sayısı)
            Next X
        
            If Dizi.Exists(Aranan_Veri.Value) Then
                Sayfalarda_Düşeyara = Dizi.Item(Aranan_Veri.Value)
                Exit Function
            End If
        End If
    Next
End Function
 

Ekli dosyalar

Ekteki dosyayı deneyiniz.

Makro kullanılmıştır. "ANA LİSTE" isimli sayfanızdaki butona tıklayıp sonucu gözlemleyin.

Ek olarak dosyanın içinde kullanıcı tanımlı fonksiyonda var. Fakat 1.170 satırlık veride çok iyi performans vermediği için kullanmadım. İncelemeniz için silmedim.

Kullanıcı tanımlı fonksiyon aşağıdadır.

Söz dizimi;

=Sayfalarda_Düşeyara(Aranan_Veri, Aranan_Veri_Sütun_No, İlk_Sayfa_No, Son_Sayfa_No, Veri_Aralığı, Sütun_İndis_Sayısı)


Kullanım şekli (ANA LİSTE F+ hücresi için);

=Sayfalarda_Düşeyara($B4;1;1;50;$A$5:$A$1000;SÜTUN(AK$1))


Kod:
Option Explicit

Function Sayfalarda_Düşeyara(Aranan_Veri As Range, _
                             Aranan_Veri_Sütun_No As Integer, _
                             İlk_Sayfa_No As Integer, _
                             Son_Sayfa_No As Integer, _
                             Veri_Aralığı As Range, _
                             Sütun_İndis_Sayısı As Integer)
   
    Dim Dizi As Object, No As Integer, Sayfa As Worksheet
    Dim Veri As Variant, Son As Long, X As Long, Kriter As Variant
   
    Application.Volatile True
   
    Set Dizi = CreateObject("Scripting.Dictionary")
   
    For No = İlk_Sayfa_No To Son_Sayfa_No
        Set Sayfa = Sheets(CStr(No))
       
        If WorksheetFunction.CountIf(Sayfa.Columns(Aranan_Veri_Sütun_No), Aranan_Veri.Value) > 0 Then
            Veri = Sayfa.Range(Veri_Aralığı.Address).Value
            Son = Sayfa.Cells(Rows.Count, Aranan_Veri_Sütun_No).End(3).Row
            For X = 1 To UBound(Veri)
                If X > Son Then Exit For
                Kriter = Veri(X, 1)
                Dizi(Kriter) = Veri(X, Sütun_İndis_Sayısı)
            Next X
       
            If Dizi.Exists(Aranan_Veri.Value) Then
                Sayfalarda_Düşeyara = Dizi.Item(Aranan_Veri.Value)
                Exit Function
            End If
        End If
    Next
End Function
sayın korkhan ayhan merhaba elinize saglık cok güzel olmus ilave etmem gereken bişey varmı ki bu dosyayı indirdim oldugu gibi
 
Butona basıp arkanıza yaslanmanız yeterlidir...
 
Geri
Üst