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

Forumthread: Suche in einer anderen Datei

Suche in einer anderen Datei
01.05.2019 17:24:16
Marquardt
Hallo zusammen,
ich habe mir über ein UserForm eine Suchfunktion erstellt (mit sehr viel Mühe und Hilfe über dieses Forum).
Jetzt muss ich aber in einer anderen Datei suchen. Suchen muss ich in Spalte d und das Ergebnis soll b+e sein.
Kann mir jemand helfen? Vielen Dank!

Private Sub CommandButton1_Click()
Dim zelle As Range
Dim strZelle As String
ListBox1.Clear
With Range("c2:B10000" & Range("c10000").End(xlUp).Row) 'Suche bis Zeile 10000
Set zelle = .Find(TextBox1.Value, LookIn:=xlValues)
If Not zelle Is Nothing Then
strZelle = zelle.Address
Do
With ListBox1
ListBox1.ColumnWidths = "0 Pt;60 Pt"
.ColumnCount = 3
.AddItem zelle.Address           .List(.ListCount - 1, 1) = "Zeile " & zelle.Row       _
_
_
_
_
.List(.ListCount - 1, 2) = Cells(zelle.Row, 1)
End With
Set zelle = .FindNext(zelle)
Loop While zelle.Address  strZelle
End If
End With
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche in einer anderen Datei
01.05.2019 20:01:11
Werner
Hallo,
dir ist klar, dass die Datei in der du suchen willst offen sein muss bzw. göffnet werden muss?
Gruß Werner
AW: Suche in einer anderen Datei
03.05.2019 11:57:45
Marquardt
Hallo,
ist mir klar. Die kann ich doch zu Beginn öffnen und dann wieder schließen. Oder?
Gruß
AW: Suche in einer anderen Datei
04.05.2019 13:49:46
Werner
Hallo,
so:
Private Sub CommandButton1_Click()
Dim zelle As Range, strZelle As String
Dim wbQuelle As Workbook
Application.ScreenUpdating = False
If Me.TextBox1  "" Then
Me.ListBox1.Clear
'hier den Pfad und den Dateinamen anpassen
Set wbQuelle = Workbooks.Open("C:\Ordner\Unterordner\Unterordner1\Deine_Datei.xlsx")
'hier den Blattnamen anpassen
With wbQuelle.Worksheets("Tabelle1").Columns(4)
Set zelle = .Find(Me.TextBox1, LookIn:=xlValues)
If Not zelle Is Nothing Then
strZelle = zelle.Address
Do
With Me.ListBox1
.AddItem zelle.Address
.List(.ListCount - 1, 1) = zelle.Offset(, -2)
.List(.ListCount - 1, 2) = zelle.Offset(, 1)
End With
Set zelle = .FindNext(zelle)
Loop While zelle.Address  strZelle
Else
MsgBox "Suchbegriff wurde nicht gefunden."
Me.TextBox1.SetFocus
End If
End With
Else
MsgBox "Bitte einen Suchbegriff eingeben."
Me.TextBox1.SetFocus
Exit Sub
End If
wbQuelle.Close , False
Set wbQuelle = Nothing
End Sub
Die Datei wird im Hintergrund geöffnet und nach einlesen der Daten ohne Speichern wieder geschlossen.
Das Einstellen der Spaltenanzahl sowie der Spaltenbreite hab ich aus dem Code raus genommen. Das macht keinen Sinn es jedesmal im Code einzustellen. Stell die Spaltenanzahl sowie die Spaltenbreiten doch einfach einmalig im Eigenschaftenfenster der Listbox ein.
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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