Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte spliten und Zelle aktivieren

Werte spliten und Zelle aktivieren
Search
Hallo ich komme einfach seit Ewigkeiten nicht weiter. Und ich hoffe ihr könnt helfen.
Die Zellen der Spalte A sind mit Wertebereichen befüllt: z.B. steht in A1 : "100-200;300;400-500". Nun soll erreicht werden (ideal über eine Textbox / Userform), dass der eingegebene Wert in den Bereichen der Spalte A gesucht wird und die Zelle wo der Wert gefunden wurde aktiviert wird. Wird der eingegebene Wert nicht gefunden, so soll es eine Fehlermeldung geben, ebenso, wenn der Wert doppelt auftritt.
Ich weiß jedenfalls soviel, dass ich mit einer Schleife die Zellwerte erstmal spliten muss - aber leider fehlt es an den Kenntnissen zur Umsetzung. Und die Beispiele im Netz waren bisher wenig hilfreich.
lieben Dank

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Werte spliten und Zelle aktivieren
04.08.2010 20:20:54
Gerd
Hallo Search (passt zur Frage) :-),
was gedenkst Du als Suchbegriff einzugeben? Nur Zahlen?
Gruß Gerd
AW: Werte spliten und Zelle aktivieren
04.08.2010 20:32:40
Search
hallo,
ja, es sind aktuell nur Zahlen, die wie oben geschrieben eingegeben werden. Aber ich muss gestehen, dass irgendwann auch Namensbereiche (als Text) dazu kommen sollen :-) Also z.B. der Bereich A-CAD. Das in eine Formel zu packen wäre für mich natürlich die Krönung. Ich suche jedoch erstmal einen vernünftigen Ansatz.
gruß
AW: Preisfrage
04.08.2010 20:57:51
Gerd
Hallo Search,
wäre Suche nach 420 in A1 ein Treffer oder nur Suche 400 u. Suche 500 --- beim Teilstring 400-500?
Gruß Gerd
AW: Preisfrage
04.08.2010 21:02:40
Search
hi,
danke für die schnelle Antwort,
Bsp. 420 als Wert in der Textbox wäre ein Treffer, wenn in Zelle A1 "100-200;300;400-500" steht. Es sind Wertebereiche die durchsucht werden, da es immer mehrere gibt, werden diese so dargestellt.
gruß
Anzeige
AW: Preisfrage
05.08.2010 14:52:46
Search
Schade- hat keiner eine Idee ?
Beispieldatei
05.08.2010 15:54:37
mpb
Lade mal eine Beispieldatei hoch, damit man erkennt, wie die jeweiligen "Bereiche" in Spalte A angegeben werden.
Gruß
Martin
AW: Beispieldatei
05.08.2010 20:04:00
Search
Hi,
ich hoffe das klappt jetzt mit der Beispiel Datei - Also wenn ich den Suchwert in die Textbox1 eingebe, dann klappt es nur mit den Anfangswerten der Zelle Bsp.: bei "100-200" kann ich nach der 100 suchen, aber nicht nach der 101. Wie gesagt, da müsste sicher die Zelle aufgesplitet werden. Aber ich weiß nicht wie
Hier die Beispieldatei: https://www.herber.de/bbs/user/70927.xls
Anzeige
AW: Nachfrage
05.08.2010 20:21:18
mpb
Hallo,
was sind denn jetzt genau die Trennzeichen in den Einträgen in Spalte A? Nur Semikolon (das wäre besser) oder auch Komma und Doppelpunkt wie in Deiner Beispieldatei (oder sind das nur Tippfehler?)? Und stehen nach den Semikola nie Leerzeichen?
Ist ein Bereich immer durch einen Bindestrich symbolisiert und stehen vor und nach dem Bindestrich immer keine Leerstellen (das wäre sehr gut, wenn es einheitlich so gehandbabt würde)?
Könntest Du statt
100-200;300,400-500
auch
100-200;300-300;400-500
schreiben?
Gruß
Martin
AW: Nachfrage
05.08.2010 20:51:09
Search
Hi,
lieben Dank für die schnelle Antwort.
das war natürlich ein Tippfehler, habe hier zu Hause nur ein 12 Zoll Notebook, da gehts manchmal daneben. :-)
Ja man kann auch 100-200;300-300;400-500 nehmen. Es sind keine Leerzeichen vorhanden, weder vor den Bindestrichen und danach oder vor oder nach den Semikola - nie Leerzeichen. In jeder Zelle in Spalte A wird die Formatierung gleichermaßen vorgenommen.
gruß
Anzeige
AW: Lösungsvorschlag
06.08.2010 09:01:45
mpb
Hallo,
teste mal folgendes Makro:
Sub In_Bereichen_suchen()
Dim Suchwert As Double
Dim i As Double
Dim j As Integer
Dim z As Double
Dim s As Integer
Dim Quelle As Worksheet
Dim Zwi As Worksheet
Dim Treffer As Boolean
On Error GoTo errorhandler
Suchwert = CDbl(InputBox("Bitte Suchwert eingeben!"))
Treffer = False
Set Quelle = ActiveSheet
Worksheets.Add
Set Zwi = ActiveSheet
Quelle.Columns("A:A").Copy Destination:=Zwi.Range("A1")
Zwi.Columns("A:A").TextToColumns Destination:=Zwi.Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=True, OtherChar:="-"
s = Zwi.UsedRange.Columns.Count
z = Zwi.Range("A65356").End(xlUp).Row
For i = 1 To z
For j = 1 To s - 1 Step 2
If Suchwert >= Zwi.Cells(i, j) And Suchwert 

