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

Wert in Zeile suchen und Position bestimmen | Herbers Excel-Forum

Wert in Zeile suchen und Position bestimmen
03.02.2010 15:56:08
Peter

Liebes Forum
Wie kann ich in einer bestimmten Tabelle mit VBA die Zeile 1 absuchen und die Position bestimmen, in der
1) ein bestimmter String enthalten ist,
2) der Inhalt einem bestimmten String genau entspricht?
Ich möchte dies jeweils beim Verlassen einer bestimmten Tabelle bestimmen - mit Private Sub Worksheet_Deactivate()
Wer kann mir helfen?
Danke, Peter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert in Zeile suchen und Position bestimmen
03.02.2010 16:00:40
Hajo_Zi
Hallo Peter,
benutze Find. Analog zu dem Beispiel.
Set RaFound = .Range("A1:A" & LoLetzte).Find(sSearch, .Range("A" & LoLetzte), , xlWhole, xlByRows, xlNext)
If RaFound Is Nothing Then Exit Sub 'falls nicht gefunden wird Sub verlassen

AW: Wert in Zeile suchen und Position bestimmen
03.02.2010 16:19:38
Peter
Hallo Hajo
Ich habe versucht, daraus eine Funktion zu basteln. Klappt noch nicht (vgl. hochgeladene Datei).
Ich möchte je eine Funktion, die mir den Range liefert, wenn der String genau übereinstimmt und eine, wenn der String enthalten ist.
Danke für jede Hilfe.
Peter
https://www.herber.de/bbs/user/67734.xls
Anzeige
AW: Wert in Zeile suchen und Position bestimmen
03.02.2010 16:25:27
Hajo_Zi
Halo Peter,
im ersten Beitrag stan das Du in einer Zeile suchen willst, jetzt suchst Du in Spalte A.
Die Funktion soll meiner Meinung nach ein String zurückgeben und kein Range.
Ungetestet
Option Explicit
Public Function FFINDEN(sSearch As String) As String
Dim RaFound As Range
Dim LoLetzte As Long
LoLetzte = 26
With Sheets("Daten")
Set RaFound = .Range("A1:A" & LoLetzte).Find(sSearch, .Range("A" & LoLetzte), , xlWhole, _
xlByRows, xlNext)
If Not RaFound Is Nothing Then
FFINDEN = "String stimmt überein"
Else
FFINDEN = "String stimmt nicht überein"
End If
End With
End Function
Gruß Hajo
Anzeige
In Formeln könntest du mit VERGLEICH...
03.02.2010 17:50:32
Luc:-?
...mit (1) und ohne (2) Platzhalter * arbeiten, Peter...
Das kannst du natürlich auch in VBA nachbauen. Für eine Eigenbau-Fkt (udF), darum scheint's wohl zu gehen, kannst du diese Fkt als WorksheetFunction.Match("text", zellbereichvon:bis, 0) einsetzen. Das Arg1 "text" wäre im 1.Fall als "*text*" zu schreiben. Match gibt auf jeden Fall die Position innerhalb von Arg2 wieder, das unbedingt ein Vektor°, also nur aus 1 Zeile oder Spalte, sein muss. Wenn der Text nicht enthalten ist, wird F-Wert #NV (Fehler 2042 bzw xlErrNA) geliefert. Du erhältst also bei Durchlauf nach Fall 1 die lfdNr aller betroffenen Zellen und kannst danach zu Fall 2 genau diese Zellen durch einfachen Vgl [a=b] bzw mit IDENTISCH (WorksheetFunction.Exact) oder StrCompare (oder so ähnlich) auf absolute Textgleichheit prüfen.
Gruß Luc :-?
° Anderenfalls muss zeilen- oder spaltenweise zusammengefasst wdn, was die Regie aber nicht gerade leichter macht. Man kann natürlich auch ganz darauf verzichten, PgmZyklen verwenden und dabei die Zellinhalte unter Verwendung des Operators Like (in der VBE-Hilfe unter Operator zu finden) überprüfen...
Anzeige

341 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige