Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Teil einer Zelle per Makro suchen
29.03.2014 08:23:02
Manu
Hallo,
habe folgende "Probleme": ich kann zwar nach einem kompletten Zellinhalt suchen lassen, aber ich will nur nach den ersten drei Ziffern in einer gewissen Spalte (A) suchen lassen und dann in diese Zeile per Makro springen. Also, egal ob jetzt in der Zeile 289 oder 289,312 oder 289 (A) soll bei Eingabe von 289 die erste Zeile, die so beginnt, angesteuert werden.
Ich will in einer Zelle "x" markiert kriegen, sofern obige Bedingung erfüllt ist.
Vielen Dank!

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

Betreff
Datum
Anwender
Anzeige
AW: Teil einer Zelle per Makro suchen
29.03.2014 09:03:22
Oberschlumpf
Hi Manu
versuch mal (ungetestet)
Sub sbSearch()
Dim lloRow As Long, lstrSuche As String
lstrSuche = "123" 'für 123 deinen Suchteil eingeben
For lloRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Left(Range("A" & lloRow).Value, 3) ) lstrSuche Then
Range("B" & lloRow).Value = "x"
End If
Next
End Sub
Schreib den Code in ein allgemeines Modul.
Der Code wird in der aktuell angezeigten Tabelle ausgeführt.
Hilfts?
Wenn nicht, zeig bitte eine Bsp-Datei mit Bsp-Daten.
Ciao
Thorsten

Testen wäre aber besser gewesen ;-)
29.03.2014 12:26:12
Matthias
Hallo
Aber vielleicht hast Du auch nur die falsche Taste getroffen, was ich eher vermute!
Die letzte schließende Klammer sollte sicher ein = sein.
Allerdings habe ich es so verstanden das Manu die Zelle markieren will
Zitat
Also, egal ob jetzt in der Zeile 289 oder 289,312 oder 289 (A) soll bei Eingabe von 289 die erste Zeile, die so beginnt, angesteuert werden.

Hallo Manu
Eine Variante wäre Diese, um beim Code von Thorsten zu bleiben:
Dim lloRow As Long, lstrSuche As String
lstrSuche = "123" 'für 123 deinen Suchteil eingeben
For lloRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Left(Range("A" & lloRow).Value, 3) = lstrSuche Then
Application.Goto Range("A" & lloRow), 0
Exit For
End If
Next
Gruß Matthias

Anzeige
AW: Testen wäre aber besser gewesen ;-)
29.03.2014 12:30:40
Oberschlumpf
Hi Matthias
Jo, anstelle ) wäre = besser :-)
Testen ging ja nich, weil keine Bsp-Datei vorhsnden^^
Und vielleicht hast du aber mit .GoTo recht.
Ich hatte den Satz "Ich will in einer Zelle "x" markiert kriegen" so interpretiert, dass sie in der gefundenen Nachbarzelle ein "x" haben möchte.
Ciao
Thorsten

AW: Teil einer Zelle per Makro suchen
29.03.2014 13:09:38
Manu
Hallo,
vielen Dank für die Antworten_: es geht mir um eine nicht auf 289 begreczte Antwort, d. h. ich gebe im ersten Schritt 289 oder andere 3 Ziffern ein und dannn...

AW: Teil einer Zelle per Makro suchen
29.03.2014 13:20:18
Oberschlumpf
Hi Manu
ändere in meinem Code diese Zeile
If Left(Range("A" & lloRow).Value, 3) ) lstrSuche Then
um in
If Left(Range("A" & lloRow).Value, 3) = lstrSuche Then
Da war mir halt der Tippfehler mit dem = unterlaufen
Du hast nicht mal geschrieben, was denn der Code mit deiner Datei "anstellt".
Hast du den Code überhaupt ausprobiert?
Und dann bat ich dich um eine Bsp-Datei, wenn meine Idee nicht hilft. Wo is denn die Datei?
Die oben beschriebene Zeile überprüft übrigens den Inhalt in Spalte A. Und NUR, wenn die ersten 3 Zeichen dem entsprechen, was du in lstrSuche = "123" vorgeben musst, dann ist die Zeile gefunden, und ein "x" wird in die Nachbarzelle eingetragen.
Bin mal auf dein Feedback neugierig.
Ciao
Thorsten

