Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Finde Wort "Beispiel" mit VBA

Forumthread: Finde Wort "Beispiel" mit VBA

Finde Wort "Beispiel" mit VBA
09.10.2003 14:31:28
Fab
Hi

Wie finde ich das Wort "Beispiel", das in irgendeiner Zelle steht, mittels VBA?

Gruss

Fab
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 14:33:04
Felix
Hallo,

schau Dir mal die VBA-Funktion find an. (Hilfe)

Gruß
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 14:41:21
Fab
Hallo Felix

Ich habe die Hilfe angeschaut, werde aber nicht schlau daraus. Das folgende Makro funktioniert jedenfalls nicht:

With ActiveSheet
.Find ("Beispiel")

End With

Gruss Fab
Anzeige
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 14:47:53
GraFri
Hallo



Option Base 1
Option Compare Text

Private Sub CmdStarten_Click()
    Call Suchen_und_anzeigen
End Sub

Sub Suchen_und_anzeigen()
Dim n%, x%, xZelle%, yZelle%
Dim Meldung%, Pos%, Schleife%, y        As Byte
Dim xTabelle()                          As String
Dim Adresse()                           As String
Dim Text                                As String
Dim Bereich                             As Range
Dim Begriff, Suchen()

'Bereich festlegen
Set Bereich = Application.InputBox _
("Bitte den zu durchsuchenden Bereich eingeben " & vbCrLf & _
 "(z.B.:  A1:T200),oder markieren Sie den Such-" & vbCrLf & _
  "bereich im Tabellenblatt.""Bereich festlegen""A1:T200", Type:=8)

' Suchbegriff eingeben
Begriff = InputBox _
("Bitte den zu suchenden Wert eingeben. Sollen 2 Werte" & vbCrLf & _
 "gleichzeitig gesucht werden, dann mit Zeichen  +  " & vbCrLf & _
 "voneinander trennen (z.B.: Summe+die)." & vbCrLf & _
 "ENTER ohne Wert = Abbruch""S U C H M O D U S")
If Begriff = "" Then Exit Sub

Pos = InStr(Begriff, "+")
If Pos Then
    ReDim Suchen(2)
    Suchen(1) = Left(Begriff, Pos - 1)
    Suchen(2) = Right(Begriff, Len(Begriff) - Pos)
    Schleife = 2
Else
    ReDim Suchen(1)
    Suchen(1) = Begriff
    Schleife = 1
End If

Application.ScreenUpdating = False

' Letzte Zelle des Bereiches ermitteln. Diese Zelle wird als Startzelle für
' die Suche deffiniert, da Suche nach dieser Zelle, also in erster Zelle
' des Bereiches beginnt.
With Worksheets(1).Range(Bereich.Address)
    xZelle = .Columns(.Columns.Count).Column
    yZelle = .Rows(.Rows.Count).Row
End With

' Eigentlicher Suchvorgang (in allen Tabellenblättern)
x = 1
For y = 1 To Schleife
For n = 1 To Sheets.Count
With Sheets(n).Range(Bereich.Address)
    Set c = .Find(Suchen(y), After:=Cells(yZelle, xZelle), LookIn:=xlValues)
    If Not Is Nothing Then
        ErsteAdresse = c.Address
        Do
            ReDim Preserve Adresse(x): ReDim Preserve xTabelle(x)
            xTabelle(x) = Sheets(n).Name
            Adresse(x) = c.Address(RowAbsolute:=False, ColumnAbsolute:=False)
            Set c = .FindNext(c)
            x = x + 1
        Loop While Not Is Nothing And c.Address <> ErsteAdresse
    End If
End With
Next n
Next y

' Anzeige der Suchergebnisse
Text = vbCrLf
For n = 1 To x - 1
    Text = Text & xTabelle(n) & Chr(9) & Chr(9) & "Zelle  " & Adresse(n) & vbCrLf
Next n

Application.ScreenUpdating = True

' Die Anzahl der gefundenen Werte ist (x - 1), wenn keiner
' gefunden wurde dann ist x = 1
Select Case x
Case 1
    Meldung = MsgBox("Es wurde kein übereinstimmender Wert gefunden", _
    vbOKOnly, "G E F U N D E N E   W E R T E")
Case 2
    Worksheets(xTabelle(1)).Select
    ActiveSheet.Range(Adresse(1)).Select
    Meldung = MsgBox("Es wurde eine Übereinstimmung in" & vbCrLf & _
    Text & vbCrLf & "gefunden", vbOKOnly, "G E F U N D E N E   W E R T E")
    Exit Sub
Case Else
    For n = 1 To x - 1
    Worksheets(xTabelle(n)).Select
    ActiveSheet.Range(Adresse(n)).Select
    Meldung = MsgBox("Drücken Sie JA, um den nächsten gefundenen " & _
    "Wert zu sehen" & vbCrLf & "Insgesamt gibt es " & (x - 1) & _
    " Übereinstimmungen!" & vbCrLf & Text, vbYesNo, "G E F U N D E N E   W E R T E")
    If Meldung = vbNo Then Exit Sub
    Next n
