PDA

Vollständige Version anzeigen : Dateiname und Pfad


jinx
19.09.2001, 05:58
<font size="2" face="Century Gothic">Moin @all,

die Frage nach der Angabe von Namen und Ordner bzw. dem Pfad einer bestehenden Excelmappe kann ohne VBA durch Verwendung der Funktion ZELLE mit dem Unterpunkt "Dateiname" auf folgende Weisen gelöst werden:
<table><tr style="vertical-align:top; text-align:center; "><tr><td>Tabelle1</td></tr><tr><td><table border=1 cellspacing=0 cellpadding=0 style="font-family:Arial,Arial; font-size:10pt; padding-left:2pt; padding-right:2pt; "> <style type = "text/css"> th {font-weight:normal} </style> <colgroup><col width=30 style="font-weight:bold; "><col width=264.999993375 ><col width=404.999989875 ></colgroup><tr style="background-color:#cacaca; text-align:center; font-weight:bold; font-size:8pt; "><td>&nbsp;</td><td>A</td><td>B</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >1</td><td style="">C:\Temp\[Dateiname und Pfad.xls]Tabelle1</td><td style="">kompletter Dateipfad bis zum Arbeitsblatt</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >2</td><td style="">C:\Temp\Dateiname und Pfad.xls</td><td style="">Dateipfad bis zum Dateinamen ohne die eckigen Klammern &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >3</td><td style="">C:\Temp</td><td style="">Verzeichnispfad</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >4</td><td style="">Temp</td><td style="">Name des Ordners</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >5</td><td style="">Dateiname und Pfad.xls</td><td style="">Name der Datei</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >6</td><td style="">Dateiname und Pfad</td><td style="">Name der Datei ohne Endung .xls</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >7</td><td style="">Tabelle1</td><td style="">Name des Arbeitsblattes</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >8</td><td style="">&nbsp;</td><td style="">&nbsp;</td></tr><tr height=17 ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >9</td><td style="">&nbsp;</td><td style="">Quelle: http://www.excelformeln.de/formeln.html?welcher=95</td></tr></table><table style="font-family:Arial; font-size:10pt; border-style: groove ;border-color:#00ff00;background-color:#FFFCF9; "><tr><td><b>Formeln der Tabelle</b></td></tr><tr><td><table style="font-family:Arial; font-size:10pt;">A1 : =ZELLE("Dateiname";$A$1)<br>A2 : =WECHSELN(LINKS<span style=' color:008000; '>(ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>;-1+FINDEN<span style=' color:#0000ff; '>("]";ZELLE<span style=' color:#ff0000; '>("Dateiname";$A$1)</span>)</span>)</span>;"[";"")<br>A3 : =LINKS(ZELLE<span style=' color:008000; '>("Dateiname";$A$1)</span>;FINDEN<span style=' color:008000; '>("[";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>-2)<br>A4 : =TEIL(ZELLE<span style=' color:008000; '>("Dateiname";$A$1)</span>;FINDEN<span style=' color:008000; '>("#";WECHSELN<span style=' color:#0000ff; '>(ZELLE<span style=' color:#ff0000; '>("Dateiname";$A$1)</span>;"\";"#";L&Auml;NGE<span style=' color:#ff0000; '>(ZELLE<span style=' color:#804000; '>("Dateiname";$A$1)</span>)</span>-L&Auml;NGE<span style=' color:#ff0000; '>(WECHSELN<span style=' color:#804000; '>(ZELLE<span style=' color:#FF7837; '>("Dateiname";$A$1)</span>;"\";)</span>)</span>-1)</span>)</span>+1;FINDEN<span style=' color:008000; '>("\";TEIL<span style=' color:#0000ff; '>(ZELLE<span style=' color:#ff0000; '>("dateiname";$A$1)</span>;FINDEN<span style=' color:#ff0000; '>("#";WECHSELN<span style=' color:#804000; '>(ZELLE<span style=' color:#FF7837; '>("Dateiname";$A$1)</span>;"\";"#";L&Auml;NGE<span style=' color:#FF7837; '>(ZELLE<span style=' color:#8000ff; '>("Dateiname";$A$1)</span>)</span>-L&Auml;NGE<span style=' color:#FF7837; '>(WECHSELN<span style=' color:#8000ff; '>(ZELLE<span style=' color:#545FA5; '>("Dateiname";$A$1)</span>;"\";)</span>)</span>-1)</span>)</span>+1;90)</span>)</span>-1)<br>A5 : =TEIL(ZELLE<span style=' color:008000; '>("Dateiname";$A$1)</span>;FINDEN<span style=' color:008000; '>("[";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>+1;FINDEN<span style=' color:008000; '>("]";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>-FINDEN<span style=' color:008000; '>("[";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>-1)<br>A6 : =TEIL(ZELLE<span style=' color:008000; '>("Dateiname";$A$1)</span>;FINDEN<span style=' color:008000; '>("[";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>+1;FINDEN<span style=' color:008000; '>("]";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>-FINDEN<span style=' color:008000; '>("[";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>-5)<br>A7 : =TEIL(ZELLE<span style=' color:008000; '>("Dateiname";$A$1)</span>;FINDEN<span style=' color:008000; '>("]";ZELLE<span style=' color:#0000ff; '>("Dateiname";$A$1)</span>)</span>+1;31)<br></table></td></tr></table></td></tr><tr><td>&nbsp;</td></tr></tr></table></font>