Anzeige
AW: Teil einer Zelle per Makro suchen
30.03.2014 09:42:18
Manu
Hallo Mathias,
leider habe ich mich nicht genügend klar ausgedrückt, sorry:
Ich brauche eine Box, die mich fragt, nach was ich suchen will, dann gebe ich die 3 Ziffern ein und dann soll er suchen...
Das konkrete Beispiel"suche nach 123 hat bestens gefunzt:
Dim lloRow As Long, lstrSuche As String
lstrSuche = "123" 'für 123 deinen Suchteil eingeben
For lloRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Left(Range("A" & lloRow).Value, 3) = lstrSuche Then
Application.Goto Range("A" & lloRow), 0
Exit For
End If
Next
Grüsse
Manu

Anzeige
benutze eine InputBox ...
30.03.2014 10:19:31
Matthias
Hallo
Ich bleib mal beim QuellCode von Thorsten
Option Explicit
Sub Manu()
Dim lloRow As Long, lstrSuche As String
lstrSuche = InputBox("Nach was soll gesucht werden", " Suchen", 123)
If StrPtr(lstrSuche) = 0 Or Len(Trim(lstrSuche)) 
Gruß Matthias

AW: benutze eine InputBox ...
30.03.2014 17:25:54
Manu
Cool, echt cool, es ist genau, was ich gesucht...

Danke für die Rückmeldung ... owT
30.03.2014 18:02:55
Matthias

AW: Teil einer Zelle per Makro suchen
29.03.2014 18:59:03
Ralf
Hi,
ich mache sowas immer mit .Range.Find(what:=suchstring, lookat:=xlpart)
in der Hilfe steht ein schönes Beispiel dazu:
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address  firstAddress
End If
End With
auf deine Bedürfnis angepasst, sollte das in etwa so aussehen:
dim c as range
With Worksheets("deinblatt").columns(1).usedrange
Set c = .Find(deinsuchstring, lookin:=xlValues, lookat:=xlpart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
if left(c.Value,3) = deinsuchstring then c.offset(,1)="x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address  firstAddress
End If
End With

Gruß
Ralf

Anzeige
AW: Teil einer Zelle per Makro suchen
30.03.2014 09:17:04
Manu
Hallo,
leider gibt er, wenn ich den Makro ausführe, den Laufzeitfehler 9 Index ausserhalb des gültigen Bereichs zurück. Woran liegt das?
Grüsse
Manu

AW: Teil einer Zelle per Makro suchen
30.03.2014 09:25:28
hary
Moin Manu
Hast du den Blattnamen angepasst?
Worksheets("deinblatt")
Anstelle "deinblatt" muss der Blattname deines Blattes rein.
gruss hary

AW: Teil einer Zelle per Makro suchen
30.03.2014 17:04:29
Manu
Hallo Ralf,
ja habe ich. Er gibt mir wahlweise 109
oder 438
Progranm unterstützt diesen Befehl nicht zurück.
Liiebe GRüsse
Manu

AW: Teil einer Zelle per Makro suchen
30.03.2014 17:10:35
Oberschlumpf
Hi Manu
Nun ist Rätselraten mit der Hilfe von Hary angesagt.
Was ist denn so schwer daran, dass du (d)eine (Bsp)Datei zeigst?
Wenn wir die Datei sehen, deine Frage verstanden haben, dann können wir doch direkt in der Datei Korrekturen vornehmen.
Aber so machen wir weiter, dass wir dir schreiben "mach das da oder versuch es dort".
Blöd nur, wenn du (noch) nicht weßt, wo "da" oder "dort" ist, oder auch blöd, wenn wir etwas falsch verstanden haben.
Ciao
Thorsten
Anzeige

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige