Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
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

Suchbefehl

Suchbefehl
21.03.2009 19:38:08
Karsten
Hallo,
Läßt sich folgender Makrobefehl so umschreiben, dass, wenn in B1 nur ein Teil des Textes steht, die richtige Zelle gefunden wird?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("b1") Then
Dim zellen As Range
For Each zellen In Range("b2:b1000")
If zellen.Value = Range("b1").Value Then
zellen.Select
Exit Sub
End If
Next zellen
End If
End Sub


Danke für eure Hilfe.
Gruß
Karsten

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchbefehl
21.03.2009 19:42:44
Hajo_Zi
Hallo Karsten,
warum schleife? arbeite doch mit find.

Sub test()
'   erstellt von Hajo.Ziplies@web.de 12.04.03
Dim Found As Range
Dim LoLetzte As Long
Dim sSearch As String
sSearch = InputBox("Suchbegriff:", , "test")
If sSearch = "" Then Exit Sub
LoLetzte = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
Set Found = Range("C1:C" & LoLetzte).Find(sSearch, Range("C" & LoLetzte), , xlPart, ,  _
xlNext)
'   kompletter Vergleich und Inhalt
'    Set Found = .Range(.Cells(2, 10), .Cells(5753, 10)).Find(ActiveSheet.Cells(I, 54), _
'        .Cells(5753, 10), xlValues , xlWhole, , xlNext)
If Found Is Nothing Then Exit Sub  'falls nicht gefunden wird sub verlassen
MsgBox Found.Address
End Sub



Anzeige
AW: Suchbefehl
21.03.2009 22:12:35
Karsten
Hallo Hajo,
Besten Dank.
Ich hab mir den Makro aber folgendermaßen umgebaut:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Found As Range
Dim LoLetzte As Long
Dim sSearch As String
sSearch = Range("c1")
If sSearch = "" Then Exit Sub
LoLetzte = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
Set Found = Range("C2:C" & LoLetzte).Find(sSearch, Range("C" & LoLetzte), , xlPart, , _
xlNext)
If Found Is Nothing Then Exit Sub
Found.Select
End Sub


Da der in C1 stehende Inhalt aber auch in weiter unten stehenden Zellen vorkommen kann, bräuchte ich noch eine Inputbox, wo "weitersuchen" steht.
Kannst du mir da noch weiterhelfen?
Gruß
Karsten

Anzeige
AW: Suchbefehl
21.03.2009 22:15:31
Hajo_Zi
Hallo Karsten,

