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

Forumthread: Wenn nicht gefunden

Wenn nicht gefunden
19.07.2005 10:47:05
Basti
Hallo zusammen,
Habe folgenden Code:

Private Sub CommandButton7_Click()
Dim Fund As Range
Sheets("Tabelle1").Select
Set Fund = Range("b:b").Find("Sich bewegen")
If Find = True Then
ActiveCell = Fund.Offset(1, 2)
UserForm4.Label1.Caption = ActiveCell.Value
UserForm4.Label2.Caption = ActiveCell.Offset(1, 0).Value
UserForm4.Label3.Caption = ActiveCell.Offset(2, 0).Value
UserForm4.Label4.Caption = ActiveCell.Offset(3, 0).Value
UserForm4.Label5.Caption = ActiveCell.Offset(4, 0).Value
Else
UserForm4.Label1.Caption = ""
UserForm4.Label2.Caption = ""
UserForm4.Label3.Caption = ""
UserForm4.Label4.Caption = ""
UserForm4.Label5.Caption = ""
End If
UserForm4.Show
End Sub

Ich möchte halt das wenn er in der Spalte B "sich bewegen" nicht findet das er dann die Label nicht beschreibt, aber mit der Zeile
If Find = True Then
geht das wohl nicht
weiß jemand Rat
Gruß Basti
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn nicht gefunden
19.07.2005 10:48:42
Matthias
Hallo Basti,

If Not Fund Is Nothing Then
'gefunden
Else
'nicht gefunden
End If

Gruß Matthias

AW: Wenn nicht gefunden
19.07.2005 10:55:00
Matthias
Hallo Basti,
und das klappt so auch nicht:
ActiveCell = Fund.Offset(1, 2)
Wenn schon, dann
Fund.Offset(1, 2).Select
GRuß Matthias
Anzeige
AW: Wenn nicht gefunden
19.07.2005 11:01:37
Basti
Hallo Matthias,
vielen Dank für deine Hilfe mit der Zeile
If Not Fund Is Nothing Then
geht es super
was die Codezeile:
ActiveCell = Fund.Offset(1, 2)
anbetrifft, auch die funktioniert super so wie sie ist
Vielen Dank Basti
AW: Wenn nicht gefunden
19.07.2005 11:05:15
Matthias
Hallo Basti,
Aber mit
ActiveCell = ... kannst du doch keine Zelle auswählen.
Gruß Matthias
Anzeige
AW: Wenn nicht gefunden
19.07.2005 11:09:40
Basti
mmmh,
scheinbar doch denn ich habe es genau so im Code stehen und es funktioniert
Gruß Basti
AW: Wenn nicht gefunden
19.07.2005 11:14:25
Matthias
Hallo Basti,
aus der VBA-Hilfe:
ActiveCell
Diese Eigenschaft gibt ein Range-Objekt zurück, das die aktive Zelle entweder im aktiven Fenster (das Fenster im Vordergrund) oder im angegebenen Fenster repräsentiert. Wird im betreffenden Fenster kein Arbeitsblatt angezeigt, führt diese Eigenschaft zu einem Fehler. Schreibgeschützt.
Achso, du willst in die aktive Zelle den Wert der Zelle Fund.Offset(1, 2) reinschreiben!
Sorry, ich stand wohl auf dem Schlauch ;-)
Gruß Matthias
Anzeige
AW: Wenn nicht gefunden
19.07.2005 11:31:38
Basti
Ja sowas in der Art
Gruß Basti
AW: Wenn nicht gefunden
19.07.2005 10:52:51
Michael
Hallo Basti

Sub demo()
Dim i as Long
Dim Fund As Range
for i = 1 to activesheet.usedrange.rows.count
if Cells(i, 2).value = "sich bewegen" then goto gefunden
next i
UserForm4.Label1.Caption = ""
UserForm4.Label2.Caption = ""
UserForm4.Label3.Caption = ""
UserForm4.Label4.Caption = ""
UserForm4.Label5.Caption = ""
exit sub
gefunden:
ActiveCell = Fund.Offset(1, 2)
UserForm4.Label1.Caption = ActiveCell.Value
UserForm4.Label2.Caption = ActiveCell.Offset(1, 0).Value
UserForm4.Label3.Caption = ActiveCell.Offset(2, 0).Value
UserForm4.Label4.Caption = ActiveCell.Offset(3, 0).Value
UserForm4.Label5.Caption = ActiveCell.Offset(4, 0).Value
End Sub

