Suche nach Wortteilen in Zellen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Suche nach Wortteilen in Zellen

Re: Suche nach Wortteilen in Zellen

von MT326 » Mo, 31.03.2025 17:12

Nochmals vielen Dank, es funktioniert.
Hätte ich alleine nie hinbekommen.
Danke und Gruß MT

Re: Suche nach Wortteilen in Zellen

von mikeleb » Mo, 31.03.2025 16:16

Hallo,
wenn ich es richtig gelesen und interpretiert habe gibt es eine undokumentierte Eigenschaft des SearchDescriptors die das leisten sollte:

Code: Alles auswählen

oSearchDescriptor.SearchType=1
Laut der Quelle https://wiki.documentfoundation.org/Doc ... nd_Replace
gibt es die Searchtype
0 ... Formel
1 ... Werte
2 ... Kommentare
entsprechend den Optionen im Dialog "Suchen und Ersetzen".

Re: Suche nach Wortteilen in Zellen

von MT326 » Mo, 31.03.2025 10:34

Hallo nochmal...
Ich hab jetzt doch noch ein kleines Problem.
Das Makro funktioniert perfekt mit meiner Test-Datei in die ich die Artikel und Nummern kopiert hatte.
In meiner Datei mit der ich arbeite habe ich aber keine Zahlen und Strings sondern in den Zellen sind Verknüpfungen auf eine Quelldatei.
Da findet der SearchDescriptor dann halt nix.
Kann man den SearchDescriptor auch nach Zell-Inhalten suchen lassen?
Gruß MT

Re: Suche nach Wortteilen in Zellen

von MT326 » So, 30.03.2025 18:02

Hallo mikeleb,
Vielen vielen Dank!!!!
funktioniert genauso wie ich es mir vorgestellt hatte.
Gruß MT

Re: Suche nach Wortteilen in Zellen

von mikeleb » So, 30.03.2025 17:54

Hallo,

Code: Alles auswählen

Sub Artikel_suchen

 		Artikel=Inputbox("Artikel suchen")

 		odoc = thiscomponent
		oSheet = odoc.Sheets(1).getCellRangeByPosition( 1, 1, 1, 420 )
		oSearchDescriptor = oSheet.createSearchDescriptor()
		oSearchDescriptor.Searchstring = Artikel
		oSearchDescriptor.SearchRegularExpression = True
		oFound = oSheet.Findall(oSearchDescriptor)
		if ofound is nothing then
			msgbox "nix gefunden"
		else
		
			Zellen = ofound.Cells.createEnumeration
			ergebnis=""
			do while zellen.hasmoreelements
				zelle=zellen.nextelement	
				Zeile = Zelle.celladdress.row
				Pos = odoc.Sheets(1).getcellbyPosition(0 ,Zeile)
				nummer = pos.value
				found = zelle.string
				ergebnis=ergebnis & nummer & (" -  ") & found & chr(10)
			loop
			msgbox ergebnis
		end if
		
		
End Sub

Re: Suche nach Wortteilen in Zellen

von MT326 » So, 30.03.2025 17:30

Die Suche soll erfolgen während in Tabelle3 gearbeitet wird.
Um einen Blattwechsel beim Suchen zu vermeiden wollte ich das so lösen.
Die Ergebnisse wollte ich in einer Msgbox anzeigen.
So war zumindest meine Idee.
Gruß MT

Re: Suche nach Wortteilen in Zellen

von mikeleb » So, 30.03.2025 17:00

Hallo,

Code: Alles auswählen

oFound = oSheet.FindFirst(oSearchDescriptor)
findet (wie der Name schon sagt) das erste Auftreten.
Soll die Anzeige per msgbox erfolgen?
Eine wichtige Frage bleibt: Warum nicht einfach die Suchfunktion (Strg+f) nutzen? Damit werden dir alle Ergebnisse angezeigt und auch noch ausgewählt.

Suche nach Wortteilen in Zellen

von MT326 » So, 30.03.2025 16:54

Hallo wieder einmal...
Ich bastele mir gerade ein Makro welches in Tabelle2 Spalte2 nach Teilworten in Zellen
suchen soll und die gefundenen Ergebnisse dann anzeigen soll.
Ich schaffe es aber nur das es mir den ersten Treffer anzeigt.
Schön wäre es wenn alle Treffer angezeigt würden.

Hier mein Code:
edit(Moderator): Code in tags gesetzt

Code: Alles auswählen

Sub Artikel_suchen
                
                Artikel=Inputbox("Artikel suchen")
                odoc = thiscomponent
		oSheet = odoc.Sheets(1).getCellRangeByPosition( 1, 1, 1, 420 )
		oSearchDescriptor = oSheet.createSearchDescriptor()
		oSearchDescriptor.Searchstring = Artikel
		oSearchDescriptor.SearchRegularExpression = True
		oFound = oSheet.FindFirst(oSearchDescriptor)
		if ofound is nothing then
		msgbox "nix gefunden"
		else
		Zelle = ofound.getCellAddress()
		Zeile = Zelle.row
		Pos = odoc.Sheets(1).getcellbyPosition(0 ,Zeile)
		nummer = pos.value
		found = ofound.string
		msgbox nummer & (" -  ") & found
		end if
End Sub
Gruß MT
Hab meine Beispieldatei mal angehängt.
Dateianhänge
Artikel suchen.ods
(32.56 KiB) 604-mal heruntergeladen

Nach oben