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

Find

Find
Bernd
ich bastele schon eine Weile am Find Befehl, habe ich bisher wenig verwendet. Im Bereich _ befindet sich eine Zeichenkombination (im Beispiel Variable x), von der ich nur wissen will, existiert diese oder existiert diese nicht. Ich bekomme aber, egal ob ich einen existierenden oder einen nicht vorhandenen Wert der Variablen x zuordne, immer die Antwort nicht gefunden. Wo liegt mein Denkfehler

Private Sub CommandButton4_Click()
Dim c As Object
Dim bereich As Range
x = "A"
With Sheets("Auswahldaten")
.Activate
Set c = bereich.Find(x, LookIn:=xlValues)
End With
If  c Is Nothing Then
MsgBox "NICHTS GEFUNDEN"
Else
MsgBox "Gefunden"
End If
End Sub

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Find
12.06.2012 07:58:55
Heiko
Hallo Bernd,
dein Range "bereich" ist undefiniert.

Set bereich=Range("A1:Z99") 'der Bereich den du durchsuchen möchtest
Grüße
Heiko
AW: Find
12.06.2012 08:22:02
Bernd
Hallo Heiko
danke hatte ich vergessen nachzutragen. In meiner Test Prozedur stand im Original
Set c = .range("A2:A22").Find(x, LookIn:=xlValues)
ich habe des jetzt zwar mit set bereich ... nachgetragen, aber ob ich für x einen vorhandenen oder nicht vorhandenen Wert eingeben, ist egal. Die Antwort lautet immer "NICHTS GEFUNDEN"
Grüße
Bernd
AW: Find
12.06.2012 08:53:39
Heiko
Mmmh.

Private Sub CommandButton1_Click()
Dim c As Range
Dim x As String
x = "A"
With Sheets("Mitarbeiter")
.Activate
Set c = .Range("A2:A22").Find(x, LookIn:=xlValues)
End With
If c Is Nothing Then
MsgBox "NICHTS GEFUNDEN"
Else
MsgBox "Gefunden" & c.Address
End If
End Sub
Verwende den gleichen Code, aber bei mir funktioniert's.
Lade mal (wenn keine Geheimnisse drin sind) deine Datei hoch.
Grüße
Heiko
Anzeige
AW: Find
12.06.2012 09:37:50
Heiko
Hallo Bernd,
da scheint was schief gegangen zu sein. Beim Versuch deine Datei zu öffnen, bekomme ich einen 404- Not found Fehler.
Grüße
Heiko
AW: Find
12.06.2012 10:16:38
bst
Nochmals Hallo,
Du suchst da im falschen Blatt.
Set bereich = Range("A1:A21")
liefert einen Bereich in menu, nicht in tab2. Nimm mal:
Set bereich = Sheets("tab2").Range("A1:A21")
Was ich über den Parameter xlPart geschrieben hatte gilt natürlich weiterhin.
cu, Bernd
Anzeige
AW: Find
12.06.2012 10:28:53
Heiko
Hallo Bernd,
so funktioniert's bei mir:

Private Sub CommandButton1_Click()
Dim c As Range
Dim bereich As String
bereich = "A1:A21"
x = InputBox("Zeichen in Großbuchstaben eingeben")
With Sheets("tab2")
.Activate
Set c = .Range(bereich).Find(x, LookIn:=xlValues)
End With
If c Is Nothing Then
MsgBox "NICHTS GEFUNDEN2"
Else
MsgBox "Gefunden"
End If
End Sub
Ich habe bereich zu einem String gemacht, und füttere damit das Range-Objekt.
M.E. liegt dein Problem im bereich.Find. bereich wird nicht als Range gesehen wie Range("A2:A21")
Grüße
Heiko
Anzeige
AW: Find
12.06.2012 10:35:44
bst
Nochmals Hallo,
siehe meine letzte Antwort.
Set bereich = Range("A1:A21")
definiert einen Bereich in der Tabelle menu, nicht in tab2.
Und, wenn Du den Parameter LookAt nicht benutzt funktioniert Dein Code nicht immer.
Rufe einfach mal den Suchen-Dialog auf, ändere dort die Option "Gesamten Zellinhalt vergleichen" und starte Deinen Code danach nochmals.
cu, Bernd
AW: Find
12.06.2012 11:32:18
Bernd
Ich danke Dir,
der Fehler wurde korrigiert. Jetzt funktioniert es
Gruß
Bernd
AW: Find
12.06.2012 10:42:14
Bernd
Hallo,
ich danke Dir.
Der Range Bereich zeigte auf die falsche Tabelle.
Problem gelöst und wieder etwas gelernt.
Gruß
Bernd
Anzeige
AW: Find
12.06.2012 09:23:36
Rudi
Hallo,
wen du nur wissen willst, ob vorhanden mit CountIf
Private Sub CommandButton1_Click()
Dim c As Integer
Dim x As String
x = "A*"
With Sheets("Mitarbeiter")
c = Application.CountIf(.Columns(1), x)
End With
If c = 0 Then
MsgBox "NICHTS GEFUNDEN"
Else
MsgBox "Gefunden"
End If
End Sub
Gruß
Rudi
AW: Find
12.06.2012 09:51:45
Bernd
Hallo Rudi,
habe mal probiert. So funktioniert es gut.
Der Kode soll zu folgenden dienen: In einer -Userform ist ein Kombinationsfeld. Dort werden Daten zum Eintragen angeboten. Ich möchte aber nicht, dass durch überschreiben Begriffe eingegeben werden, die nicht in der Auswahlliste stehen. Deshalb soll diese Prüfung als Ereignis after Üpdate mit nachfolgender Fehlerbehandlung ausgeführt werden. Trotzdem interessiert mich, warum FIND nicht funktioniert.
Anzeige
AW: Find
12.06.2012 09:45:16
bst
Auch Hallo,
Da fehlt möglicherweise der Parameter LookAt. Lies mal die Hinweise in der Vba-Hilfe zu .Find.
cu, Bernd
AW: Find
12.06.2012 10:01:03
Bernd
Hallo,
hatte ich schon gelesen. Kann aber noch nicht so richtig mit Lookat was anfagen. wiemüsste ich den Parameter angeben?
Gruß
Bernd
AW: Find
12.06.2012 10:11:06
bst
Hi,
LookAt entspricht der Option "Gesamten Zellinhalt vergleichen" im Suchen-Dialog.
Ist diese Option gewünscht brauchst Du LookAt:=xlWhole, ansonsten LookAt:=xlPart.
D.h.:
.Find("X", LookIn:=xlValues, LookAt:=xlPart)
sucht Zellen in denen (irgendwo) ein "X" enthalten ist,
.Find("X", LookIn:=xlValues, LookAt:=xlWhole)
sucht Zellen in denen exakt "X" drin steht.
HTH, Bernd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige