Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1336to1340
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

Cells.find ohne dass das Sheet ausgewählt wird

Cells.find ohne dass das Sheet ausgewählt wird
20.11.2013 20:42:06
Albert
Hallo und guten Abend zusammen,
ich verwende diese Codezeile, um etwas innerhalb eines Sheets zu suchen.
Nun möchte ich aber nicht, dass das Sheet ausgewählt wird bzw. in das Sheet hineingewechselt wird.
Wie mach ich das? Was muss ich bei dem Cells hinschreiben?
Sub Suche
With Eingabe
Cells.Find(what:=.ComboBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
.TextBox4.Value = Cells(Selection.Row, Selection.Column - 2)
.TextBox9.Value = Cells(Selection.Row, Selection.Column - 1)
End With
Danke schon mal jetzt für eure Hilfe
Gruß
A.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cells.find ohne dass das Sheet ausgewählt wird
20.11.2013 23:38:29
Franc
Die Lösung liefert dir schon die Hilfe.
Paar deiner find Suchoptionen sind standardwerte. Hab sie deshalb weggelassen.
Anstatt Worksheets(2) kannst du eine andere Nummer nehmen bzw eine Variable, wenn du mehrere Blätter durchsuchen willst.
Aktuell findet er nur einen oder keinen Wert - wie man alle Werte suchen kann steht in dem Standardbeispiel in der Hilfe. Habs hier weggelassen, weil du auch nur den 1. Wert wissen willst oder?
Habs jetzt nicht weiter getestet. (zu faul um ne Beispieldatei zu basteln ^^)
With Eingabe
Set c = Worksheets(2).UsedRange.Find(what:=.ComboBox1.Value, LookIn:=xlFormulas, lookat:=xlWhole, SearchOrder:=xlByRows)
If Not c Is Nothing Then
.TextBox4.Value = Cells(c.Row, c.Column - 2)
.TextBox9.Value = Cells(c.Row, c.Column - 1)
Else
'soll was kommen wenn nix gefunden wird?
End If
End With

Anzeige
Danke Franc, klasse.... owT
21.11.2013 09:22:07
Albert

UsedRange nicht bekannt
21.11.2013 12:14:30
Albert
Hallo zusammen,
Franc gab mir den Tipp, die UsedRange zu verwenden.
c bringt mir nun einen Wert, gibt mir aber nicht die aktive Zelle wieder, in der er den Wert gefunden hat.
Private Sub Combobox1_change()
Dim c As Range
With Eingabe
Set c = Sheets("Kontaktdaten").UsedRange.Find(what:=.ComboBox1.Value, LookIn:=xlFormulas,  _
lookat:=xlWhole, SearchOrder:=xlByRows)
If Not c Is Nothing Then
.TextBox4.Value = ActiveCell(Selection.Row, Selection.Column - 2)
.TextBox9.Value = ActiveCell(Selection.Row, Selection.Column - 1)
End If
End With
End Sub
Ich wüsste auch nicht, wonach ich googeln oder in der Hilfe schauen sollte?
Gruß
A.

Anzeige
AW: UsedRange nicht bekannt
21.11.2013 12:43:08
EtoPHG
Hallo Albert,
Die Variable c zeigt auf die Zelle in welcher der Suchbegriff gefunden wurde. Darum ist es unsinnig anschliessend mit ActiveCell und/oder Selection zu arbeiten! Dort müsste es heissen:
            .TextBox4.Value = c.Offset(0, -2)
.TextBox9.Value = c.Offset(0, -1)
Aber Achtung:Wird der Wert in einer Zelle gefunden, deren Spaltennummer kleiner 3 ist, wird der Code auf die Schnauze fallen, denn dann funktioniert der Versatz um 2 Spalten nach links nicht mehr! Das müsste ggf. abgefangen werden, durch die Überprüfung des Werts von c.Column, der grösser als 2 sein muss!
Gruess Hansueli

Anzeige
AW: UsedRange nicht bekannt
22.11.2013 10:05:58
Franc
Das hatte ich aber berücksichtigt. ;-)
Hatte auch überlegt ob ich es mit offset schreibe aber dachte mir ne - dann ist das noch was neues und bin beim cells geblieben, weil es in diesem Fall das gleiche ist. ^^

Du schon, Franc ;-), er, Albert, nicht :-(( [owT]
22.11.2013 12:18:11
EtoPHG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige