PDA

Vollständige Version anzeigen : Datenholen aus geschlossender Datei mit Zusammengesetzten Dateinamen


fuzzy100fuzzy
08.04.2012, 22:03
Hallo Forum Gemeinde,

ich will mir wenn ich Datei A geöffnet habe per Knopfdruck einen Wert aus einer geschlossenen Datei B per Knopfdruck holen. So weit so gut bis hierhin funktioniert mein Code Bereits.

Sub Stammdatenholen()

Dim rngTarget As Range
Set rngTarget = Range("K8")
Application.ScreenUpdating = False
Workbooks.Open "Z:\Test\Stammdaten\Michi_123456.xlsm"
rngTarget.Value = Range("B9").Value
Application.DisplayAlerts = False
ActiveWorkbook.Close savechanges:=False
Application.DisplayAlerts = True

End Sub


Ich will nun noch dass die zu öffnende Datei aus zwei Excel Zellen zusammengesetzt wird.
Bsp.: (Werte befinden sich in geöffneter Datei)
Der Pfad (Z:\Test\Stammdaten) bleibt immer bestehen.
Der Name z.b. Michi steht in Tabelle 5 in B3.
Der _Unterstrich steht nirgends muss aber dabei sein.
Die Nummer z.b 123456 steht in Tabelle 5 in C3.
Die Dateiendung .xlsm bleibt bestehen.

Google konnte mir irgendwie auch nicht so recht weiterhelfen wie ich das bewerkstelligen muss.

Vielen Dank fürs Lesen

Gruß Markus

CitizenX
08.04.2012, 23:24
Hi,


Bitte Kommentare im Code beachten

Code in ein allgemeines Modul

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Option</span> <span class="TOKEN">Explicit</span>
&nbsp;
<span class="TOKEN">Const</span> strPath <span class="TOKEN">As</span> <span class="TOKEN">String</span> = &quot;Z:\Test\Stammdaten&quot; <span class="REM">'Pfad der Datei</span>
<span class="TOKEN">Const</span> strType <span class="TOKEN">As</span> <span class="TOKEN">String</span> = &quot;.xlsm&quot; <span class="REM">' Datei Typ</span>
&nbsp;
<span class="TOKEN">Sub</span> GetmyValue()
<span class="TOKEN">Dim</span> myDat <span class="TOKEN">As</span> Object, rngOut <span class="TOKEN">As</span> Range
<span class="TOKEN">Dim</span> strName <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> strFullPath <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
<span class="REM"> ' Ausgabebereich ggf anpassen</span>
<span class="TOKEN">Set</span> rngOut = ThisWorkbook.Sheets(&quot;Tabelle1&quot;).Range(&quot;K8&quot;)
&nbsp;
<span class="TOKEN">With</span> ThisWorkbook.Sheets(&quot;Tabelle5&quot;)
strName = .Range(&quot;B3&quot;) &amp; &quot;_&quot; &amp; .Range(&quot;C3&quot;)
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
strFullPath = IIf(Right(strPath, 1) = &quot;\&quot;, strPath, strPath &amp; &quot;\&quot;) &amp; strName &amp; strType
&nbsp;
<span class="TOKEN">If</span> Len(Dir(strFullPath)) <span class="TOKEN">Then</span>
<span class="REM"> 'Tabellenname und Bereich der Daten anpassen</span>
<span class="TOKEN">Set</span> myDat = GetObject(strFullPath).Sheets(&quot;Tabelle1&quot;).Range(&quot;B9&quot;)
rngOut = myDat
<span class="TOKEN">Else</span>
MsgBox &quot;Datei nicht gefunden !&quot;, vbCritical
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span><hr>&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

fuzzy100fuzzy
09.04.2012, 09:28
oh das ist ja doch etwas umfangreicher als ich mir das dachte.

Dein Code Funktioniert einwandfrei.

Vielen Dank dafür wünsche noch schöne Ostern

Gruß Markus