السلام عليكم
اتمنى من الاخوة علاج مشكلة ظهور رسالة عن تشغيل الكود "هل تريد استبدال محتويات خلايا الوجهة "
اتمنى من الاخوة علاج مشكلة ظهور رسالة عن تشغيل الكود "هل تريد استبدال محتويات خلايا الوجهة "
Sub TransposeUnique()
Dim d As Object
Dim a As Variant
Dim i As Long
Set d = CreateObject("Scripting.Dictionary")
a = Range("A2", Range("E" & Rows.Count).End(xlUp)).Value
For i = 1 To UBound(a)
d(a(i, 1)) = d(a(i, 1)) & ";" & a(i, 2) & ";" & a(i, 3) & ";" & a(i, 4) & ";" & a(i, 5)
Next i
With Range("G2:h2").Resize(d.Count)
.Value = Application.Transpose(Array(d.Keys, d.Items))
.Columns(2).TextToColumns DataType:=xlDelimited, Semicolon:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 9))
End With
End Sub
أفضل إجابة مقدمة من
YasserKhalil
وهي:
بارك الله فيك أخي العزيز سليم وكل عام وأنت وجميع الأعضاء بخير
إثراءً للموضوع إليك أخي الكريم التعديل التالي ..
عرض الإجابة
إثراءً للموضوع إليك أخي الكريم التعديل التالي ..
Sub TransposeUnique()
Dim a, e, v, d As Object, s As String, i As Long, j As Long, x As Long
With ThisWorkbook.Worksheets("Sheet1")
Set d = CreateObject("Scripting.Dictionary")
a = .Range("A2", .Range("E" & Rows.Count).End(xlUp)).Value
For i = LBound(a, 1) To UBound(a, 1)
s = Empty
For j = LBound(a, 2) + 1 To UBound(a, 2)
s = s & ";" & a(i, j)
Next j
d(a(i, 1)) = d(a(i, 1)) & s
Next i
With .Range("G2")
.Resize(d.Count).Value = Application.Transpose(d.Keys)
For Each e In d.Items
v = Split(Mid(e, 2, Len(e)), ";")
.Offset(x, 1).Resize(, UBound(v) + 1).Value = v
x = x + 1
Next e
End With
End With
End Sub
أعجبني أعجبك هذاإلغ اعجابي 0