• DİKKAT

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

Veri İmport Etmek

  • Konbuyu başlatan Konbuyu başlatan miha
  • Başlangıç tarihi Başlangıç tarihi
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
 
Başlarına tanımlı sayfa adını ekleyip deneyin.

Kod:
xWs.Cells(19, 6).Value

Kod:
.Name = xWs.Range("G19").Value
 
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.
 
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)
 
Geri
Üst