Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worte per VBA suchen /zurückgeben

Forumthread: Worte per VBA suchen /zurückgeben

Worte per VBA suchen /zurückgeben
16.04.2013 13:49:31
Michael
Hallo zusammen,
ich habe folgendes "Problem"/ folgende Frage:
in einer Tabelle möchte ich in Spalte "B" eine Bewertung für einen Vorgang abgeben.
Z.B.: Zelle A2= Vorgang1; Bewertung in Zelle B2= gut
A3= Vorgang2; B3= sehr gut
A4= Vorgang3; B4= unbrauchbar
in Zelle B1 soll jetzt die "schlechteste" Bewertung "unbrauchbar" von der VBA-Funktion zurückgegeben werden.
Die Bereiche z.B. B2:B4 sind jedoch variabel, kann auch mal B365:B420 und B425:B431.... heißen und die Zielzelle B1 verhält sich entsprechend - also B364 und B424..... Es soll 3 Bewertungsmöglichkeiten geben. In der fertigen Tabelle wird es später mid. 15 solcher Bereiche auftauchen.
Kann man sowas über über eine VBA-Funktion realisieren, die man über die Zelle B1 aufruft?
Als wenn-dann-abfrage wird das ganze etwas unhandlich.
Vorab vielen Dank,
Gruß Micha

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worte per VBA suchen /zurückgeben
16.04.2013 14:07:19
Klaus
Hi,
per Formel:
=INDEX(A2:A4;MATCH("unbrauchbar";B2:B4;))
aber du hättest ja gerne eine VBA-Funktion. Dann so:
=Schlechteste(A2:A4;B2:B4)
Function Schlechteste(rVorgang, rBewertung)
Dim r As Range
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim sSuch As String
Dim lRow As Long
s1 = "sehr gut"
s2 = "gut"
s3 = "unbrauchbar"
sSuch = s3
If WorksheetFunction.CountIf(rBewertung, s3) = 0 Then
sSuch = s2
If WorksheetFunction.CountIf(rBewertung, s2) = 0 Then
sSuch = s1
End If
End If
lRow = WorksheetFunction.Match(sSuch, rBewertung, False)
Schlechteste = WorksheetFunction.Index(rVorgang, lRow)
End Function
Grüße,
Klaus M.vdT.

Anzeige
AW: Worte per VBA suchen /zurückgeben
16.04.2013 15:00:27
Michael
Hallo Klaus M.vdT,
vielen Dank funktioniert!
Besteht denn auch die Möglichkeit, die Punkte:
s1 = "sehr gut"
s2 = "gut"
s3 = "unbrauchbar"
aus einem Tabellenblatt auszulesen analog Daten,Datenüberprüfung,Liste, damit ich bei Änderung der Begrifflichkeit den Code nicht anpacken muss?
Gruß Micha

Anzeige
AW: Worte per VBA suchen /zurückgeben
16.04.2013 15:07:43
Klaus
Hallo Micha,
antwort auf alle deine Fragen: "ja".
Aber ich kenne ja deinen Tabellenaufbau nicht.
Beispiel, du machst eine Tabelle und nennst sie "Listen". Da schreibst du in A1: "sehr gut" usw. Dann so:
with sheets("Listen")
s1 = .range("A1").value
s2 = .range("A2").value
s3 = .range("A3").value
end with
Du könntest auch die Punkte der Liste direkt in der UDF angeben, dann so:
=Schlechteste(A2:A4;B2:B4,"sehr gut";"gut";"unbrauchbar")
Function Schlechteste(rVorgang as range, rBewertung as range, s1 as string, s2 as string, s3 as  _
string)
Dim r As Range
Dim sSuch As String
Dim lRow As Long
sSuch = s3
If WorksheetFunction.CountIf(rBewertung, s3) = 0 Then
sSuch = s2
If WorksheetFunction.CountIf(rBewertung, s2) = 0 Then
sSuch = s1
End If
End If
lRow = WorksheetFunction.Match(sSuch, rBewertung, False)
Schlechteste = WorksheetFunction.Index(rVorgang, lRow)
End Function

Oder oder oder ...
Wenn es spezieller werden soll, hilft vielleicht eine Musterdatei?
Grüße,
Klaus M.vdT.

Anzeige
AW: Worte per VBA suchen /zurückgeben
16.04.2013 15:48:29
Michael
Hallo Klaus M.vdT,
vielen Dank, ist umgesetzt!!!
Gruß Micha

Danke für die Rückmeldung! owT
16.04.2013 15:49:56
Klaus
.

AW: Worte per VBA suchen /zurückgeben
16.04.2013 14:10:35
GuentherH
Hallo Micha,
Lässt sich als Function mit einer Range-Übergabevariablen realisieren
Public Function Schlechteste(Bewertungsbereich as Range) as string
Aktuell = "Bestens"
for each Bewertung in Bewertungsbereich.cells
if Bewertung >schlechter als
Die ausgestaltung der Bewertung >schlechter als Gruß,
Günther
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige