- Katılım
- 4 Nisan 2006
- Mesajlar
- 999
- Excel Vers. ve Dili
- OFFICE 2021 Türkçe
Merhabalar;
Ekteki klasörün içindeki Esas dosya adlı çalışma kitabındaki makro ile klasörün içindeki csv eklentili excel dosyalarını birleştirebiliyorum
fakat faturalan miktarı kısmını kopyalarken miktarın sonuna 000 sıfır koyarak aktarıyor bu durumun olmaması bire bir aktarmasını istiyorum
Nasıl bir ekleme yapabiliriz.
https://www.dosyaupload.com/rxV3
Saygılarla;
Not: Winrar dosya masaüsüne çıkarınız.
Örnek kod
Ekteki klasörün içindeki Esas dosya adlı çalışma kitabındaki makro ile klasörün içindeki csv eklentili excel dosyalarını birleştirebiliyorum
fakat faturalan miktarı kısmını kopyalarken miktarın sonuna 000 sıfır koyarak aktarıyor bu durumun olmaması bire bir aktarmasını istiyorum
Nasıl bir ekleme yapabiliriz.
https://www.dosyaupload.com/rxV3
Saygılarla;
Not: Winrar dosya masaüsüne çıkarınız.
Örnek kod
Kod:
Sub ImportDataFromMultipleWorkbooks()
Dim vaFiles As Variant
Dim wbkToCopy As Workbook
Dim ws As Worksheet
Dim wsa As Worksheet
ThisWorkbook.Activate
Set ws = Sayfa1
un = "Dear " & Environ("UserName")
ms1 = MsgBox("Do You Want to Import Data from Multiple Workbooks", vbInformation + vbYesNo, un)
If ms1 = vbYes Then
ws.Range("A2:AA" & Rows.Count).Clear
lc = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ChDir (Environ("USERPROFILE") & Application.PathSeparator & "Desktop")
vaFiles = Application.GetOpenFilename( _
FileFilter:="Microsoft Excel Workbooks(*.xls;*.xlsx;*.xlsb;*.xlsm;*.csv),*.xls;*.xls;*.xlsx;*.xlsb;*.xlsm;*.csv", _
Title:="Select Files to Proceed", MultiSelect:=True)
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If IsArray(vaFiles) Then
For i = LBound(vaFiles) To UBound(vaFiles)
If vaFiles(i) = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name Then
ms4 = MsgBox("Cannot Open Itself", vbExclamation, un)
GoTo skipfile:
End If
Set wbkToCopy = Workbooks.Open(Filename:=vaFiles(i))
Set wa = ActiveWorkbook.ActiveSheet
wa.Range("A1").Select
wa.Range(Selection, Selection.End(xlDown)).Select
wa.Range(Selection, Selection.End(xlToRight)).Select
Selection.Replace What:="", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
wa.Range("A1").Select
Set wsa = ActiveWorkbook.ActiveSheet
lra = wsa.Cells(Rows.Count, 1).End(xlUp).Row
lrc = wsa.Cells(1, Columns.Count).End(xlToLeft).Column
For c = 1 To lc
For ca = 1 To lrc
If wsa.Cells(1, ca) = ws.Cells(1, c) Then
cn = ca
Exit For
End If
Next ca
For r = 2 To lra
y = ws.Cells(Rows.Count, c).End(xlUp).Offset(1, 0).Row
If c <> lc Then
ws.Cells(y, c) = wsa.Cells(r, cn)
Else
ws.Cells(y, c) = "FileName: " & Mid(ActiveWorkbook.Name, 1, InStr(1, _
ActiveWorkbook.Name, ".csv") - 1)
End If
y = y + 1
Next r
Next c
wbkToCopy.Close savechanges:=False
skipfile:
Next i
ws.Range("A1:AA1").EntireColumn.AutoFit
ms5 = MsgBox("Data Import Finished", vbInformation, un)
Else
ms3 = MsgBox("No Files Selected", vbExclamation, un)
End If
Else
ms2 = MsgBox("Cancelled", vbInformation, un)
End If
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub
Son düzenleme: