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

Datum aus Zelle beziehen u. in einen Pfad einfügen

Datum aus Zelle beziehen u. in einen Pfad einfügen
22.05.2015 23:14:57
Pan
Hallo zusammen,
habe es hier leider erfolglos probiert.
https://www.herber.de/forum/archiv/1424to1428/t1426982.htm#1426982
Darum versuche ich es nun mit einer Beispieldatei.
https://www.herber.de/bbs/user/97792.xlsx
Ich möchte gerne das die Funktionen die in allen Zellen von Montag-Sonntag vorhanden sind, sich das entsprechende Datum aus der jeweiligen Spaltenüberschrift beziehen (so dass ich es nicht für jede Zelle manuell eintragen muss).
Zur Info. Die Funktionen verweisen auf andere Dateien in denen bestimmte Zellen summiert werden sollen (aber das seht ihr wahrscheinlich selber).
Bin wie immer dankbar für die Hilfe.
Gruss, Pan

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wo ist Rudi?
23.05.2015 18:55:51
Michael
Hallo Pan,
im Prinzip habe ich zwei Lösungsansätze (gefunden), nämlich:
http://www.excel-ticker.de/excel-bezuge-zu-externen-dateien-dynamisch-aufbauen/
und
https://www.herber.de/forum/archiv/1212to1216/t1213837.htm
Die Formeln im ersten Fall sind ganz nett, funktionieren aber nur, wenn die jeweilige Datei *geöffnet* ist.
Der zweite Fall ist eine VBA-Lösung von Rudi M.
Ich habe mir gedacht, wie wäre es mit einer UDF, die die Sachen aus der anderen Datei holt?
Also habe ich Rudis Beispiel abgespeckt, so daß es so aussieht:
Option Explicit
Public Function holen(strPath As String, strFile As String, _
strBlatt As String, strData As String, selector As Integer) As Variant
Dim strFormel As String, strTest
strFormel = "'" & strPath & "[" & strFile & "]" & strBlatt & "'!" & strData
If selector = 1 Then
holen = ExecuteExcel4Macro(strFormel)
Else
holen = strFormel
End If
End Function
Sub holen_aufrufen()
MsgBox holen(ThisWorkbook.Path & "\", Range("B3").Value, "Frühstück", "R6C7", 2)
MsgBox holen(ThisWorkbook.Path & "\", Range("B3").Value, "Frühstück", "R6C7", 1)
End Sub
Public Function pfad() As String
pfad = ThisWorkbook.Path & "\"
End Function
Die function pfad ist zum Bestimmen des Pfades im Dateinamen, die habe ich nur eingefügt, um mir Formelfummelei zu ersparen, die Beispieldatei aber so allgemein wie möglich zu halten.
Den "Selector" in "holen" habe ich angebracht, weil es nicht so tut, wie es soll, und ich den Fehler nicht finde: wenn = 1, wird ex4m aufgerufen, ansonsten werden einfach die zusammengesetzten Parameter ausgegeben.
Die Funktion funzt super, wenn man sie mit holen_aufrufen aufruft, aber im Tabellenblatt leider nur mit selector=2.
Ich bin leicht vernagelt! Weil ich aus dem Haus muß, lade ich ausnahmsweise eine nicht funktionsfähige Sache hoch, die zumindest als Denkanstoß tun sollte: https://www.herber.de/bbs/user/97799.xlsm
In der hochgeladenen Datei habe ich in B3 die Formel angebracht, die den Dateinamen erzeugt:
=JAHR(B5)&"_"&TEXT(MONAT(B5);"00")&"_"&TEXT(TAG(B5);"00")&", "&B6&".xlsm"
In B16 und B17 rufe ich "holen" auf, einmal mit Selector=1 und einmal mit =2. Der Zellbezug steht in RC-Schreibweise (so war es bei Rudis Beispiel), wobei r6c7 die Zelle G6 anspricht, wo ich in einer schnell erzeugten Datei eine 5 eingegeben habe.
"Montagsdatei": https://www.herber.de/bbs/user/97798.xlsm
Die Datei heißt im Original "2015_06_01, Montag.xlsm" und sollte zum Testen nach dem Runterladen auf diesen Namen umbenannt (und ins gleiche Verzeichnis gesteckt) werden.
Abgesehen davon wird immer ganz anders bei Dateinamen mit "," und Leerzeichen, aber gut, es funzt ja, wenn man holen von einer sub aus aufruft. (siehste, sogar Herrn Herbers upload-Funktion zickt mit Leerzeichen)
So, ich bin gespannt, wie die Geschichte ausgeht.
Schöne Grüße,
Michael
P.S.: Du sprichst sowieso immer nur eine Zelle an (z.B. J14), also kannst Du Dir die Summe sparen.
Ob die UDF-Lösung insgesamt sinnvoll ist? Ich bin etwas unsicher - die Dinger werden bei jeder Änderung irgendeiner Zelle der Reihe nach aufgerufen.
Vielleicht ist eine reine VBA-Lösung im Stil von Rudis Vorschlag besser, die auf "Knopfdruck" alle Werte aktualisiert und als Werte in die Zellen schreibt.
Insgesamt würde ich vielleicht die Konzeption von dat janze überdenken und mir mal ernsthaft die Theorie von Datenbanken ansehen...
Anzeige

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige