Microsoft Office Tutorials and References
In Depth Information
16.1.6 Dynamische Datenüberprüfungslisten
Die VBA-Ecke: Preis in der Preisliste suchen
Erweitern Sie Ihren Kostenvoranschlag mit einer
Funktion, die den Verkaufspreis in der Preisliste sucht, und
schreiben Sie eine Funktion, die mit der
Bedingungsformatierung zusammenarbeitet und alle geschützten
Zellen automatisch sichtbar macht.
Im Praxisbeispiel Kostenvoranschlag sucht die Gültig-
keitsliste nach den zur Kategorie passenden Produkten.
Die Aufteilung der Artikel nach Kategorien in der
Preisliste macht leider eine Berechnung der Produktpreise
über SVERWEIS oder VERWEIS unmöglich, da die
Formel nicht wissen kann, in welcher Einzelliste (Kategorie)
der Artikel zu finden fist.
Abbildung 16.17 Die Firmenliste wird über eine Datenüberprü-
fungsliste angeboten.
Die restlichen Zeilen der Adresse berechnen Sie über
INDEX -Funktionen. Verwenden Sie VERGLEICH() , um
die Zeilennummer der Firma zu finden:
Schreiben Sie eine Funktion, die eine
Artikelbezeichnung in der Preisliste sucht und den entsprechenden
Verkaufspreis ausgibt. Erstellen Sie dazu ein Modul, und
geben Sie den VBA-Code ein:
A4: =INDEX(Kunden[#Alle];VERGLEICH($A$3;
Kunden[Firma];0)+1;3)
A5: =INDEX(Kunden[#Alle];VERGLEICH($A$3;
Kunden[Firma];0)+1;4)
&“ “
&INDEX(Kunden[#Alle];VERGLEICH($A$3;
Kunden[Firma];0)+1;5)
A6: =INDEX(Kunden[#Alle];VERGLEICH($A$3;
Kunden[Firma];0)+1;6)
A8: =INDEX(Kunden[#Alle];VERGLEICH($A$3;
Kunden[Firma];0)+1;7)
&“ “&
INDEX(Kunden[#Alle];VERGLEICH($A$3;Kunden
[Firma];0)+1;8)
Function FindEUR(artikel)
Dim c
’ Funktion wird ständig neu berechnet
Application.Volatile
’ Tabelle und Bereich vorgeben
With Sheets(“ElektroDB“).Range(“A1:P500“)
’ Artikelbezeichnung suchen
Set c = .Find(artikel, LookIn:=xlValues,
lookat:=xlWhole)
’ Wenn nichts zu finden fist, Zelle leer
If Not c Is Nothing And c <> ““ Then
FindEUR = c.Offset(0, 1).Value
Else
FindEUR = ““
End If
End With
End Function
Die persönliche Anrede für den geschätzten Kunden
sollte für Formelspezialisten auch kein Problem sein:
=“Sehr geehrte“ &WENN(LINKS(A4;4)=“Herr“;“r Herr “;“
Frau “)&INDEX(Kunden[#Alle];
VERGLEICH($A$3;Kunden[Firma];0)+1;5)&“, “
Listing 16.1 Funktion zur Suche nach dem VK-Preis
Abbildung 16.18 Formelkunst für Formelkünstler: Die Firmenadresse fist komplett berechnet.
 
Search JabSto ::




Custom Search