jinx
03.11.2001, 04:58
<font size="2" face="Century Gothic">Moin @all,

per VBA kann man die Angaben auf die folgende Weise angehen, wobei die Rückgabe hier im Direktfenster (STRG+G in der VBA) erfolgt:

<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">Sub</span> PfadNameVBA()
<span class="TOKEN">With</span> ActiveWorkbook
<span class="REM"> ' gibt den kompletten Pfad und Namen aus</span>
<span class="TOKEN">Debug.Print</span> .FullName
<span class="REM"> ' gibt den Namen der Arbeitsmappe inkl. Endung aus</span>
<span class="TOKEN">Debug.Print</span> .Name
<span class="REM"> ' gibt den Namen der Arbeitsmappe ohne Endung aus</span>
<span class="TOKEN">Debug.Print</span> Left(.Name, Len(.Name) - 4)
<span class="REM"> ' gibt den Namen des aktiven Blattes wieder</span>
<span class="TOKEN">Debug.Print</span> ActiveSheet.Name
<span class="REM"> '</span>
<span class="REM"> ' Liefert das Verzeichnis f&uuml;r die aktive Mappe</span>
<span class="TOKEN">Debug.Print</span> .Path
<span class="REM"> ' Laufwerksbuchstabe aus diesem</span>
<span class="TOKEN">Debug.Print</span> Left(.Path, 1)
<span class="REM"> ' liefert den Ordner</span>
<span class="TOKEN">Debug.Print</span> Mid(.Path, 4)
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
<span class="REM">'</span>
<span class="REM">' ACHTUNG: die folgenden Anweisungen k&ouml;nnen unterschiedliche Verzeichnisse ausgeben!</span>
<span class="REM">' Liefert das momentan genutzte Verzeichnis, dieses kann durch</span>
<span class="REM">' die Nutzung dse &Ouml;ffnen- oder Speichern-Dialogs ver&auml;ndert worden sein</span>
<span class="TOKEN">Debug.Print</span> CurDir
<span class="REM">' Laufwerksbuchstabe aus diesem</span>
<span class="TOKEN">Debug.Print</span> Left(CurDir, 1)
<span class="REM">' liefert den Ordner</span>
<span class="TOKEN">Debug.Print</span> Mid(CurDir, 4)
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Im Direktfenster ergibt das die folgenden Angaben:
C:\Temp\Dateiname und Pfad VBA.xls
Dateiname und Pfad VBA.xls
Dateiname und Pfad VBA
Tabelle1
C:\Temp
C
Temp
C:\Temp
C
Temp
Nach dem Aufruf des Öffnen-Dialogs (auch ohne das Öffnen einer Datei) ergibt sich folgendes Bild:
C:\Temp\Dateiname und Pfad VBA.xls
Dateiname und Pfad VBA.xls
Dateiname und Pfad VBA
Tabelle1
C:\Temp
C
Temp
D:\Paradox
D
Paradox</font>

jinx
03.11.2001, 22:52
<font size="2" face="Century Gothic">Moin,

aus einem übergebenen Pfad und Namen kann man die Infos auch gewinnen. Da es die Funktion InStrRev erst ab Excel2000 gibt, wird vor der Ausführung des Codes die interne Versionsnummer abgefragt (Excel97 entspricht 8.0), um dann die zutreffenden Funktionen aufzurufen.

<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">Sub</span> TestGetPathAndFileName()
<span class="TOKEN">If</span> Val(Application.Version) &gt; 8 <span class="TOKEN">Then</span>
<span class="TOKEN">Debug.Print</span> GetFileName(&quot;C:\Temp\Dateiname und Pfad VBA.xls&quot;)
<span class="TOKEN">Debug.Print</span> GetFileExtension(&quot;C:\Temp\Dateiname und Pfad VBA.xls&quot;)
<span class="TOKEN">Debug.Print</span> GetPath(&quot;C:\Temp\Dateiname und Pfad VBA.xls&quot;)
<span class="TOKEN">Else</span>
<span class="TOKEN">Debug.Print</span> GetFileName97(&quot;C:\Temp\Dateiname und Pfad VBA.xls&quot;)
<span class="TOKEN">Debug.Print</span> GetFileExtension97(&quot;C:\Temp\Dateiname und Pfad VBA.xls&quot;)
<span class="TOKEN">Debug.Print</span> GetPath97(&quot;C:\Temp\Dateiname und Pfad VBA.xls&quot;)
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span><hr>&nbsp;
<span class="TOKEN">Function</span> GetFileName(sFileName <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> iPosn <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
iPosn = instrrev(sFileName, &quot;\&quot;)
GetFileName = Mid$(sFileName, iPosn + 1)
<span class="TOKEN">End</span> <span class="TOKEN">Function</span><hr>&nbsp;
<span class="TOKEN">Function</span> GetFileExtension(sFileName <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> iPosn <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
iPosn = instrrev(sFileName, &quot;.&quot;)
GetFileExtension = Mid$(sFileName, iPosn + 1)
<span class="TOKEN">End</span> <span class="TOKEN">Function</span><hr>&nbsp;
<span class="TOKEN">Function</span> GetPath(sFileName <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> iPosn <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
iPosn = instrrev(sFileName, &quot;\&quot;)
GetPath = Mid$(sFileName, 1, iPosn - 1)
<span class="TOKEN">End</span> <span class="TOKEN">Function</span><hr>&nbsp;
<span class="TOKEN">Function</span> GetFileName97(sFileName <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> sChar <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> i <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">For</span> i = Len(sFileName) <span class="TOKEN">To</span> 1 <span class="TOKEN">Step</span> -1
sChar = Mid$(sFileName, i, 1)
<span class="TOKEN">If</span> sChar = &quot;\&quot; <span class="TOKEN">Then</span>
GetFileName97 = Mid$(sFileName, i + 1)
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> i
<span class="TOKEN">End</span> <span class="TOKEN">Function</span><hr>&nbsp;
<span class="TOKEN">Function</span> GetFileExtension97(sFileName <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> sChar <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> i <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">For</span> i = Len(sFileName) <span class="TOKEN">To</span> 1 <span class="TOKEN">Step</span> -1
sChar = Mid$(sFileName, i, 1)
<span class="TOKEN">If</span> sChar = &quot;.&quot; <span class="TOKEN">Then</span>
GetFileExtension97 = Mid$(sFileName, i + 1)
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> i
<span class="TOKEN">End</span> <span class="TOKEN">Function</span><hr>&nbsp;
<span class="TOKEN">Function</span> GetPath97(sFileName <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> sChar <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> i <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">For</span> i = Len(sFileName) <span class="TOKEN">To</span> 1 <span class="TOKEN">Step</span> -1
sChar = Mid$(sFileName, i, 1)
<span class="TOKEN">If</span> sChar = &quot;\&quot; <span class="TOKEN">Then</span>
GetPath97 = Mid$(sFileName, 1, i - 1)
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> i
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)</font>