End Select

End Sub


     Code eingefügt mit Syntaxhighlighter 2.4


mfg, GraFri
Anzeige
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 14:54:25
Fab
Hallo GraFri

Vielen Dank für deine Lösung. Sie ist relativ kompliziert, geht es nicht viel einfacher?

Gruss

Fab
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 15:02:39
Carsten
Hallo Fab,

wenn's immer nur um das Wort "Beispiel" geht, dann so:


Sub suchen()
Cells.Find(what:="Beispiel").Activate
End Sub


Gruß
Carsten
Anzeige
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 15:08:41
Fab
Hallo Carsten

Das ist die Lösung! Danke.

Fab
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 15:09:06
Felix
Vorsicht,

die Find-Funktion merkt sich die Einstellungen der letzten Nutzung, egal ob per VBA oder manuell (Strg-F). Deshalb wäre es sicherer, die anderen Einstellungen auch vorzugeben:


Sub suchen()
Cells.Find(what:="Beispiel", lookin:=xlvalues, lookat:=xlpart).Activate
End Sub


Gruß, Felix
Anzeige
AW: Finde Wort "Beispiel" mit VBA
09.10.2003 15:20:50
Fab
Hallo Felix

Vielen Dank für die Präzisierung. Ich werde sie dazufügen.

Fab
;
Anzeige

Infobox / Tutorial

Wort "Beispiel" mit VBA finden


Schritt-für-Schritt-Anleitung

Um das Wort "Beispiel" in einer Excel-Tabelle mit VBA zu finden, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub suchen()
       Cells.Find(what:="Beispiel").Activate
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle suchen aus der Liste und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass das Wort "Beispiel" tatsächlich in der Tabelle vorhanden ist. Wenn nicht, wird die .Find-Methode kein Objekt zurückgeben.
  • Fehler: "Das Makro konnte nicht gefunden werden"

    • Lösung: Überprüfe, ob du das Makro im richtigen Modul erstellt hast und dass es korrekt benannt ist.
  • Problem: Suchergebnisse werden nicht angezeigt

    • Lösung: Verwende die erweiterte Version der Find-Methode, um die Suchparameter zu spezifizieren, wie im nächsten Abschnitt beschrieben.

Alternative Methoden

Wenn du eine spezifischere Suche benötigst oder die Find-Funktion nicht zu verwenden ist, kannst du die folgenden Methoden ausprobieren:

  1. Erweiterte Suche mit VBA:

    Sub suchen()
       Cells.Find(what:="Beispiel", lookin:=xlvalues, lookat:=xlpart).Activate
    End Sub

    Diese Methode stellt sicher, dass die Suche sowohl in Werten als auch in Formeln durchgeführt wird.

  2. Nutzung einer benutzerdefinierten Funktion:

    • Du kannst auch eine benutzerdefinierte Funktion erstellen, die die Suche durchführt und die Adresse der gefundenen Zelle zurückgibt.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Find-Funktion in Excel effizient nutzen kannst:

  • Einfacher Suchbefehl:

    Sub suchen()
      Dim Zelle As Range
      Set Zelle = Cells.Find(what:="Beispiel")
      If Not Zelle Is Nothing Then
          MsgBox "Wort gefunden in: " & Zelle.Address
      Else
          MsgBox "Wort nicht gefunden."
      End If
    End Sub
  • Mehrere Suchbegriffe:

    Sub suchen()
      Dim Begriffe As Variant
      Begriffe = Array("Beispiel", "Test")
      Dim i As Integer
      For i = LBound(Begriffe) To UBound(Begriffe)
          Cells.Find(what:=Begriffe(i)).Activate
          ' Hier kannst du weitere Aktionen hinzufügen
      Next i
    End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating = False: Wenn du mehrere Suchvorgänge in einer Schleife durchführst, setze Application.ScreenUpdating auf False, um die Performance zu verbessern.

  • Sichere deine Einstellungen: Vor der Verwendung der Find-Funktion, speichere die aktuellen Einstellungen (z.B. LookIn, LookAt), um unerwartete Ergebnisse zu vermeiden.

  • Verwende FindNext: Um alle Vorkommen eines Begriffs zu finden, kannst du die FindNext-Methode nutzen, um durch die gefundenen Zellen zu iterieren.


FAQ: Häufige Fragen

1. Wie kann ich die Suchparameter anpassen?
Du kannst die Find-Methode anpassen, indem du zusätzliche Parameter wie lookin (z.B. xlValues oder xlFormulas) und lookat (z.B. xlPart oder xlWhole) hinzufügst.

2. Funktioniert das in allen Excel-Versionen?
Ja, die Find-Funktion ist in allen modernen Excel-Versionen verfügbar (Excel 2007 und höher). Achte darauf, dass dein Excel-Makro aktiviert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige