DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub test()
Sheets("Sayfa").Select
Set dic1 = CreateObject("Scripting.Dictionary")
son = Cells(Rows.Count, 1).End(3).Row
With dic1
For i = 1 To son
x0 = .Item(Cells(i, "b").Value)
Next i
ver = .keys
.RemoveAll
For Each elem In ver
x0 = .Item(Trim(Split(elem, ":")(0)))
Next elem
ver = .keys
.RemoveAll
For i = 0 To UBound(ver)
.Item(ver(i)) = i + 1
Next i
End With
Set dic2 = CreateObject("Scripting.Dictionary")
Dim w()
With dic2
For i = 1 To son
x0 = .Item(Cells(i, "a").Value)
Next i
ver = .keys
.RemoveAll
For ii = 0 To UBound(ver)
.Item(ver(ii)) = ii + 1
Next ii
End With
ReDim w(1 To dic2.Count, 1 To dic1.Count)
For i = 1 To son
ind1 = dic2.Item(Cells(i, "a").Value)
ver = Cells(i, "b").Value
key = Split(ver, ":")
ind2 = dic1.Item(Trim(key(0)))
ver = Trim(Replace(ver, key(0) & ":", ""))
w(ind1, ind2) = ver
Next i
Sheets("Sayfa1").Select
Sheets("Sayfa1").Cells.ClearContents
ver = Application.Transpose(dic2.keys)
[a2].Resize(dic2.Count, 1).Value = ver
ver = dic1.keys
[b1].Resize(1, dic1.Count).Value = ver
[b2].Resize(dic2.Count, dic1.Count).Value = w
Set dic1 = Nothing
Set dic2 = Nothing
Erase ver, w, key
End Sub
Üstadım emeğinize sağlık ancak maalesef dosyayı indiremiyorum. . .
Dosyanız ektedir.
8 bin satır için işlem süresi çok uzun sürebilir, deneyiniz...
. . .
Veysel Emre emeğine sağlık. Kodlar sorunsuz şekilde çalışıyor.:dua2:Verilerinizi 1.satırdan başlatıp, Sayfa1 isimli bir sayfa ekleyip kodları deneyin.
Veysel Emre emeğine sağlık. Kodlar sorunsuz şekilde çalışıyor.:dua2:
ama, veriyi ihtiyacım olan şekle getirmedi..
daha sonra bu hücreleri html kodları haline getireceğim için, örnekteki gibi olması gerekiyor.
ufak değişikliklerle örnek dosyadaki gibi yukarıda satır başı olmaksızın yanyana getirme şansımız olur mu?
Sub test()
Sheets("Sayfa").Select
son = Cells(Rows.Count, 1).End(3).Row
lst = Range("A1:B" & son).Value
With CreateObject("Scripting.Dictionary")
For i = 1 To son
key = lst(i, 1)
If Not .exists(key) Then
.Add key, key & "|" & lst(i, 2)
Else
.Item(key) = .Item(key) & "|" & lst(i, 2)
End If
Next i
ver = (.items)
End With
Sheets("Sayfa1").Select
Sheets("Sayfa1").Cells.ClearContents
For i = 0 To UBound(ver)
lst = Split(ver(i), "|")
Cells(i + 1, 1).Resize(1, UBound(lst) + 1) = lst
Next i
Erase ver, lst
End Sub
Sub LİSTELE()
Dim X As Long, Satir As Long, Sutun As Integer
Application.ScreenUpdating = False
Range("D:IV").ClearContents
Range("D1") = "YENİ LİSTE"
Satir = 2
For X = 2 To Cells(Rows.Count, 1).End(3).Row
If WorksheetFunction.CountIf(Range("D:D"), Cells(X, "A")) = 0 Then
Cells(Satir, "D") = Cells(X, "A")
Sutun = Cells(Satir, Columns.Count).End(1).Column + 1
Cells(Satir, Sutun) = Cells(X, "B")
Satir = Satir + 1
Else
Set Bul = Range("D:D").Find(Cells(X, "A"), , , xlWhole)
If Not Bul Is Nothing Then
Sutun = Cells(Bul.Row, Columns.Count).End(1).Column + 1
Cells(Bul.Row, Sutun) = Cells(X, "B")
End If
End If
Next
Cells.EntireColumn.AutoFit
Application.ScreenUpdating = True
MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
arkadaşlar merhaba. alt alta olan verilerden tarih kısmını yan yana almam lazım. yani şube ismi teke düşecek ve tarihler yan sütuna yazılacak. bu konuda yardımınızı rica ederim. teşekkürler..
Sub test()
son = Cells(Rows.Count, 1).End(3).Row
lst = Range("A2:B" & son).Value
With CreateObject("Scripting.Dictionary")
For i = 1 To son - 1
key = lst(i, 1)
If Not .exists(key) Then
.Add key, key & "|" & lst(i, 2)
Else
.Item(key) = .Item(key) & "|" & lst(i, 2)
End If
Next i
ver = Application.Transpose(.items)
End With
Range("D2:IV65536").ClearContents
With Range("D2").Resize(UBound(ver), 1)
.Value = ver
.TextToColumns Destination:=Range("D2"), Other:=True, OtherChar:="|"
End With
Cells.EntireColumn.AutoFit
Erase ver, lst
End Sub