Teste 365

Você também pode gostar

Você está na página 1de 2

Sub ExecutarCombinaNumeros()

Dim ws As Worksheet
Dim rngA As Range, rngB As Range
Dim resultStr As String
Dim i As Long, j As Long, k As Long
Dim rowCount As Long
Dim usedCombinations As Object

' Defina a planilha de trabalho


Set ws = ThisWorkbook.Worksheets("Folha1") ' Substitua "Planilha1" pelo nome da
sua planilha

' Defina as faixas de dados em coluna A e coluna B


Set rngA = ws.Range("A1:A5") ' Substitua pelos seus números fixos em coluna A
Set rngB = ws.Range("B1:B15") ' Substitua pelos seus números escolhidos em
coluna B

' Inicialize variáveis


rowCount = 1
resultStr = ""

' Crie um objeto para rastrear as combinações usadas


Set usedCombinations = CreateObject("Scripting.Dictionary")

' Gere as combinações e escreva-as na coluna C


Do While rowCount <= 100
' Combine 15 números (5 da coluna A e 10 da coluna B) de forma ordenada
Dim combinedNumbers(1 To 15) As String
Dim numA As String, numB As String

' Pegue os números da coluna A


For i = 1 To 5
numA = Format(rngA.Cells(i, 1).Value, "00") ' Adicione o zero à frente
dos números com uma casa decimal
combinedNumbers(i) = numA
Next i

' Pegue os números da coluna B


For j = 1 To 10
numB = Format(rngB.Cells(j, 1).Value, "00") ' Adicione o zero à frente
dos números com uma casa decimal
combinedNumbers(5 + j) = numB
Next j

' Ordene os números no array


For i = LBound(combinedNumbers) To UBound(combinedNumbers) - 1
For j = i + 1 To UBound(combinedNumbers)
If combinedNumbers(i) > combinedNumbers(j) Then
Dim temp As String
temp = combinedNumbers(i)
combinedNumbers(i) = combinedNumbers(j)
combinedNumbers(j) = temp
End If
Next j
Next i

' Crie a string de combinação


resultStr = Join(combinedNumbers, ",")
' Verifique se a combinação já foi usada
If Not usedCombinations.Exists(resultStr) Then
' Marque a combinação como usada na coluna D
ws.Cells(rowCount, 4).Value = resultStr
usedCombinations(resultStr) = 1

' Escreva a combinação na coluna C


ws.Cells(rowCount, 3).Value = resultStr
rowCount = rowCount + 1
End If
Loop
End Sub

Você também pode gostar