Sayfada bulunan verileri toplama

Katılım
17 Aralık 2010
Mesajlar
73
Excel Vers. ve Dili
2016 tr
Sayın hocalarım A ve S sütunları arasındaki bilgiler aylık olarak bana gelmekte. Bende onları başka bir tabloda işlemden geçirmekteyim. Yalnız sütun sıralamaları sabit gelmiyor şu an B sütunundaki veriler bir sonraki ayda G sütununda olabiliyor. Ben mesela B sütununda gözüken AFİŞ başlıklı verileri U sütununda nasıl gösterebilirim. Dosyayı ekte yükledim. Teşekkürler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki fonksiyonları deneyebilirsiniz.

C++:
=YATAYARA(U$1;$A$1:$S$21;SATIR();0)
C++:
=İNDİS($A:$S;SATIR();KAÇINCI(U$1;$A$1:$S$1;0))
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaa,

Alternatif olsun.

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.

Kod:
Sub ADOB_ORNEK()

'Tools / References / Microsoft ActiveX Data Objects x.0 Library (En yüksek değer seçili olmalı)
    Dim connection As New ADODB.connection
    Dim DosyaAdı As String
    Dim query As String
    Dim rs As New ADODB.Recordset
   
    query = "SELECT [AFIS] FROM [Sayfa1$]"
   
    DosyaAdı = ThisWorkbook.FullName
   
    connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DosyaAdı & _
                ";Extended Properties=""Excel 12.0;HDR=Yes;"";"
               
    rs.Open query, connection
   
    Sheets("Sayfa1").Range("U2").CopyFromRecordset rs
   
    connection.Close
   
End Sub
 
Katılım
17 Aralık 2010
Mesajlar
73
Excel Vers. ve Dili
2016 tr
Merhaa,

Alternatif olsun.

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.

Kod:
Sub ADOB_ORNEK()

'Tools / References / Microsoft ActiveX Data Objects x.0 Library (En yüksek değer seçili olmalı)
    Dim connection As New ADODB.connection
    Dim DosyaAdı As String
    Dim query As String
    Dim rs As New ADODB.Recordset
  
    query = "SELECT [AFIS] FROM [Sayfa1$]"
  
    DosyaAdı = ThisWorkbook.FullName
  
    connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DosyaAdı & _
                ";Extended Properties=""Excel 12.0;HDR=Yes;"";"
              
    rs.Open query, connection
  
    Sheets("Sayfa1").Range("U2").CopyFromRecordset rs
  
    connection.Close
  
End Sub
Hocam üstteki hocamın verdiği formüller çalıştı sizin verdikleriniz galiba makro bu konuya çok yabancıyım üsttekileri kullanayım sizede çook teşekkür ederim. minnetarız sizlere
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Her zaman en kısa olan formülü tercih etmelisiniz.

Bu arada YATAYARA fonksiyonunda küçük bir revize yaptım. Son halini kullanmanız daha sağlıklı olacaktır.

Hocam çoooook teşekkür ederim ikiside çalıştı hangisini kullanmamaı tavsiye edersiniz ?
 

MGokboruAtan

Altın Üye
Katılım
20 Kasım 2023
Mesajlar
87
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2310 Derleme 16.0.16924.20054) 64 bit
Altın Üyelik Bitiş Tarihi
20-11-2024
Aşağıdaki fonksiyonları deneyebilirsiniz.

C++:
=YATAYARA(U$1;$A$1:$S$21;SATIR();0)
C++:
=İNDİS($A:$S;SATIR();KAÇINCI(U$1;$A$1:$S$1;0))
Korhan Bey YATAYARA fonksiyonu başlıkları değiştirince çalışmıyor (ya da eksiltme yapınca)
 
Üst