Jeg har to løsningsforslag: En uden makro og en med makro.
Uden Makro: Skriv Længden i A1, minimumsværdierne i E1:E3, maximumsværdierne i F1:F3
I C1 skrives:
=IF(INT($A$1/$E$1)<>INT($A$1/$F$1);INT($A$1/$E$1)&" X "&$A$1/INT($A$1/$E$1);"")
I C2 skrives:
=IF(AND(INT($A$1/$E$2)<>INT($A$1/$F$2);C1="");INT($A$1/$E$2)&" X "&$A$1/INT($A$1/$E$2);"")
I C3 skrives:
=IF(AND(INT($A$1/$E$3)<>INT($A$1/$F$3);C1="";C2="");INT($A$1/$E$3)&" X "&$A$1/INT($A$1/$E$3);"")
Du får dem lige på dansk, så du ikke behøver at rette i formlerne:
C1:
=HVIS(HELTAL($A$1/$E$1)<>HELTAL($A$1/$F$1);HELTAL($A$1/$E$1)&" X "&$A$1/HELTAL($A$1/$E$1);"")
C2:
=HVIS(HELTAL($A$1/$E$1)<>HELTAL($A$1/$F$1);HELTAL($A$1/$E$1)&" X "&$A$1/HELTAL($A$1/$E$1);"")
C3:
=HVIS(OG(HELTAL($A$1/$E$3)<>HELTAL($A$1/$F$3);C1="";C2="");HELTAL($A$1/$E$3)&" X "&$A$1/HELTAL($A$1/$E$3);"")
Alternativet kan du bruge denne makro. Her skal du blot skrive længden i A1 og køre makroen. Så blever resultatet skrevet ud i Cellerne C1:C3:
Sub Opdeling()
Range("C1:C3").ClearContents
Dim Length, Min1, Max1, Min2, Max2, Min3, Max3, Rest As Long
Dim Antal1, Antal2, Antal3 As Integer
Length = Range("A1")
Min1 = 285
Max1 = 300
Min2 = 185
Max2 = 200
Min3 = 100
Max3 = 200
For x = 1 To Int(Length / Min1)
If Min1 * x <= Length And Max1 * x >= Length Then
Cells(1, 3) = x & " x " & Length / x
Exit Sub
End If
Next
For x = 1 To Int(Length / Min2)
If Min2 * x <= Length And Max2 * x >= Length Then
Cells(2, 3) = x & " x " & Length / x
Exit Sub
End If
Next
For x = 1 To Int(Length / Min3)
If Min3 * x <= Length And Max3 * x >= Length Then
Cells(3, 3) = x & " x " & Length / x
Exit Sub
End If
Next
End Sub