Sub Find_mehrmals()
'* H. Ziplies                                    *
'* 24.11.08                                      *
'* erstellt von Hajo.Ziplies@WEB.de              *
'* http://Hajo-Excel.de
Dim Found As Range
Dim FirstAddress As String
Dim Search As String
Dim LoLetzte As Long
Dim LoI As Long
Dim ByMldg As Byte
Search = Worksheets("Tabelle2").Range("A1")
With Worksheets("Tabelle1")
LoLetzte = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
'   von Peter Haserodt
Set Found = .Range("A1:A" & LoLetzte).Find(Search, .Range("A" & LoLetzte), ,  _
xlWhole, , xlNext)
If Found Is Nothing Then Exit Sub  'falls nicht gefunden wird sub verlassen
If MsgBox("Gefunden in Zelle " & Found.Address(0, 0) & " ist dies richt richtige  _
Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
Found.Interior.ColorIndex = 3
Else
FirstAddress = Found.Address
Do
Set Found = .Range("A1:A" & LoLetzte).FindNext(Found)
If Found.Address = FirstAddress Then Exit Sub
If MsgBox("Gefunden in Zelle " & Found.Address(0, 0) & " ist dies richt  _
richtige Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
Found.Interior.ColorIndex = 3
Exit Do
End If
If Found.Row = LoLetzte Then Exit Do
LoI = LoI + 1
Loop
End If
End With
Set Found = Nothing
End Sub



Anzeige
AW: Suchbefehl
21.03.2009 22:22:13
Karsten
If MsgBox("Gefunden in Zelle " & Found.Address(0, 0) & " ist dies richt richtige _
Zelle !!!" _
, vbYesNo + vbQuestion, "Abfrage") = 6 Then
wird als Syntaxfehler angezeigt.
Gruß
Karsten
AW: Suchbefehl
21.03.2009 22:23:49
Hajo_Zi
Hallo karsten,
das kommt durch das Forum entferne _ und Zeilenumbuch.
Gruß Hajo
AW: Suchbefehl
21.03.2009 22:30:54
Karsten
Hallo Hajo,
Das hab ich hinbekommen. Allerdings hilft mir dein Vorschlag so nicht weiter. Ich brauche keine Einfärbung. Zumindest, wenn ich es mir jetzt selbst anpassen muss, werde ich es so nicht schaffen.
Gruß
Karsten
Anzeige
AW: Suchbefehl
21.03.2009 22:32:38
Hajo_Zi
Hallo Karsten,
ich habe in Deinem Beitrag aber nicht gelesen was Du möchtest.
Gruß Hajo
AW: Suchbefehl
21.03.2009 22:47:24
Karsten
Hallo Hajo,
Ich beschreibe es einfach mal so:
In C1 steht z.B.: "haben"
In C2 steht z.B.: "gehen"
In C3 steht z.B.: "wir haben"
In C4 steht z.B.: "wollen"
In C5 steht z.B.: "wir haben gegessen"
Das gesuchte Inhalt wird immer erst in C1 reingeschrieben und dann mit Enter bestätigt.
Danch die aktive Zelle auf C3 springen, weil der Inhalt auch drin vorkommt. Da es aber noch eine weitere Möglichkeit in weiter unten stehenden Zellen geben kann (C5), sollte sich eine Box mit "weitersuchen" öffnen oder die aktive Zelle zur nächsten Zelle (in diesem Fal C5) springen. Wenn das überspringen mit Application.SendKeys "{F2}" beendet wird, müsste das ganze doch unter Private Sub Worksheet_Change(ByVal Target As Range) gehen, denke ich mal so...
Gruß
Karsten
Anzeige
AW: Suchbefehl
21.03.2009 22:50:30
Hajo_Zi
Hallo Karsten
das verstehe ich nicht, es wird ja erst gefärbt nachdem Du gesagt hast es ist die richtige Zelle.
Gruß Hajo
AW: Suchbefehl
21.03.2009 23:00:05
Karsten
Hallo Hajo,
schon richtig. Nur, ich will ja nicht etwas gefragt, sondern, dass die aktive Zelle gleich in die nächste Zelle mit gleichem Zellinhalt springt.
Gruß
Karsten
AW: Suchbefehl
21.03.2009 23:25:08
Hajo_Zi
Hallo Karsten

Sub Find_Einmal()
'   erstellt von Hajo.Ziplies@web.de 02.06.03
Dim Found As Range
Dim LoLetzte As Long
Dim sSearch As String
sSearch = Worksheets("Tabelle1").Range("A1")
With Worksheets("Tabelle1")
LoLetzte = IIf(IsEmpty(.Range("B65536")), .Range("B65536").End(xlUp).Row, 65536)
Set Found = .Range(Cells(ActiveCell.Row + 1, 2), Cells(LoLetzte, 2)).Find(sSearch, . _
Range("B" & LoLetzte), , xlWhole, , xlNext)
If Found Is Nothing Then Exit 

Sub  'falls nicht gefunden wird 

Sub verlassen
Found.Select
End With
End Sub


Gruß Hajo

Anzeige
AW: Suchbefehl
21.03.2009 23:31:00
Karsten
Danke,
If Found Is Nothing Then Exit
steht schon wieder in rot. Fehlt da noch was?
Gruß
Karsten
AW: Suchbefehl
21.03.2009 23:34:14
Hajo_Zi
Hallo karsten,
solche Code teste ich immer.
Gruß Hajo
AW: Suchbefehl
21.03.2009 23:37:34
Karsten
Hallo Hajo,
bei mir steht trotzdem bei: If Found Is Nothing Then Exit Syntaxfehler.
Was mache ich falsch?
Gruß
Karsten
AW: Suchbefehl
21.03.2009 23:39:11
Hajo_Zi
Hallo Karsten,
ein Nachbau sieht meist anders aus als das Original.
Gruß Hajo
AW: Suchbefehl
21.03.2009 23:41:21
Karsten
Hallo Hajo,
Ich habe nichts nachgebaut. Ich habe nur das Original kopiert.
Gruß
Karsten
Anzeige
AW: Suchbefehl
21.03.2009 23:43:30
Hajo_Zi
Hallo Karsten,
ich habe Deine Datei nachgebaut und bei mir klappt es.
Gruß Hajo
AW: Suchbefehl
21.03.2009 23:48:06
Karsten
Hallo Hajo,
tut mir leid, aber in deinem:

Sub  'falls nicht gefunden wird


Sub verlassen()
Found.Select
End With
End Sub


ist "


Sub  'falls nicht gefunden wird" schon rot, weil vor 

Sub ein Hochkomma fehlt und der ganze Befehl geht nicht, weil With fehlt.
Gruß
Karsten

Anzeige
AW: Suchbefehl
22.03.2009 00:03:50
D.Saster
Hallo,
du solltest dir mal die Mühe machen, zu versuchen, zu verstehen, wie das funktioniert und die durch die Forensoftware eingefügten überflüssigen Zeilenumbrüche entfernen. Dann klappt das auch.
Gruß
Dierk
AW: Suchbefehl
22.03.2009 07:55:57
Karsten
Hallo Dierk,
Alles klar, habe kapiert. was ich löschen muß. Morgenstund hat Gold im Mund.
Gruß
Karsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige