3.6k Aufrufe
Gefragt in Tabellenkalkulation von jaenes Einsteiger_in (11 Punkte)
Hallo zusammen,

ich habe folgendes Problem. Ich habe 2 Tabellen

Tabelle 1 hat folgende Spalten:

Artikel | Länge | Breite | Palette?


Tabelle 2

Palette | Länge | Breite
P1 120 80
P2 170 110
P3 80 60

Tabelle 2 kann man also als Stammdaten ansehen. Nun will ich in Tabelle 1 Spalte Palette? abfragen welche Palette in frage kommt.

Wie bekomme ich das "gewuppt" das ich mehrere Alternativen angezeigt bekomme.... kann ja vorkommen.

Danke vorab.

Gruß

Jan

12 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

es liesse sich ueber einen zusaetzlichen parameter realisieren ob die hoehe mit eingeschlossen sein sollte oder nicht,wenn bedarf waere :-)

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

wie sollte es auch anders sein,korrigiert :-))

gruss nighty

Rem Beispiel =PalettenFlaeche(Laenge;Breite;PalettenNamenBereich;PalettenLaengeBereich;PalettenBreiteBereich)
Rem Beispiel =PalettenFlaeche(A2;B2;E1:E3;F1:F3;G1:G3)

Function PalettenFlaeche(Laenge As Range, Breite As Range, Index As Range, Laenge1 As Range, Breite1 As Range) As String
Application.Volatile
Dim Start As Long
Dim Zelle As Range
Dim zaehler As Integer
Start = 1000000
ReDim erg(0) As Integer
ReDim LaengeY(0) As Integer
ReDim BreiteY(0) As Integer
For Each Zelle In Laenge1
LaengeY(zaehler) = Zelle
zaehler = zaehler + 1
ReDim Preserve LaengeY(zaehler)
Next Zelle
zaehler = 0
For Each Zelle In Breite1
BreiteY(zaehler) = Zelle
zaehler = zaehler + 1
ReDim Preserve BreiteY(zaehler)
Next Zelle
zaehler = 0
For Each Zelle In Breite1
erg(zaehler) = LaengeY(zaehler) * BreiteY(zaehler) - Laenge * Breite
zaehler = zaehler + 1
ReDim Preserve erg(zaehler)
Next Zelle
zaehler = 0
For Each Zelle In Index
If erg(zaehler) < Start And erg(zaehler) > 0 And LaengeY(zaehler) >= Laenge And BreiteY(zaehler) >= Breite Then
Start = erg(zaehler)
PalettenFlaeche = Zelle
End If
zaehler = zaehler + 1
Next Zelle
End Function
...