Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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

DIR als selbstdefinierte EXCEL Tabellenfunktion

DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 20:42:11
Dieter Krüsemann
Moin aus Hamburg,

da EXCEL keine eigene Tabellenfunktion hat, möchte ich das über eine selbstdefinierte VBA-Funktion realisieren. Bekannt ist die zu suchende Datei "DatTpl" einschließlich des Verzeichnisses, in dem sie abgelegt ist,

z.B. C:\Daten\Root\DatTpl

Nicht bekannt ist die Namenserweiterung, die ich als Rückgabewert in der EXCEL-Tabelle aber sehen will, etwa in der Form "DatTpl.Erweiterung" oder auch zusammen mit dem vollständigen Pfad. "DatTpl" steht unabhängig von der Erweiterung nur 1x in diesem Verzeichnis.

Bisher habe ich in VBA lediglich die Funktion definiert:
Function DatTplExt
End Function
Dazwischen müsste die VBA Dir-Funktion stehen, die auf "C:\Daten\Root\DatTpl.*" zugreift, also VBA-Stringvariable = Dir("C:\Daten\Root\DatTpl.*"). Da DatTpl nur 1x in dem Vezeichnis steht, sollte die Stringvariable nur den einen gewünschten Wert einschließlich Erweiterung enthalten.

Wie übergebe ich "C:\Daten\Root\DatTpl.*" aus Excel an VBA, und wie übernehme ich den Wert der Stringvariablen aus VBA in EXCEL?

Vielen Dank vorab
Dieter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 21:16:20
Oberschlumpf
Hi Dieter,

schon - nicht - verstanden habe ich deinen 1. Satz: "da EXCEL keine eigene Tabellenfunktion hat"

Bitte was meinst du damit?

Excel IST sozusagen EINE TABELLE...und Funktionen dafür gibt es soooo viele!

Und was ich auch nicht verstehe, ist....du bist gut in VBA, kennst dich aber nicht...
...mit dem DIR-Befehl und seinen Möglichkeiten aus?!?
...mit der Verwendung von UF-Funktionen (inkl Übergabe von Parametern) direkt in Excel aus?!?

Daher vermute ich, dass ich dich bisher wohl sehr falsch..bzw gar nicht verstehe..und warte erst mal deine Antworten ab.

Ciao
Thorsten
Anzeige
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 21:59:59
Dieter Krüsemann
Moin Thorsten,

gleich am Anfang meinem ersten Satzes fehlen drei entscheidende Buchstaben, und damit wird der Rest recht schräg. Es muss heißen:

da EXCEL keine eigene DIR Tabellenfunktion hat ...

Sorry.

Was ich nicht gebacken kriege, ist die Übergabe aus der EXCEL-Tabelle an eine selbst definierte Funktion in VBA und daraus die Rückgabe des Ergebnisses an die Excel Tabelle.

Also, ich habe in VBA die Funktion "DatTplExt" definiert. In der Tabelle steht: "=DatTplExt("C:\Daten\Root\DatTpl.*"). Damit landet diese Info in der VBA-Funktion. Dann weiter in VBA sollte "Dir" mit diesem Wert diese eine Datei DatTpl einschließlich ihrer sich von Fall zu Fall ändernden Namenserweiterung liefern, z.B. XYZ = Dir("C: ... "). Aber mit der Rückgabe von XYZ taucht das Problem auf.

Ich hoffe, damit kannst Du jetzt viel mehr anfangen.

Ich bleibe übrigens bei meiner Selbsteinschätzung "VBA gut". Zum Profi fehlt u.a. die Variablenrückgabe aus VBA an eine EXCEL-Tabelle. Habe gerade kein passendes Schmeilie zur Hand.

Vielen Dank vorab
Dieter
Anzeige
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 22:21:53
Ulf



Public Function erweiterung(ByVal DateiOhneExt As String) As String
Dim strRet As String
strRet = Dir(DateiOhneExt & ".*", vbNormal)
If strRet > "" Then
strRet = Mid(strRet, InStrRev(strRet, ".") + 1)
End If
erweiterung = strRet
End Function

Public Sub demo()
Dim strExt As String
'Zelle A1: C:\Daten\Root\DatTpl
'Zelle B1: =erweiterung(A1)
strExt = erweiterung("D:\Temp\Neues Textdokument")
End Sub

hth
Ulf
Anzeige
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 22:20:39
Dieter Krüsemann
Moin Thorsten,

um meine ramponierte Ehre wiederherzustellen. Problem ist gelöst, habe nur ein wenig zu kompliziert gedacht:

In VBA:
Function TplFil(FilNam)
TplFil = Dir(FilNam)
End Function

In der Tabelle:
=tplfil("C:\Daten\Root\Sys\DatTpl.*")
Rückgabe an die Tabelle: DatTpl.mgtdat

Dabei ist "mgtdat" die Dateiänderung, die ich brauche.

Vielen Dank noch einmal und gute Nacht
Dieter
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 22:35:25
onur
Und "VBA-gut" war wohl auch ein Tippfehler ?
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
25.09.2023 22:44:37
Dieter Krüsemann
Moin onur,

"VBA-gut" passt jetzt wieder. Schau Dir meine kompakte Lösung von 22:20 an.

Gute Nacht
Dieter
Anzeige
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
26.09.2023 00:47:16
onur
Ja, nee, ist klar...
Ich bin auch ein guter Pilot, nur wieder landen kann ich noch nicht. :)
AW: DIR als selbstdefinierte EXCEL Tabellenfunktion
26.09.2023 08:45:44
Dieter Krüsemann
Moin Onur,

dann sind wir ja wieder beieinander. Gestartet bin ich, von HERBERS Excel-Forum lasse ich mich - Fliegersprache - herunterbeten und habe dabei noch was gelernt. Besser geht's nicht.

Vielen Dank
Dieter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige