-
- Destek
-
-
Özel Arama
![]() |
sorgu = "SELECT [Mevcut$].F3, [Mevcut$].F4, [Mevcut$].F1, [Mevcut$].F2 " & _
"FROM [Sayfa1$] INNER JOIN [Mevcut$] ON ([Sayfa1$].F1 = [Mevcut$].F3) AND ([Sayfa1$].F4 = [Mevcut$].F2) " & _
"WHERE ((([Mevcut$].F4)<>[Sayfa1$]![F2]));"
Dim RS As ADODB.Recordset
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & _
"\Mevcut.xlsx;extended properties=""excel 12.0;hdr=no;imex=1"""
Set RS = New ADODB.Recordset ' CreateObject("adodb.recordset")
sorgu = "SELECT [F3] " & _
"FROM " & _
"(SELECT [F3], [F4], First([F2]) as Pr, First([F1]) as Tr " & _
"FROM [Sayfa1$] " & _
"GROUP BY [F3], [F4]) " & _
"as TmpSQL " & _
"GROUP BY [F3] " & _
"HAVING ((Count([F4]))>1);"
RS.Open sorgu, con, 3, 1
If RS.RecordCount = 0 Then Exit Sub
Dim EkleDizi() As Variant
With RS
.MoveLast
.MoveFirst
EkleDizi = .GetRows()
End With
For x = LBound(EkleDizi, 2) To UBound(EkleDizi, 2)
Kyt = Kyt & ", '" & EkleDizi(0, x) & "'"
Next x
Kyt = Mid(Kyt, 3)
Set RS = Nothing: sorgu = Empty
'hy_____aşama________________________________________________________2
Set RS = New ADODB.Recordset 'CreateObject("adodb.recordset")
sorgu = "SELECT [F3], [F4], First([F1]) AS İlkTarih, First([F2]) AS İlkProje " & _
"FROM [Sayfa1$] " & _
"GROUP BY [F3], [F4] " & _
"HAVING (([F3] In (" & Kyt & "))) " & _
"ORDER BY [F3], [F4];"
RS.Open sorgu, con, 3, 1
If RS.RecordCount = 0 Then Exit Sub
Sheets("Sayfa1").Range("a2").CopyFromRecordset RS
Sheets("Sayfa1").Range("a1").Value = "Sipariş Numarası"
Sheets("Sayfa1").Range("b1").Value = "Gönderi Kodları"
Sheets("Sayfa1").Range("c1").Value = "Tarih"
Sheets("Sayfa1").Range("d1").Value = "Proje Adı"
Set RS = Nothing: Set con = Nothing: sorgu = Empty
Dim RS As ADODB.Recordset
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & _
"\Mevcut.xlsx;extended properties=""excel 12.0;hdr=no;imex=1"""
Set RS = New ADODB.Recordset ' CreateObject("adodb.recordset")
sorgu = "SELECT [F3], [F4], First([F1]), First([F2]) " & _
"FROM [Sayfa1$A2:D] " & _
"GROUP BY [F3], [F4];"
RS.Open sorgu, con, 3, 1
If RS.RecordCount = 0 Then Exit Sub
Sheets("Sayfa1").Range("a2").CopyFromRecordset RS
Set RS = Nothing: Set con = Nothing: sorgu = Empty
'hy_____aşama2
Set con = New ADODB.Connection
con.Open "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & _
";extended properties=""excel 12.0;hdr=no"""
Set RS = New ADODB.Recordset 'CreateObject("adodb.recordset")
sorgu = "SELECT F1 " & _
"FROM [Sayfa1$A2:D] " & _
"GROUP BY F1 " & _
"HAVING (((Count(F1))>1));"
RS.Open sorgu, con, 3, 1
If RS.RecordCount = 0 Then Exit Sub
Do Until RS.EOF
kyt = kyt & ", " & RS(0) ' & "'"
RS.MoveNext
Loop
kyt = Mid(kyt, 3)
'hy________________Aşama3
Set RS = New ADODB.Recordset
sorgu = "SELECT F1, F2, F3, F4 " & _
"FROM [Sayfa1$A2:D] " & _
"WHERE (((F1) In (" & kyt & ")));"
RS.Open sorgu, con, 3, 1
If RS.RecordCount = 0 Then Exit Sub
Sheets("Sayfa1").Cells.Clear
Sheets("Sayfa1").Range("a2").CopyFromRecordset RS
Sheets("Sayfa1").Range("a1").Value = "Sipariş Numarası"
Sheets("Sayfa1").Range("b1").Value = "Gönderi Kodları"
Sheets("Sayfa1").Range("c1").Value = "Tarih"
Sheets("Sayfa1").Range("d1").Value = "Proje Adı"
Set RS = Nothing: Set con = Nothing: sorgu = Empty
kyt = kyt & ", " & RS(0)
kyt = kyt & ", '" & RS(0) & "'"
kyt = kyt & ", """ & RS(0) & """"
Dim RS As ADODB.Recordset
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & _
"\Mevcut.xlsx;extended properties=""excel 12.0;hdr=no;imex=1"""
Set RS = New ADODB.Recordset ' CreateObject("adodb.recordset")
sorgu = "SELECT [F3], [F4], First([F1]), First([F2]) " & _
"FROM [Sayfa1$A2:D] " & _
"GROUP BY [F3], [F4];"
RS.Open sorgu, con, 3, 1
If RS.RecordCount = 0 Then Exit Sub
Sheets("Sayfa1").Range("a2").CopyFromRecordset RS
Set RS = Nothing: Set con = Nothing: sorgu = Empty
'hy_____aşama2
Dim sht As Worksheet
Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary
Set sht = ThisWorkbook.Sheets("Sayfa1")
SonStr = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
For i = 2 To SonStr
kriter = sht.Cells(i, 1)
If Not dict.Exists(kriter) Then
dict.Add kriter, 1
Else
dict(kriter) = dict.Item(kriter) + 1
End If
Next
'tekrar kontrolü
For i = SonStr To 2 Step -1
kriter = sht.Cells(i, 1)
If dict(kriter) = 1 Then Rows(i).EntireRow.Delete
Next
Bu forumu görüntüleyenler: Google [Bot] ve 0 misafir