- 29 Jun 2021 às 17:41
#65460
Boa tarde, estou com os códigos abaixo que numa tabela de 15 colunas x 11 linhas que combinadas entre si, com uma sequencia de 15 números, ao chegar na última linha da coluna deveria continuar a combinação na primeira linha da próxima coluna a direita, alguém poderia me ajudar com esse comando, abaixo o código que estou usando, roda direitinho mas quando chega na última linha, retorna erro pois tem informação para processar mas não tem espaço:
Sub ListAllCombinations()
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9, xDRg10, xDRg11, xDRg12, xDRg13, xDRg14, xDRg15 As Range 'para cada coluna
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9, xFN10, xFN11, xFN12, xFN13, xFN14, xFN15 As Integer 'para cada coluna
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9, xSV10, xSV11, xSV12, xSV13, xSV14, xSV15 As String 'para cada coluna
Set xDRg1 = Range("B2:B12") 'primeira coluna com informação
Set xDRg2 = Range("C2:C12") 'segunda coluna com informação
Set xDRg3 = Range("D2:D12") 'terceira coluna com informação
Set xDRg4 = Range("E2:E12") 'quarta coluna com informação
Set xDRg5 = Range("F2:F12") '...
Set xDRg6 = Range("G2:G12") '...
Set xDRg7 = Range("H2:H12") '...
Set xDRg8 = Range("I2:I12") '...
Set xDRg9 = Range("J2:J12") '...
Set xDRg10 = Range("K2:K12") '...
Set xDRg11 = Range("L2:L12") '...
Set xDRg12 = Range("M2:M12") '...
Set xDRg13 = Range("N2:N12") '...
Set xDRg14 = Range("O2:O12") '...
Set xDRg15 = Range("P2:P12") '...
xStr = " " 'separador entre os valores combinados
Set xRg = Range("R2") 'célula que iniciará a combinação
For xFN1 = 1 To xDRg1.Count 'para cada For acrescentar um Next
xSV1 = xDRg1.Item(xFN1).Text
For xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
For xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
For xFN6 = 1 To xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Text
For xFN7 = 1 To xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Text
For xFN8 = 1 To xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Text
For xFN9 = 1 To xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Text
For xFN10 = 1 To xDRg10.Count
xSV10 = xDRg10.Item(xFN10).Text
For xFN11 = 1 To xDRg11.Count
xSV11 = xDRg11.Item(xFN11).Text
For xFN12 = 1 To xDRg12.Count
xSV12 = xDRg12.Item(xFN12).Text
For xFN13 = 1 To xDRg13.Count
xSV13 = xDRg13.Item(xFN13).Text
For xFN14 = 1 To xDRg14.Count
xSV14 = xDRg14.Item(xFN14).Text
For xFN15 = 1 To xDRg15.Count
xSV15 = xDRg15.Item(xFN15).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9 & xStr & xSV10 & xStr & xSV11 & xStr & xSV12 & xStr & xSV13 & xStr & xSV14 & xStr & xSV15
Set xRg = xRg.Offset(1, 0) '(1 linhas a pular) (0 na mesma coluna)
Next 'para cada For acrescentar um Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
Sub ListAllCombinations()
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9, xDRg10, xDRg11, xDRg12, xDRg13, xDRg14, xDRg15 As Range 'para cada coluna
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9, xFN10, xFN11, xFN12, xFN13, xFN14, xFN15 As Integer 'para cada coluna
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9, xSV10, xSV11, xSV12, xSV13, xSV14, xSV15 As String 'para cada coluna
Set xDRg1 = Range("B2:B12") 'primeira coluna com informação
Set xDRg2 = Range("C2:C12") 'segunda coluna com informação
Set xDRg3 = Range("D2:D12") 'terceira coluna com informação
Set xDRg4 = Range("E2:E12") 'quarta coluna com informação
Set xDRg5 = Range("F2:F12") '...
Set xDRg6 = Range("G2:G12") '...
Set xDRg7 = Range("H2:H12") '...
Set xDRg8 = Range("I2:I12") '...
Set xDRg9 = Range("J2:J12") '...
Set xDRg10 = Range("K2:K12") '...
Set xDRg11 = Range("L2:L12") '...
Set xDRg12 = Range("M2:M12") '...
Set xDRg13 = Range("N2:N12") '...
Set xDRg14 = Range("O2:O12") '...
Set xDRg15 = Range("P2:P12") '...
xStr = " " 'separador entre os valores combinados
Set xRg = Range("R2") 'célula que iniciará a combinação
For xFN1 = 1 To xDRg1.Count 'para cada For acrescentar um Next
xSV1 = xDRg1.Item(xFN1).Text
For xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
For xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
For xFN6 = 1 To xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Text
For xFN7 = 1 To xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Text
For xFN8 = 1 To xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Text
For xFN9 = 1 To xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Text
For xFN10 = 1 To xDRg10.Count
xSV10 = xDRg10.Item(xFN10).Text
For xFN11 = 1 To xDRg11.Count
xSV11 = xDRg11.Item(xFN11).Text
For xFN12 = 1 To xDRg12.Count
xSV12 = xDRg12.Item(xFN12).Text
For xFN13 = 1 To xDRg13.Count
xSV13 = xDRg13.Item(xFN13).Text
For xFN14 = 1 To xDRg14.Count
xSV14 = xDRg14.Item(xFN14).Text
For xFN15 = 1 To xDRg15.Count
xSV15 = xDRg15.Item(xFN15).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9 & xStr & xSV10 & xStr & xSV11 & xStr & xSV12 & xStr & xSV13 & xStr & xSV14 & xStr & xSV15
Set xRg = xRg.Offset(1, 0) '(1 linhas a pular) (0 na mesma coluna)
Next 'para cada For acrescentar um Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub