DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
[SIZE="2"]Private Sub CommandButton1_Click()
Cells.ClearContents
Cells.Borders.LineStyle = xlNone
Cells.Interior.Pattern = xlNone
Dim wb As Workbook
l = 1
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(ThisWorkbook.Path & "\DOSYALAR")
Set dc = f.Files
Set wb = ThisWorkbook
Application.ScreenUpdating = False
For Each DOSYA In dc
If Left(Split(DOSYA.Name, ".")(1), 3) = "xls" Then
Workbooks.Open DOSYA
If Z <> Empty Then p = ","
Z = Z & p & DOSYA.Name
Workbooks(DOSYA.Name).Sheets(1).UsedRange.Copy
wb.Sheets(1).Activate
Range("A" & Cells(Rows.Count, 1).End(3).Row + 1).PasteSpecial
Application.CutCopyMode = False
Range("H" & l & ":H" & Cells(Rows.Count, 1).End(3).Row + 1).Value = DOSYA.Name
l = Cells(Rows.Count, 1).End(3).Row + 1
If UBound(Split(Z, ",")) = 1 Then Exit For
End If
Next
x = Cells(Rows.Count, 1).End(3).Row
For a = 1 To x
If WorksheetFunction.CountIf(Range("b1:b" & x), Cells(a, "b")) = 1 Then
s = s + 1
Range("A" & a & ":H" & a).Copy
Range("I" & s).PasteSpecial
End If
Next
p = 0
For a2 = 1 To Cells(Rows.Count, "I").End(3).Row
If IsNumeric(Cells(a2, "I")) = True Then
dos = Split(Split(Z, ",")(p), ".")(0)
If Split(Cells(a2, "P"), ".")(0) = dos Then
dos = Split(Split(Z, ",")(p + 1), ".")(0)
With Workbooks(dos).ActiveSheet
i2 = .Cells(65500, 1).End(3).Row + 1
.Cells(i2, 1) = .Cells(i2 - 1, 1) + 1
.Cells(i2, 2) = Cells(a2, "J")
.Cells(i2, 3) = CDate(Cells(a2, "O"))
.Cells(i2, 4) = Cells(a2, "K")
.Cells(i2, 5) = Cells(a2, "N")
.Cells(i2, 6) = Cells(a2, "L")
.Cells(i2, 7) = Cells(a2, "M")
.Range("A" & i2 & ":G" & i2).Borders.Weight = xlThin
.Range("A" & i2 & ":G" & i2).Interior.ColorIndex = 4
End With
Else
dos = Split(Split(Z, ",")(p), ".")(0)
With Workbooks(dos).ActiveSheet
i2 = .Cells(65500, 1).End(3).Row + 1
.Cells(i2, 1) = .Cells(i2 - 1, 1) + 1
.Cells(i2, 2) = Cells(a2, "J")
.Cells(i2, 3) = Cells(a2, "L")
.Cells(i2, 4) = Cells(a2, "N")
.Cells(i2, 5) = Cells(a2, "O")
.Cells(i2, 6) = Cells(a2, "M")
.Cells(i2, 7) = CDate(Cells(a2, "K"))
.Range("A" & i2 & ":G" & i2).Borders.Weight = xlThin
.Range("A" & i2 & ":G" & i2).Interior.ColorIndex = 4
End With
End If: End If
Next
Application.ScreenUpdating = True
sor = MsgBox("İŞLEM BİTTİ DOSYALAR KAYDEDİLİP" & vbCrLf & " KAPATILSINMI?", vbYesNo)
If sor = vbYes Then
Application.DisplayAlerts = False
For kayıt = 0 To UBound(Split(Z, ","))
Workbooks(Split(Split(Z, ",")(kayıt), ".")(0)).Close SaveChanges:=True
Next
Application.DisplayAlerts = False
End If
End Sub[/SIZE]
Merhaba... çıkışda sonuc dosyasını veriyi silmeden kaydetmeli
[SIZE="2"]Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
If Cells(Rows.Count, "B").End(3).Row > 2 Then
For n1 = 1 To 3
With Sheets(n1)
.Cells.ClearContents
.Cells.Borders.LineStyle = xlNone
.Cells.Interior.Pattern = xlNone
End With
Next
End If
Application.DisplayAlerts = False
Dim wb As Workbook
L = 1
Set ds = CreateObject("Scripting.FileSystemObject")
Set f = ds.GetFolder(ThisWorkbook.Path & "\DOSYALAR")
Set dc = f.Files
Set wb = ThisWorkbook
[COLOR="Blue"]'DÖNGÜ İLE KLASÖR İÇİNDEKİ DOSYALARI TEK TEK
'AÇIP SAYFALARI KOPYALAYACAK[/COLOR]
For Each DOSYA In dc
If Left(Split(DOSYA.Name, ".")(1), 3) = "xls" Then
Z = Z + 1
Workbooks.Open DOSYA
Workbooks(DOSYA.Name).Sheets(1).UsedRange.Copy [COLOR="Blue"]'KOPYALAYAN BÖLÜM[/COLOR]
wb.Sheets(1).Activate
Cells(Cells(Rows.Count, L).End(3).Row, L).PasteSpecial
Application.CutCopyMode = False
L = L + 8
Workbooks(Split(DOSYA.Name, ".")(0)).Close False
If Z = 2 Then Exit For
End If
Next
Row = Cells(Rows.Count, "B").End(3).Row
If Row < Cells(Rows.Count, "J").End(3).Row Then Row = Cells(Rows.Count, "J").End(3).Row
[COLOR="Blue"]'ZTOPLAMI 0 VE KODLARI AYNI OLANLARIN SİLİNDİĞİ BÖLÜM[/COLOR]
[COLOR="Blue"]'YAN TABLODA BULUNMAYANLAR RENKLENECEK[/COLOR]
For z4 = Row To 1 Step -1
If Cells(z4, "D") = 0 Or Cells(z4, "D") = "" Then Range("B" & z4 & ":G" & z4).Delete Shift:=xlUp
If Cells(z4, "N") = 0 Or Cells(z4, "N") = "" Then Range("J" & z4 & ":O" & z4).Delete Shift:=xlUp
If WorksheetFunction.CountIf(Range("J2:J" & Row), Cells(z4, "B")) = 0 And Cells(z4, "B") <> "" Then Range("B" & z4 & ":G" & z4).Interior.ColorIndex = 3
If WorksheetFunction.CountIf(Range("B2:B" & Row), Cells(z4, "J")) = 0 And Cells(z4, "J") <> "" Then Range("J" & z4 & ":O" & z4).Interior.ColorIndex = 4
If WorksheetFunction.CountIf(Range("B2:B" & Row), Cells(z4, "B")) >= 2 Then Range("B" & z4 & ":G" & z4).Delete Shift:=xlUp
If WorksheetFunction.CountIf(Range("J2:J" & Row), Cells(z4, "J")) >= 2 Then Range("J" & z4 & ":O" & z4).Delete Shift:=xlUp
Next
Rows("1:1").Interior.ColorIndex = xlNone
[A2:A10000] = "": [A2] = 1: [I2:I10000] = "": [I2] = 1
Range("A2").AutoFill Destination:=Range("A2:A" & Cells(Rows.Count, "B").End(3).Row), Type:=xlFillSeries
Range("I2").AutoFill Destination:=Range("I2:I" & Cells(Rows.Count, "J").End(3).Row), Type:=xlFillSeries
[COLOR="Blue"]'AYIKALANAN VERİLER 2. VE 3. SAYFALARA KOPYALANIYOR[/COLOR]
Sheets(1).Columns("A:G").Copy: Sheets(2).Columns("A:G").PasteSpecial: Sheets(2).Cells.Interior.ColorIndex = xlNone
Sheets(1).Columns("I:O").Copy: Sheets(3).Columns("A:G").PasteSpecial: Sheets(3).Cells.Interior.ColorIndex = xlNone
Application.CutCopyMode = False
For Each z3 In Range("G2:J" & Row + 100)
If z3.Column = 7 And z3.Interior.ColorIndex = 3 Then _
Range("J" & z3.Row & ":O" & z3.Row).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
If z3.Column = 10 And z3.Interior.ColorIndex = 4 Then _
Range("B" & z3.Row & ":G" & z3.Row).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
If Cells(z3.Row, "B") = "" Then Range("B" & z3.Row & ":G" & z3.Row).Interior.ColorIndex = xlNone
If Cells(z3.Row, "J") = "" Then Range("J" & z3.Row & ":O" & z3.Row).Interior.ColorIndex = xlNone
Next
[COLOR="Blue"]'SIRA NO LAR YENİLENİYOR[/COLOR]
[A2:A10000] = "": [A2] = 1: [I2:I10000] = "": [I2] = 1
Range("A2").AutoFill Destination:=Range("A2:A" & Cells(Rows.Count, "B").End(3).Row), Type:=xlFillSeries
Range("I2").AutoFill Destination:=Range("I2:I" & Cells(Rows.Count, "J").End(3).Row), Type:=xlFillSeries
Application.ScreenUpdating = True
[F1].Select
MsgBox "VERİ ALMA İŞLEMİ BİTTİ"
End Sub
Private Sub CommandButton2_Click()
If Cells(Rows.Count, "A").End(3).Row < 3 And Cells(Rows.Count, "J").End(3).Row < 3 Then Exit Sub
Application.ScreenUpdating = False
Dim a As Workbook
Dim frmt As Long
Dim kopyayolla As String, dosyam As String
[COLOR="Blue"]'MAKROLAR YEDEK DOSYADA OLMAMASI İÇİN 1. SAYFANIN KOPYALANACAĞI
'YENİ BİR SAYFA OLUŞTURULUYOR.[/COLOR]
Sheets.Add After:=Sheets(1)
ActiveSheet.Name = "KARŞILAŞTIRMA"
Sheets(1).Columns("A:O").Copy
ActiveSheet.PasteSpecial
frmt = Application.DefaultSaveFormat
For Each a In Application.Workbooks
[COLOR="Blue"]'YEDEKLENECEK DOSYA OLUŞTURULUYOR[/COLOR]
dosyam = "RAPOR " & a.Name
Application.DefaultSaveFormat = Workbooks(a.Name).FileFormat
Workbooks(a.Name).Sheets(Array(2, 3, 4)).Copy
kopyayolla = ThisWorkbook.Path & "\" & dosyam
ActiveWorkbook.SaveCopyAs kopyayolla
ActiveWorkbook.Close savechanges:=False
Next
Application.DefaultSaveFormat = frmt
dosyam = vbNullString
kopyayolla = vbNullString
Application.DisplayAlerts = False
Sayfa1.Activate
[COLOR="Blue"]'OLUŞTURULAN 4. SAYFA SİLİNİYOR[/COLOR]
Sheets("KARŞILAŞTIRMA").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "SAYFALAR RAPOR ADIYLA BU DOSYANIN YANINA KAYDEDİLDİ"
End Sub[/SIZE]
Merhabasonuç dosyasında 2 nolu dosyanın var olduğunu düşünerek sadece 1 nolu dosyayı içeri aldırıp aynı işlemleri nasıl yapabiliriz
Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
If Cells(Rows.Count, "B").End(3).Row > 2 Then
For n1 [COLOR="Red"]= 2[/COLOR] To 3
With Sheets(n1)
'....
'....