Voraussetzung: Die Bereich sind in dieser Form angegeben: "100-200;300-300;400-500" und beginnen in Zelle A1.
Die Suchwerteingabe erfolgt über eine Inputbox und es wird temporär eine Hilfstabelle erzeugt, die am Ende wieder gelöscht wird. Die gefundene Zelle wird über eine MsgBox angezeigt. Musst Du ggf. noch anpassen.
Gruß
Martin
Anzeige
AW: Lösungsvorschlag
06.08.2010 20:13:01
Search
das klappt ja perfekt, ich danke dir - so hätte ich das nie lösen können,
AW: Lösungsvorschlag
08.08.2010 12:56:53
Search
hallo, eine letzte Frage: ist auch möglich einen Zwischenschritt so einzufügen - dass eine Anzahl der einzelnen Wertebereiche per MsgBox ausgegeben werden ? Bsp. wenn in A1 "100-200;300;400-500" steht, dann soll die Msgbox: Anzahl = 201 ausgeben.
geht das ?
lieben Dank
AW: Lösungsvorschlag
08.08.2010 14:02:21
mpb
Hallo,
versuch's mal hiermit:
Sub In_Bereichen_suchen()
Dim Suchwert As Double
Dim i As Double
Dim j As Integer
Dim k As Integer
Dim z As Double
Dim s As Integer
Dim anz As Integer
Dim Quelle As Worksheet
Dim Zwi As Worksheet
Dim Treffer As Boolean
On Error GoTo errorhandler
Suchwert = CDbl(InputBox("Bitte Suchwert eingeben!"))
Treffer = False
Set Quelle = ActiveSheet
Worksheets.Add
Set Zwi = ActiveSheet
Quelle.Columns("A:A").Copy Destination:=Zwi.Range("A1")
Zwi.Columns("A:A").TextToColumns Destination:=Zwi.Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=True, OtherChar:="-"
s = Zwi.UsedRange.Columns.Count
z = Zwi.Range("A65356").End(xlUp).Row
anz = 0
For i = 1 To z
For j = 1 To s - 1 Step 2
If Suchwert >= Zwi.Cells(i, j) And Suchwert 

Gruß
Martin
Anzeige
AW: Lösungsvorschlag
09.08.2010 09:12:48
Search
ja super, danke - funktioniert perfekt

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige