Zelle auf in Liste enthaltenen Text prüfen und Listenwert ausgeben

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zelle auf in Liste enthaltenen Text prüfen und Listenwert ausgeben

Beitrag von clag »

Hallo Riswan,

habe mal eine benutzerdefinierte Funktion erstellt die tut was du möchtest.
Einen ZellenText nach einer Reihe von Begriffen zu durchsuchen und wenn ein Solcher gefunden wird wir der ausgegeben.
der Bereich der die Suchbegriffe enhält muss ein Spaltenberech sein und als Text angegeben werden
z.B. so
=EXTRACTIF(B3;"N2:N23")

Code: Alles auswählen

FUNCTION EXTRACTIF(LongText, Search as string)
'diese Funktion ermittelt ob ein Begriff aus dem Bereich Search im String LongText enthalten ist 
oSheet = Thiscomponent.CurrentController.ActiveSheet
sRange = oSheet.GetCellRangeByName(Search)
iScol = sRange.GetRangeAddress.StartColumn
iSrow = sRange.GetRangeAddress.StartRow
	for i=0 to sRange.rows.count -1
		if inStr(LongText,oSheet.GetCellByPosition(iScol,iSrow+i).string) > 0 then
			EXTRACTIF = oSheet.GetCellByPosition(iScol,iSrow+i).string
			exit function
		end if
	next
	EXTRACTIF = ""
End FUNCTION
hier eine beiSpieldatei
finde_marke.ods
(12.85 KiB) 118-mal heruntergeladen
hilf dir das?


Edit: . . . . .

damit die Beispieldatei sofort funktioniert hatte ich die Funktion in der Datei gespeichert,
was aber beim öffnen der Datei unter AOO genau das Gegeteil bewirkte,
nämlich für jede Formel die diese Funktion anwendet eine Fehlermeldung.
siehe viewtopic.php?f=18&t=65983#p256899

Da ich die Funktion ja nur für die Beispieldatei in der Datei abgelegt hatte
und ansonsten Funktionen in die Makro Bibliothek Standard/Funktionen gehören
habe ich Stephans Lösungsvorschlag auf die Schnelle umgesetzt.
(es scheint ja auch nur AOO zu betreffen, lt. Karolus tut es in LO ohne Mecker)
finde_marken_in_Tabelle1.ods
(12.27 KiB) 129-mal heruntergeladen
hoffe jetzt macht es mehr Spaß die beiSpieldatei zu öffnen

clag
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Zelle auf in Liste enthaltenen Text prüfen und Listenwert ausgeben

Beitrag von TrueColor »

für ein paar Basic-Basics ein paar Links:

https://wiki.openoffice.org/wiki/Docume ... ASIC_Guide
http://www.dannenhoefer.de/faqstarbasic/index.html
Suche nach --> Andrew Pitonyak
Auch die F1-Hilfe des Macro-Editors ist nicht zu verachten
System:
LibO 6 + LibO 7
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zelle auf in Liste enthaltenen Text prüfen und Listenwert ausgeben

Beitrag von clag »

Hallo Riswan,
Riswan hat geschrieben:Was ist das für ein Code?
das ist der Coder, der die Benutzerdefinierten Funktion EXTRACTIF() zur Verfügung stellt.
Öffne
Calc > Menü > Extras > Makros > Makros verwalten > Ordner:Meine Makros > Standard > Funktionen > bearbeiten
ganz am Ende den kompletten Code unverändert einfügen und speichern.

Jetzt steht dir die Funktion EXTRACTIF() dauerhaft zur Verfügung
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Zelle auf in Liste enthaltenen Text prüfen und Listenwert ausgeben

Beitrag von clag »

Hallo Riswan,

habe deinen Wunsch nach tabellenblattübergreifender Listenabfrage durch verwendung eines benannten Bereiches realisiert.
Zudem kann der benannte Bereich mehrere Spalten enthalten und leere Zellen im Bereich werden übersprungen.
hier noch eine beiSpieldatei dazu
finde_Markennamen_2.ods
(14.05 KiB) 129-mal heruntergeladen
viel Spaß
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten