Rechne nächstliegender Wert

18/11/2008 - 22:46 von Thom | Report spam
Hallo liebe NG

Ich habe folgende Situation bei der ich nicht weiter komme.

Ich habe ein Arbeitsblatt (Quelle) mit hinterlegten Produkten und deren
Menge und den dazugehörigen Rabatt. In einem anderen Arbeitsblatt (effektiv)
habe ich die erreichten Zahlen des Produktes. Nun muss in der Spalte E + F
die nàchstmögliche Umsatzstufe (E) und Rabatt (F) berechnet werden.

Eine Beispieldatei, zum besseren Verstàndnis, ist unter folgendem Link
einsehbar.

http://www.conzeptx.ch/TLOG/test50.xls

Ich hoffe mich einigermassen verstàndlich ausgedrückt zu haben. Für mögliche
Tipps freue ich mich und bedanke mich jetzt schon.

Gruss Thom
 

Lesen sie die antworten

#1 Andreas Killer
19/11/2008 - 18:34 | Warnen spam
Thom schrieb:

Ich habe ein Arbeitsblatt (Quelle) mit hinterlegten Produkten und deren
Menge und den dazugehörigen Rabatt. In einem anderen Arbeitsblatt (effektiv)
habe ich die erreichten Zahlen des Produktes. Nun muss in der Spalte E + F
die nàchstmögliche Umsatzstufe (E) und Rabatt (F) berechnet werden.


Für eine Formel ist das ein bißchen schwierig aufgebaut, aber mit einem
kleinen Makro làßt sich das recht einfach machen.

Ist ein bißchen "quick and dirty", funktioniert aber in Deinem Testfile
einandfrei.

Viel Spaß damit, Andreas.

Sub Suche()
'Wo soll gesucht werden?
Set Quelle = Sheets("Quelle")

'Beginne ab Zeile 2
Ys = 2
'Solange etwas in Spalte A steht...
Do While Cells(Ys, 1) <> ""
'Artikel holen
Artikel = Cells(Ys, 1)
'Danach in Spalte A suchen
Set C = Quelle.Range("A:A").Find( _
Artikel, LookIn:=xlValues, LookAt:=xlWhole)
'Wurde er gefunden?
If C Is Nothing Then
'Nein, kein Ergebnis
Menge = 0
Rabatt = 0
Else
'Nur in der Zeile mit dem gefundenen Artikel suchen
Yd = C.Row
'Die gesuchte Menge holen
Menge = Cells(Ys, 3)
'Danach suchen
For Each C In Quelle.Rows(Yd).Cells
'Steht da eine Zahl und ist diese größer?
If IsNumeric(C) And C > Menge Then
'Ja, das Ergebnis zusammenstellen
Menge = Quelle.Cells(Yd, C.Column)
Rabatt = Quelle.Cells(Yd, C.Column + 1)
'Fertig
Exit For
End If
Next
End If
'Ergebnis ausgeben
Range("E" & Ys) = Menge
Range("F" & Ys) = Rabatt
'Nàchste Zeile
Ys = Ys + 1
Loop
End Sub

Ähnliche fragen