VBA bestimmtes Wort in eienr Excel Tabelle finde

Hallo,

ich bin in VBA leider überhaupt nicht bewandert.

Ich möchte wissen ob im aktuellen Tabellenwort ein bestimmtes Wort vorkommt, wenn ja, soll eine Textbox darauf hinweisen

Hallo Werner,

bitte konkretisiere „im aktuellen Tabellenwort“. Meinst Du damit das Wort in der aktuellen aktiven Zelle?

Gruß
Michael

Hallo,

sollte heißen Tabellenblatt
Gruß
Werner

Hallo,

sollte heißen Tabellenblatt
Gruß
Werner

Hallo Werner,

das macht die Sache ein wenig klarer. Noch eine Frage:
Woher kommt das Wort, das gesucht werden soll? Willst Du das über eine Maske eingeben?

Gruß
Michael

Hallo,
nein, das bleibt stets gleich, z. B. „Dokument“
Gruß
Werner

Was für eine Textbox? soll sich öffnen.

Hallo,
nein, das bleibt stets gleich, z. B. „Dokument“
Gruß
Werner

Hallo Werner,

hier der Code:

Sub Suchen()

Dim aBegriff As String
Dim rFind As Range

aBegriff = „Dokument“

Set rFind = Cells.Find(What:=aBegriff, After:=Cells(1, 1), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not rFind Is Nothing Then
MsgBox "Suchbegriff " & aBegriff & " gefunden in Zelle: " & rFind.Address
End If

End Sub

Du mußt nur den Wert für aBegriff entsprechend Deinem Suchbegriff ändern

Gruß
Michael

Hallo,
das ist eine sehr unklare Aufgabenstellung (was ist mit Wort im Tabellenwort gemeint?)! Normalerweise sucht man Text in einer Tabelle mit der Suchfunktion (im Menu unter Bearbeiten), hier kann man steuern, in welchem Bereich man suchen will etc. Aber das ist wohl nicht gemeint? Suchen mit VBA ist relativ einfach, aber ein bisschen Kenntnisse braucht man schon. Also:
Man kann in einem Tabellenblatt jede Zelle mit Sheets(…).Cells(row,col)[.Value] in einer Schleife über row und col abfragen und somit mit dem Vorgabewert vergleichen und bei Übereinstimmung Aktionen (Einfärben, MsgBox, …) veranlassen. Aber Vorsicht: hier muss man natürlich selbst auf Groß-/Kleinschreibung und Teilstrings achten. Und sich vor allem überlegen, wann und wie die Suchfunktion gestartet werden soll. Also erst mal klar werden über die Aufgabenstellung.
Viel Erfolg

Hallo,

sorry, wenn ich mich unpräzise ausgedrückt habe. Also

Ich habe eine Excel Tabelle. Im ersten Datenblatt (Tabelle1) stehen Datensätze. Nun möchte ich per VBA überprüfen können, ob im Feld „Strasse“ (Spalte 2) ein bestimmtes Wort z.B. „Dokument“ beinhaltet ist. Dieses Wort ändert sich nicht.
Wenn nein, soll gar nichts geschehen,
wenn ja, soll

  1. sich eine MsgBox öffnen mit dem Hinweis „“Dokument“ ist in der Datenbank enthalten“
  2. die jeweiligen E-Mailadressen aus den Datensätzen in denen „Dokument“ vorkommt sollen kopiert werden und in Tabelle2 in den Zellen beginnend bei A1 eingefügt werden. Die Spalte mit den E-Mailadresen ist beschriftet mit E-Mail und stets die Spalte 5.
    Leider habe ich von VBA nur sehr wenig Ahnung. Ich habe es schon mit einigen Lösungen aus dem Netz versucht, aber leider ist die Problemstellung überall etwas anders und ich kam zu keiner Lösung.
    Ich hoffe Ihr habt mit einem Anfänger etwas Geduld.

Gruß
Werner

Also, wie bereits beschrieben: eine Suchschleife über die Quelltabelle codieren und bei einem Treffer die Ergebnisse in der anderen Tabelle ablegen. Dazu ein paar Tipps:

  • die Zellen grundsätzlich mit dem Tabellennamen adressieren, also
    Dim name_1 As String
    Dim row_1 As Integer
    Dim col_1 As Integer
    name_1 = „…“
    For row_1 = 1 To
    For col_1 = 1 To
    If Sheets(name_1).Cells(row_1, col_1) = Then

    End If
    Next col_1
    Next row_1
    Wenn die Zeilen- und Spaltengrenzen und unbekannt sind kann man sich ggf. wie folgt helfen: erste Zeile und Spalte enthalten immer einen Wert, z.B. Überschrift, lfd. Nummer etc. Dann kann die Schleife lauten:
    row_1 = 1
    Do While Sheets(name_1).Cells(row_1, 1) vbnullstring
    If … Thend
    End If
    row_1 = row_1 + 1
    Loop
    Natürlich die innere Schleife über die Spalten genauso. Beim Treffer kann man die Zieltabelle analog adressieren, also Sheets(name_2).Cells(row_2, col_2) = Sheets(name_1).Cells(row_1, col_1), bei einer Qualifizierung mit Sheets(…) muss die Tabelle nicht aktiviert werden.
    Zur Aktivierung kann man eine Schaltfläche in der Quelltabelle installieren und mit dem Unterprogramm verbinden, dann langt ein Click auf diese Schaltfläche.
    So, nun sollte es aber langen, viel Erfolg
    Rainer

Hallo Werner,

das geht bestimmt. Jedoch verstehe ich nicht was das Tabellenwort ist? Soll zur Meldung ein Fenster aufgehen, oder reicht eine farbliche Markierung? Ist es immer das selbe Wort? Wie ist die Tabelle aufgebaut?

Wenn Du dir vba im Grundsatz ansehen willst versuch mal den Makrorekorder. Einschalten und dann die Suchen Funktion in Excel benutzen. Danach den Rekorder beenden und danach den Code im Visual-Editor ansehen.

Gruß
Thomas

Hallo Thomas,

die Tabelle hat mehrere Felder (Name, Strasse, PLZ…). Das gesuchte Wort bleibt stets gleich, muß also nicht abgefragtwerden, sonders kann im code integriert sein.
Wenn das Wort gefunden wurde, soll eine Messagebox aufgehen mit einem Hinweis, daß das Wort in einem Datensatz enthalten ist.
Das mit dem Markrorekorderhab ich schon versucht, aber eine reine Suche wird nicht aufgezeichnet, nur wenn ich suchen und ersetzen verwende, aber das will ich nicht.

Hallo,
ich hab´s mal versucht
Sub versuch()

Dim name_1 As String
Dim row_1 As Integer
Dim col_1 As Integer
name_1 = „tabelle1“
For row_1 = 1 To 50
For col_1 = 1 To 20
If Sheets(name_1).Cells(row_1, col_1) = Then MsgBox „der Suchbegriff wurde gefunden“
End If
Next col_1
Next row_1
row_1 = 1
Do While Sheets(name_1).Cells(row_1, 1) vbNullString
If Sheets(name_1).Cells(row_1, col_1) = Then
End If
row_1 = row_1 + 1
Loop
End Sub
komm aber leider nicht weiter. Wo liegt denn der Fehler?

Oje, da fehlt aber viel Verständnis für Programmierung! Sorry, aber vielleicht solltest Du es mal mit Beispielen aus der Hilfe versuchen. Trotzdem, aber bitte zum letzten Mal:

  1. Was soll der Ausdruck … = ? Das wird doch von VBA schon als syntaktisch falsch erkannt, gemeint war dass hier der Suchbegriff stehen soll, entweder als Variable oder String wie z.B. „Anton“
  2. Was soll If … Then End If? Falls Bedingung zutrifft nichts tun, sonst auch nichts?
  3. Der Name in Sheets(…) ist Case-sensitiv, d.h. dann wohl „Tabelle1“
    Also, viel Erfolg, aber bitte nicht mit solchen Trivialitäten belästigen.