Veri İmport Etmek

Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Sevgili arkadaşlar, aşağıda yer alan Macro ile dış kaynaktan bir Excel dosyasından Veri import ediyorum. Ancak Veri import ederken kod içersinde kaynak yolu olarak "F18" ve "G18" hücrelerini belirtiyorum. Ancak sadece aktif olan sayfadaki "F18" ve "G18" hücrelerindeki dosya adını kullanarak tüm sayfalara uyguluyor. Ben ise Makronun kullanması için her sayfada "F18" VE "G18" hücrelerinde ayrı ayrı farklı kaynak dosya adları belirttim. Her sayfa için o sayfada bulunan "F18" ve "G18" hücrelerinde yazılı olan kaynak adlarını kullanarak o sayfaya ilgili kaynağın verilerini import etsin. Nasıl çözebilirim bunu? Neyi değiştirmem gerekir? Makroyu paylaşıyorum. Alakadar olabilecek arkadaşlara şimdiden çok teşekkür ederim.
Kod:
Sub DataTransfer()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.Calculation = xlCalculationManual
    For Each xWs In Application.ActiveWorkbook.Worksheets
        If xWs.Name <> "HAM SAYFASI" And xWs.Name <> "DATA SAYFASI" Then
              Dim FilePath As String
              FilePath = "TEXT;C:\Users\MACHA\Desktop\FATURALAR\" & Cells(19, 6).Value
              With xWs.QueryTables.Add(Connection:=FilePath, Destination:=xWs.Range("$A$1"))
                .Name = Range("G19").Value
                .FieldNames = True
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .TextFilePromptOnRefresh = False
                .TextFilePlatform = 65001
                .TextFileStartRow = 1
                .TextFileParseType = xlDelimited
                .TextFileTextQualifier = xlTextQualifierDoubleQuote
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = True
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = True
                .TextFileSpaceDelimiter = False
                .TextFileColumnDataTypes = Array(4, 1, 1, 1, 1, 9, 9)
                .TextFileTrailingMinusNumbers = True
                .Refresh BackgroundQuery:=False
              End With
        End If
    Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    MsgBox "İşlem tamamlandı.", vbInformation, "..:: ZAMAN YAYI ::.."
End Sub
 

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
Başlarına tanımlı sayfa adını ekleyip deneyin.

Kod:
xWs.Cells(19, 6).Value
Kod:
.Name = xWs.Range("G19").Value
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Başlarına tanımlı sayfa adını ekleyip deneyin.

Kod:
xWs.Cells(19, 6).Value
Kod:
.Name = xWs.Range("G19").Value
Sayın @Korhan Ayhan,
Öncelikle ilginiz için çok teşekkür ederim.Belirttiğiniz şekilde revize edip denedim. Ancak bu kez Makro çalışmayarak hata verdi.
Başta verdiğim kodu "F8" ile adım adım uygulayıp her adımda Excel sayfasında neler olduğunu gözlemlediğimde şunu farkettim:
Macroyu çalıştırdığımda o an hangi excel sayfası aktif ise o sayfanın "F19" ve "G19" hücrelerindeki kaynak dosya adını alıp o dosyanın verilerini çalışma kitabındaki tüm sayfalara uyguluyor. Problem de zaten buydu. Neden sadece o anda aktif olan "F19" VE "G19" hücrelerindeki dosya yolunu diğer tüm sayfalar için aynı kabul ediyor ve makro döndüğünde her sayfanın "F19" ve "G19" hücrelerine göre dosya yolu/adını yenilemiyor. Anlayamıyorum, çıldırcam gerçekten :))) Halen uğraşıyorum. Umarım siz bir çözüm bulabilirsiniz.
 
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
Sayın @Korhan Ayhan, sorunun ne olduğunu anladım.:) Çalışma kitabındaki sayfalardan birinde "F19" ve "G19" hücreleri boştu. Makro çalışırken bu hücrelerde veri tanımlanmadığından hata veriyormuş. Diğer sayfalarda ise bu hücrelerde veri vardı. O boş olan sayfanın "F19" VE "G19" hücrelerine de dosya adı (import için) belirtince bu kez hata vermedi. Yardımlarınız için tekrar teşekkür ederim. (y)
 
Üst