Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA: Werte neben dem Suchbegriff in Bereich
21.10.2013 21:22:00
UliBrenn
Hallo zusammen!
In einem Formular soll bei einem change-Ereignis in einer Textbox der Inhalt in einem im Namenmanager definierten Bereich (Spalte A) gesucht werden und der Wert rechts neben der Zelle (also eine Spalte weiter) in eine Textbox übertragen werden.
Ich kenne offset, rows, list und count als mögliche Methoden. Kriege aber den Code nicht zusammen.
Und finde trotz intensiver Suche keine passendes Makro im Netz bzw. Lösungsansatz.
Über untenstehendes Makro konnte ich meinen Wert schon finden.
Ich glaube aber, es ist der falsche Ansatz. Es fehlt auch noch die Aufnahme des Wertes rechts neben des Suchwertes in Spalte A. Wäre toll, wenn mich jemand auf die Spur bringen würde…Danke!!!!
Sub SucheRechtDaneben()
Dim Suchbegriff As String
Dim i As Integer
ThisWorkbook.Worksheets("Tabelle1").Activate
For i = 1 To 15000
Suchbegriff = Range("C1").Value
If Suchbegriff = Cells(i, 1).Value Then Exit For
Cells(i, 4).Value = Suchbegriff
Next i
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Mit Folgendem sollte eine schnelle Suche ...
22.10.2013 02:17:06
Luc:-?
…und Notation des Gewünschten möglich sein, Uli:
Sub Suche_ErgRechtsDaneben()
Const spAbstd As Long = 3, adRelBer$ = "A1:A15000", adSuBgr$ = "C1", naRelTab$ = "Tabelle1"
Dim Suchbegriff As String, relTab As Worksheet, _
relBer As Range, suBgr As Range, suZiel As Range
Set relTab = ThisWorkbook.Worksheets(naRelTab)
Set relBer = relTab.Range(adRelBer): Set suBgr = relTab.Range(adSuBgr)
Suchbegriff = suBgr.Value
Set suZiel = relBer.Find(Suchbegriff, relBer(relBer.Cells.Count), _
xlValues, xlWhole, , xlByColumns)
If Not suZiel Is Nothing Then suZiel.Offset(0, spAbstd) = Suchbegriff
Set relTab = Nothing: Set relBer = Nothing
Set suBgr = Nothing: Set suZiel = Nothing
End Sub
Die Suche findet die 1.Zelle im relevanten Bereich, deren ganzer Wert dem Suchbegriff gleich ist.
Alternativ könnte auch eine schnelle For Each-Schleife (Bsp in der VBE-Hilfe zu Find!) verwendet oder über ein Array (ggf auch ein assoziatives wie mit Scripting Dictionary ) vorgegangen wdn. Allerdings hattest du die Ermittlung des Suchbegriffs ohnehin falsch platziert (wird doch nur 1- nicht 15000× benötigt!). Gleiches gilt für die ErgebnisSpeicherung. Witzigerweise kommt es bei dir nicht mehr dazu, wenn der Begriff gefunden wurde! Dafür speicherst du ihn in alle anderen Zellen der Offset-Spalte! War das wirklich deine Absicht? Denn, Es fehlt auch noch die Aufnahme des Wertes rechts neben des Suchwertes in Spalte A, verstehe ich nicht so recht… ;->
Gruß Luc :-?
Besser informiert mit …

Anzeige
AW: Mit Folgendem sollte eine schnelle Suche ...
22.10.2013 21:16:25
UliBrenn
Hallo Luc!
Haben vielen herzlichen Dank für Deine Hilfe!!
Bei dem Code habe ich mir etwas schwer getan. Deine Erläuterung haben mir aber super geholfen!!
Gelöst habe ich es nun wie folgt, wobei zw11 aus einer Textbox kommt!!
Also Luc! - Nochmals vielmals Danke!
Resultat = Cells.Find(What:=zw11, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Resultat = ActiveCell.Offset(0, 1)

Bitte sehr, aber du hast da etwas ...
23.10.2013 04:21:46
Luc:-?
…auf Anfängerniveau verändert, Uli,
was mir gar nicht gefällt! :-|
Gruß Luc :-?

Anzeige
AW: Bitte sehr, aber du hast da etwas ...
23.10.2013 21:45:44
UliBrenn
Ja, das habe ich befürchtet :(
Ich bin noch dran und werde Dich dann - hoffentlich - wieder etwas versöhnen.
Dein Code dient da als Grundlage und Deine Beschreibung! Eingrenzung Suchbreich, Was tun , wenn nichts gefunden wird. Bin dran!

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige