Ich berschreibe hier meine Situation und Problematisch. Mit dem Bitte mich zu helfen.
Vielen Dank.
Situation:
Mit drei Parameter sollte man die Formel berechnet, W=HxBxSG, alle drei H, B, und SG. muss man eingeben;
Je nach dem Wert von W, sollte man eine Bestimmte Tabelle erscheinen.
Problematisch:
Das komplizierte Sache liegt beim dem verschiedenen Konditionen,
1.- beim W. Für W sind vier (4) Matrix, eine mit einem Max Wert von 25, dann 30, dann 40 und 50.
2.- Die Matrix haben auch ein min und max H und min und max B.
Matrix 1. H = (1250-1850), B=(300-750) W max 25
Matrix 2. H=(1850-2300), B=(300-900) W max 30
Matrix 3. H=(1850-2500), B=(300-900) W max 40
Matrix 4. H=(2300-2850), B=(300-900) W max 50
Meine Aktuelle Lösung, die noch fehler hat:
Public Sub bereich301()
Dim intStart%, intEnd As Integer
Dim intHoehe%, intBreite%, intDicke%, intM%, intspezGewicht As Integer
Dim dblGewicht As Double
Dim dblTiefe As Double
Dim zeile&, spalte&, lngMaxGewicht As Long
Dim arr As Variant
Dim i As Byte, blnOK As Boolean
arr = Array(25, 30, 40, 50, 50)
With Worksheets("concepta")
intHoehe = .Cells(4, 3)
intBreite = .Cells(5, 3)
intDicke = .Cells(6, 3)
intspezGewicht = .Cells(7, 3)
intM = .Cells(8, 3)
intTiefe = .Cells(11, 3)
dblGewicht = intHoehe / 1000 * intBreite / 1000 * intDicke / 1000 * intspezGewicht
dblTiefe = intBreite - intM + 73
End With
' insert rmo
Select Case intHoehe
Case 1250 To 1850
intStart = 0
intEnd = 1
Case 1851 To 2300
intStart = 1
intEnd = 2
Case 1851 To 2250
intStart = 1
intEnd = 3
Case 1851 To 2500
intStart = 2
intEnd = 3
Case 2301 To 2500
intStart = 3
intEnd = 4
Case Else
intStart = 3
intEnd = 4
End Select
'rmo
Select Case dblGewicht
Case 0 To 25
intStart = 1
intEnd = 2
Case 25.01 To 30
intStart = 1
intEnd = 2
Case 30.01 To 40
intStart = 2
intEnd = 3
Case Else
intStart = 3
intEnd = 4
End Select
' case max gewicht
Select Case dblGewicht
Case Is > 50
intStart = 4
intEnd = 4
MsgBox "Gewicht bei dieser Höhe/Breite/Material zu groß" & vbNewLine & "Bitte; Höhe,Breite oder _
_
_
_
Material ändern!!!"
End Select
' end case gewicht
' for i
For i = intStart To intEnd
If retPos(Worksheets("HAWA-Concepta " & arr(i - 1)).Cells(1, 1), intHoehe, intBreite, zeile, _
_
_
_
spalte, lngMaxGewicht) Then
If lngMaxGewicht > dblGewicht Then
' MsgBox "errechnetes Gewicht unterhalb der Tabelle HAWA " & arr(i - 1) & " in Zelle(" & Chr( _
_
_
_
spalte + 64) & zeile & ")"
Call TabEinAusdrei(arr(i - 1))
Exit For
End If
End If
Next
'If Not blnOK Then MsgBox "Gewicht in allen Tabellen bei dieser Höhe/Breite zu groß" & _
vbNewLine & "Bitte; Höhe oder Breite ändern!!!"
End Sub
Problem:
Mit H=1256, B=700, SG = 1100 dann W = 19.3424kg,
W sollte gut für die Matrix mit max 25, aber genau an diesen Punkt auf dem Matrix hat ein _
Maximum von 17, und gemäss die Public Sub bereich301() geht auf dem Matrix 30, und Matrix 30 hat ein H von 1850-2300, musste nicht erscheinen.
Frage; ist das Problem mit die Case ?
Vielen Dank
Freundliche Grüsse,