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

Forumthread: bestimmets Tabellenblatt in externer XLSX-Datei suchen

bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 12:47:42
Michael
Hallo,

ich könnte mal wieder Hilfe benötigen.

Auf einer UserForm befindet sich ein CommandButton. Mit dem CommandButton öffne ich den Dateimanager und suche dann nach einer XLSX-Datei. Beim Öffnen dieser gesuchten XLSX-Datei soll dann nach einem bestimmten Tabellenblatt gesucht werden. Gibt es das Tabellenblatt nicht, soll der Code mit einem Hinweis, dass das gesuchte Tabellenblatt nicht vorhanden ist, beendet werden.

Im Internet habe ich dazu den folgenden Code gefunden:


Function TabEx(strTab As String) As Boolean
Dim Blatt As Worksheet
TabEx = False
For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.name = strTab Then
TabEx = True
Exit Function
End If
Next Blatt
End Function


Im Code selber rufe ich das so auf:


If TabEx("hier steht der gesuchte Wert") = True Then
'code
Else
MsgBox "Das gesuchte Tabellenblatt existiert nicht.", vbMsgBoxSetForeground + vbExclamation, "Hinweis"
End If


Wie muss ich den Code anpassen, dass dieser die externe XLSX-Datei durchsucht und nicht die Datei, in welcher die User-Form programmiert ist?

Vielen Dank für eure Hilfe
Grüße Michael

PS: das ist der Code, mit dem ich die XLSX-Datei dann öffne.


Dim objExcel As New Excel.Application
objExcel.Workbooks.Open DateiNameExcel, ReadOnly:=True
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 14:04:14
Oberschlumpf
Hi Michael,

ändere diese Codeteile:

aus
Function TabEx(strTab As String) As Boolean

wird
Function TabEx(DATEI As String, strTab As String) As Boolean


aus
TabEx("hier steht der gesuchte Wert")

wird
TabEx(DATEI, "hier steht der gesuchte Wert")


anstelle von DATEI musst du den Dateinamen von der Datei übergeben, die du zuvor mit Dateimanager geöffnet hast.

Und dann wird noch aus...
ActiveWorkbook.Worksheets

...das hier...
Workbooks(DATEI).Worksheets


Jetzt müsste es funktionieren...oder?
Nein? Dann zeig bitte per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code.

Ciao
Thorsten
Anzeige
AW: bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 17:16:30
Michael
Hallo Thorsten,

ich habe das von Dir gerade getestet.
Er gibt den Dateinamen und da,s was gesucht werden soll, sauber in die Funktion rüber. Dort scheitert er dann an der FOR-Schleife



Function TabEx(Datei As String, strTab As String) As Boolean
Dim Blatt As Worksheet
TabEx = False
For Each Blatt In Workbooks(Datei).Worksheets '--> "index auserhalb des gültigen Bereichs"
If Blatt.name = strTab Then
TabEx = True
Exit Function
End If
Next Blatt
End Function


Anzeige
AW: bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 17:49:59
Oberschlumpf
Hi Michael,

"Er gibt den Dateinamen..." = wirklich der vollständige Dateiname, also auch MIT Dateiendung, also .xlsx oder .xlsm?

Und...wenn's nich funktioniert, bat ich dich um ne Bsp-Datei = haste leider nich angeboten...hmm???


Und ich hab nun meinen Code und deine If Else Then Kombi auch getestet = erfolgreich

Ciao
Thorsten
Anzeige
AW: bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 21:55:39
Michael
Hallo Thorsten,

ich musste eben schnell weg, deswegen gab es keine Datei. Das will ich jetzt nachholen.
Hier die Datei https://www.herber.de/bbs/user/169874.zip
AW: bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 18:09:22
Oberschlumpf
Hi,

und JETZT hab ich mal..richtig..getestet! :-)

Mein 1. Test war einfach nur "dateiname.xlsx", "blattname" an deine Funktion übergeben = erfolgreich

Jetzt hab ich mal den Code für den Dateimanager vorgeschaltet, bevor deine Funktion "dran kommt".
Und siehe da, für DATEI wird natürlich nicht nur "dateiname.xlsx" übergeben, sondern der gesamze Pfad = "Pfad\dateiname.xlsx"...und DAS führt zum Fehler!

Verwende mal diese Funktion:


Function TabEx(Datei As String, strTab As String) As Boolean
Dim Blatt As Worksheet
TabEx = False

Datei = Split(Datei, "\")(UBound(Split(Datei, "\")))

For Each Blatt In Workbooks(Datei).Worksheets '--> "hier is nix mehr mit index auserhalb des gültigen Bereichs"
If Blatt.Name = strTab Then
TabEx = True
Exit Function
End If
Next Blatt
End Function


SO funktioniert bei mir alles auch mit dem Dateimanager!

Und wenn auch das nich geht bei dir, dann tu bitte das, worum ich dich schon in meiner 1. Antwort bat.

Ciao
Thorsten
Anzeige
AW: bestimmets Tabellenblatt in externer XLSX-Datei suchen
05.06.2024 22:06:28
Michael
Hallo Thorsten,

mit dem Trennen auf den reinen Dateiname inkl. Dateiendung (Split) funktioniert das jetzt.

Vielen Dank für die Hilfe

Gruß
Michael

;

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