Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Suchen in Spalte

Suchen in Spalte
11.02.2008 10:19:58
Schuster
Hallo,
ich habe ein Makro erstellt, das mir in einer anderen Datei in einer Spalte (hier C) Werte sucht und die Treffer-Zeile in diese Datei kopieren soll. Problem daran ist, dass bei Teilsuche (Suchbegriff: *4) die Einschränkung auf die Spalte nicht funktioniert (Das ganze Blatt wird durchsucht).
Die Eingabe der Begriffe erfolgt über Userform. (Es können auch mehrere Begriffe gesucht werden).
Hier das Makro für einen Begriff:
' Suche nach Angebotsnummer
Dim rng As Range, rngSource As Range, rngStart As Range
Dim varInput As Variant
Dim iRow As Integer
varInput = varInputAngebotsnummer ' Suchbegriff ändern (wird für verschiedene Begriffe verwendet)
If varInput = False Then Exit Sub
With Workbooks(sFN).Sheets(Daten)
Set rng = ActiveSheet.Columns(3).Find( _
What:=varInput, LookAt:=xlPart, LookIn:=xlValues) ' Columns ändern
If rng Is Nothing Then
Beep
MsgBox "Suchbegriff nicht gefunden!"
Exit Sub
End If
Set rngStart = rng
Set rngSource = rng.EntireRow
Do
Set rng = Cells.FindNext(After:=rng)
If rng.Address = rngStart.Address Then Exit Do
Set rngSource = Application.Union(rngSource, rng.EntireRow)
Loop
End With
With ThisWorkbook.Sheets("Suchen")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row
If iRow = 1 Then iRow = 2 Else iRow = iRow + 3
rngSource.Copy .Cells(iRow, 1)
'.Columns.AutoFit
End With
Gruß Peter

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen in Spalte
11.02.2008 10:40:33
Peter
Hallo Peter,
versuch es einmal mit: With Workbooks(sFN).Sheets(Daten).Columns(3)
Set rng =.Find(What:=varInput, LookAt:=xlPart, LookIn:=xlValues)
Gruß Peter

AW: Suchen in Spalte
11.02.2008 10:49:45
Erich
Hallo Peter,
die obere With-Klammer hast du im Code gar nicht genutzt,
damit hast du nicht in Sheets(Daten), sondern im aktiven Sheet gesucht.
Beim FindNext wird nicht in Columns(3), sondern (wg. Cells.FindNext) auf dem ganzen Blatt gesucht.
Probiers mal mit

Option Explicit
Dim varInputAngebotsnummer
Dim Daten
Dim sFN
Sub atest()                               ' Suche nach Angebotsnummer
Dim rng As Range, rngSource As Range, rngStart As Range
Dim varInput As Variant
Dim iRow As Integer
' Suchbegriff ändern (wird für verschiedene Begriffe verwendet)
varInput = varInputAngebotsnummer
If varInput = False Then Exit Sub
With Workbooks(sFN).Sheets(Daten).Columns(3)
Set rng = .Find(What:=varInput, LookAt:=xlPart, LookIn:=xlValues)
If rng Is Nothing Then
Beep
MsgBox "Suchbegriff nicht gefunden!"
Exit Sub
End If
Set rngStart = rng
Set rngSource = rng.EntireRow
Do
Set rng = .FindNext(After:=rng)
If rng.Address = rngStart.Address Then Exit Do
Set rngSource = Union(rngSource, rng.EntireRow)
Loop
End With
With ThisWorkbook.Sheets("Suchen")
iRow = .Cells(Rows.Count, 1).End(xlUp).Row
If iRow = 1 Then iRow = 2 Else iRow = iRow + 3
rngSource.Copy .Cells(iRow, 1)
'.Columns.AutoFit
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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