Tentu saja bisa pak.
Silahkan lihat di bawah ini.
letakkan di module.
-----------------------------------------------------------------
'Permutation by Edy Wiyono
'CopyRight @2012-12
'Use it freely, but left this comment
Dim jData As Integer
Dim arrDat()
Function isValid(ByVal sData As String) As Boolean
For i = 1 To Len(sData)
s = Mid(sData, i, 1)
j = Replace(sData, s, Space(0))
jj = Len(j)
ss = Len(sData) - 1
If jj = ss Then
isValid = True
Else
isValid = False
Exit For
End If
Next
End Function
Function fArray(ByVal s As String, ByVal t As String, ByVal iDigit As Integer) As Integer
If iDigit > Len(t) Then Exit Function
x = Split(Trim(s), " ")
y = Split(Trim(t), " ")
For i = 0 To UBound(x)
For j = 0 To UBound(y)
s = x(i) & y(j)
If isValid(s) And Len(s) = iDigit Then
jData = jData + 1
'Debug.Print s
ReDim Preserve arrDat(jData - 1)
arrDat(jData - 1) = s
End If
If Len(s) < iDigit Then
fArray s, t, iDigit
End If
Next
Next
End Function
Function Permutasi3(ByVal sWord As String, ByVal iDigit As Integer, ByVal bJum As Boolean) As Variant
jData = 0
ReDim arrDat(0)
fArray sWord, sWord, iDigit
If bJum Then
Permutasi3 = jData
Else
Permutasi3 = Join(arrDat, " ")
End If
End Function
Salam hangat dan jabat erat,
Edy Wiyono
On 12/8/2012 20:17, Hobys Mengamati wrote:
Silahkan lihat di bawah ini.
letakkan di module.
-----------------------------------------------------------------
'Permutation by Edy Wiyono
'CopyRight @2012-12
'Use it freely, but left this comment
Dim jData As Integer
Dim arrDat()
Function isValid(ByVal sData As String) As Boolean
For i = 1 To Len(sData)
s = Mid(sData, i, 1)
j = Replace(sData, s, Space(0))
jj = Len(j)
ss = Len(sData) - 1
If jj = ss Then
isValid = True
Else
isValid = False
Exit For
End If
Next
End Function
Function fArray(ByVal s As String, ByVal t As String, ByVal iDigit As Integer) As Integer
If iDigit > Len(t) Then Exit Function
x = Split(Trim(s), " ")
y = Split(Trim(t), " ")
For i = 0 To UBound(x)
For j = 0 To UBound(y)
s = x(i) & y(j)
If isValid(s) And Len(s) = iDigit Then
jData = jData + 1
'Debug.Print s
ReDim Preserve arrDat(jData - 1)
arrDat(jData - 1) = s
End If
If Len(s) < iDigit Then
fArray s, t, iDigit
End If
Next
Next
End Function
Function Permutasi3(ByVal sWord As String, ByVal iDigit As Integer, ByVal bJum As Boolean) As Variant
jData = 0
ReDim arrDat(0)
fArray sWord, sWord, iDigit
If bJum Then
Permutasi3 = jData
Else
Permutasi3 = Join(arrDat, " ")
End If
End Function
Salam hangat dan jabat erat,
Edy Wiyono
On 12/8/2012 20:17, Hobys Mengamati wrote:
Trims Pak Edy, bisakah diterapkan di Macro / Module Excel?
No comments:
Post a Comment