Daten varibal auslesen ?!



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Daten varibal auslesen ?!
von: stephan
Geschrieben am: 14.05.2002 - 19:03:54

Hallo Zusammen !!

Erstmal ein Lob für das Klasse Forum ! Hier findet man ja zu fast Allem was.

Nun mein Problem:
Habe hier ne Preisliste in denen Warengruppe, Artikelnr, VK1, VK2, ...bis VK10 drinnensteht. Nun gibt es aufgrund der Warengruppe unterscheidliche Rabatte (z.B. wenn WGr = 10 wird der an 3ter Stelle stehende VK genommen). Mein Problem ist nur, daß der Preis dann nicht fest aus der Spalte VK3 genommen werden kann, da die Spalten VK1-VK10 nicht ganz gefüllt sind.
In meinen Beispiel bedeutet dies, daß der 3te VK auch in der Spalte z.B. VK7 stehen kann (halt der 3te gefüllte Zellwert von links gesehen ?!)
Habe wirklich schon den ganzen Tag an ner Lösung gebastelt, allerdings kommt nichts Vernünfiges dabei raus *schäm*

Bin für jede Hilfe dankbar

Tschau

Stephan

nach oben   nach unten

Re: Daten varibal auslesen ?!
von: Klaus Schubert
Geschrieben am: 15.05.2002 - 00:01:22

Hallo Stephan,

wie wär's mit einer benutzerdefinierten Funktion:

Folgenden Code der Funktion unter VBA in ein normales Modul kopieren:


Function VK_Ermitteln(ZelleWG As Range, BereichVK As Range)
Dim Zähler As Integer, X_teWert As Integer, Zelle As Range

Select Case ZelleWG.Value
Case Is = 10: X_teWert = 3 'Wenn Warengruppe 10 , dann 3ten Wert
Case Is = 9: X_teWert = 5 'Wenn Warengruppe 9 , dann 5ten Wert

Case Else: VK_Ermitteln = "WG fehlt!": Exit Function
End Select

For Each Zelle In BereichVK
If Zelle <> "" Then
Zähler = Zähler + 1
If Zähler = X_teWert Then VK_Ermitteln = Zelle.Value: Exit Function
End If
Next
VK_Ermitteln = "Zu wenige VK-Werte!"
End Function

Jetzt markiere in deinen Excel-Blatt eine Zelle, in der hinterher der VK stehen soll und füge über Einfügen/Funktion.../Benutzerdefiniert die neue Funktion VK_Ermitteln ein. ZelleWG ist die Zelle , in der deine Warengruppenzahl steht, BereichVK ist der Bereich , in dem deine VK1 - VK10 - Werte stehen. Hier ein Beispiel:

Angenommen, deine Warengruppenzahlen stehen in Spalte A , dein VK-Wert soll in Spalte B und deine VK1-VK10 stehen in den Spalten D - M. Dann muß die Formel folgendermaßen lauten, wenn der VK - Wert z.B. in Zelle B5 ermittelt werden soll:

=VK-Ermitteln(A5,D5:M5)

Diese Formel kannst du natürlich wie jede andere Formel in die anderen Zellen weiterkopieren.

Über Case Is oben im Code kannst du die Warengruppenzahlen erweitern. In diesem Beispiel wird bei Warengruppe 10 der 3te Wert, bei Warengruppe 9 der 5te Wert ermittelt.

Ich hoffe , dies ist ungefähr, was du wolltest

Gruß Klaus

nach oben   nach unten

Re: Daten varibal auslesen ?!
von: stephan
Geschrieben am: 15.05.2002 - 08:48:10

Hi !

Du bist mein Held !!!
Hat hervoragend geklappt !!

Vielen Dank nochmals

Tschau

Stephan


nach oben   nach unten

Re: Daten varibal auslesen ?!
von: stephan
Geschrieben am: 15.05.2002 - 09:28:04

Noch ne Frage !!

Das klappt echt bestens !
Nur müsste ich auch noch ne Möglichkeit haben, anhand der WG den letzten Wert (VK) in der Spalte zurückzugeben !

z.B. WG11 bedeutet der letzte VK in der Zeile, der natürlich auch an unterschiedlichen Stellen stehen kann ?!

Gibt es noch einen Verbesserungsvorschlag ?

Danke

Stephan


nach oben   nach unten

Re: Daten varibal auslesen ?!
von: Klaus Schubert
Geschrieben am: 15.05.2002 - 18:53:30

Hallo Stephan,

hier noch mal eine abgewandelte Version des Code's. Bei der Eingabe von WG11 wird grundsätzlich der letzte vorhandene Wert angezeigt.


Function VK_Ermitteln(ZelleWG As Range, BereichVK As Range)
Dim Zähler As Integer, X_teWert As Integer, Zelle As Range

If ZelleWG.Value = 11 Then 'Wenn Warengruppe 11 , dann letzten Wert
For Each Zelle In BereichVK
If Zelle <> "" Then VK_Ermitteln = Zelle.Value
Next
Exit Function
End If

Select Case ZelleWG.Value

Case Is = 10: X_teWert = 3 'Wenn Warengruppe 10 , dann 3ten Wert
Case Is = 9: X_teWert = 5 'Wenn Warengruppe 9 , dann 5ten Wert

Case Else: VK_Ermitteln = "WG nicht definiert!": Exit Function
End Select

For Each Zelle In BereichVK
    If Zelle <> "" Then
    Zähler = Zähler + 1
                
            If Zähler = X_teWert Then
            VK_Ermitteln = Zelle.Value: Exit Function
            Else
            VK_Ermitteln = "Zu wenige VK-Werte!"
            End If
    End If
Next

End Function

Gruß Klaus

nach oben   nach unten

Re: Daten varibal auslesen ?!
von: Stephan
Geschrieben am: 15.05.2002 - 20:17:36

Hab vielen Dank für Deine Hilfe !
Super Lösung, genau das was ich gesucht hab !!

Tschau

Kroeni


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Daten varibal auslesen ?!"