Müsste funktionieren, sicherlich ned die beste Lösung aber naja
mfg Michael
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel: Umgang mit "Nicht gefunden" in VBA


Schritt-für-Schritt-Anleitung

  1. Code anpassen: Stelle sicher, dass Du den richtigen Code in Deinem VBA-Projekt verwendest. Hier ist ein Beispiel, das zeigt, wie Du prüfen kannst, ob ein Wert in einer bestimmten Zelle gefunden wird:

    Private Sub CommandButton7_Click()
       Dim Fund As Range
       Sheets("Tabelle1").Select
       Set Fund = Range("b:b").Find("Sich bewegen")
    
       If Not Fund Is Nothing Then
           ActiveCell = Fund.Offset(1, 2)
           UserForm4.Label1.Caption = ActiveCell.Value
           UserForm4.Label2.Caption = ActiveCell.Offset(1, 0).Value
           UserForm4.Label3.Caption = ActiveCell.Offset(2, 0).Value
           UserForm4.Label4.Caption = ActiveCell.Offset(3, 0).Value
           UserForm4.Label5.Caption = ActiveCell.Offset(4, 0).Value
       Else
           UserForm4.Label1.Caption = ""
           UserForm4.Label2.Caption = ""
           UserForm4.Label3.Caption = ""
           UserForm4.Label4.Caption = ""
           UserForm4.Label5.Caption = ""
       End If
    
       UserForm4.Show
    End Sub
  2. Fehlerbehandlung: Verwende die Zeile If Not Fund Is Nothing Then, um sicherzustellen, dass Dein Code nur dann ausgeführt wird, wenn der gesuchte Wert tatsächlich gefunden wurde.


Häufige Fehler und Lösungen

  • Fehler beim Finden: Wenn Du die Zeile If Find = True Then verwendest, wird das nicht funktionieren. Stattdessen musst Du If Not Fund Is Nothing Then nutzen, um zu überprüfen, ob ein Wert gefunden wurde.

  • Label werden nicht aktualisiert: Wenn der gesuchte Wert nicht gefunden wird, stelle sicher, dass alle Label auf einen leeren Wert gesetzt werden, wie im obigen Beispiel gezeigt.


Alternative Methoden

Eine alternative Methode ist die Verwendung einer Schleife, um durch die Zellen zu iterieren:

Sub demo()
    Dim i As Long
    Dim Fund As Range
    For i = 1 To ActiveSheet.UsedRange.Rows.Count
        If Cells(i, 2).Value = "sich bewegen" Then
            Set Fund = Cells(i, 2)
            Exit For
        End If
    Next i

    If Not Fund Is Nothing Then
        ActiveCell = Fund.Offset(1, 2)
        UserForm4.Label1.Caption = ActiveCell.Value
        UserForm4.Label2.Caption = ActiveCell.Offset(1, 0).Value
        UserForm4.Label3.Caption = ActiveCell.Offset(2, 0).Value
        UserForm4.Label4.Caption = ActiveCell.Offset(3, 0).Value
        UserForm4.Label5.Caption = ActiveCell.Offset(4, 0).Value
    Else
        UserForm4.Label1.Caption = ""
        UserForm4.Label2.Caption = ""
        UserForm4.Label3.Caption = ""
        UserForm4.Label4.Caption = ""
        UserForm4.Label5.Caption = ""
    End If
End Sub

Praktische Beispiele

  • Beispiel 1: Wenn Du nach dem Wert "sich bewegen" suchst und ihn nicht findest, werden die Labels in UserForm4 auf leer gesetzt.

  • Beispiel 2: Nutze die Find Methode, um eine bestimmte Zelle zu finden und mehrere Werte in Labels anzuzeigen, falls der Wert gefunden wurde.


Tipps für Profis

  • Verwendung von Find: Die Find-Methode in VBA ist effizient, um Daten schnell zu suchen. Achte darauf, die Rückgabe von Find korrekt zu überprüfen.

  • Labels aktualisieren: Setze die .Caption-Eigenschaft von Labels nur, wenn Du sicher bist, dass der Wert tatsächlich gefunden wurde. Dies verbessert die Benutzererfahrung.


FAQ: Häufige Fragen

1. Was bedeutet If Not Fund Is Nothing?
Diese Zeile überprüft, ob die Variable Fund einen Wert hat, also ob der gesuchte Begriff gefunden wurde.

2. Kann ich auch andere Zellen als Offset verwenden?
Ja, Du kannst die Offset-Methode nutzen, um beliebige Zellen relativ zur gefundenen Zelle zu adressieren.

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