PDA

Vollständige Version anzeigen : Arbeitsblattnamen in Liste eintragen


Hans-Werner
12.09.2001, 19:50
Hallo,
ich habe in meiner Arbeitsmappe ca. 100-120 Arbeitsblätter. Ich muss zur Auswertung ein Arbeitsblatt erstellen, in dem alle Arbeitsblattnamen aufgelistet sind. Wie geht das automatisch, damit ich die Namen nicht von Hand eintragen muss?
Ich verwende Excel 97 bzw. 2000.
Gruss
Hans-Werner

<p align="left"><font size="1" face="Century Gothic"><font color="#000000">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag ein Link entfernt.</font>

jinx
12.09.2001, 21:33
<font size="2" face="Century Gothic">Moin, Hans-Werner,

unter der Prämisse, dass Du die Angaben auf einem Blatt "Übersicht" zusammenfassen willst, z.B. wie folgt:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> Tabellenbl&auml;tterNamenAuslesen()
<span class="TOKEN">Dim</span> Blatt <span class="TOKEN">As</span> Object
_
Application.DisplayAlerts = <span class="TOKEN">False</span>
<span class="TOKEN">On</span> <span class="TOKEN">Error</span> <span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
Worksheets.Add = &quot;&Uuml;bersicht&quot;
Worksheets(&quot;&Uuml;bersicht&quot;).Activate
Range(&quot;A1&quot;).Value = &quot;Namen der Tabellenbl&auml;tter&quot;
Range(&quot;A2&quot;).Select
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> Blatt <span class="TOKEN">In</span> Sheets
<span class="TOKEN">If</span> Blatt.Name &lt;&gt; ActiveSheet.Name <span class="TOKEN">Then</span>
ActiveCell.Value = Blatt.Name
ActiveCell.Offset(1, 0).Select
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> Blatt
Application.ScreenUpdating = <span class="TOKEN">True</span>
<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)

Bemerkungen: Wenn das Blatt „Übersicht“ bereits besteht, wird kommentarlos ein neues Blatt eingefügt – möchtest Du es von Hand aus einfügen oder ein anderes Blatt verwenden, musst Du die Zeile
Worksheets.Add = "Übersicht"
Auskommentieren sowie die Verweise aktualisieren.

Zur Eingabe per VBA-Editor siehe z.B. hier (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=55099).

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurden in diesem Beitrag der Code für dieses Forum und die Signatur angepasst.<font>

Hans-Werner
14.09.2001, 17:03
Besten Dank,
so etwas habe ich gesucht.
Ich habe noch eine Zusatzanfrage. Lassen sich gleichzeitig auch Werte aus Zellen der einzelnen Arbeitblätter, z.B. die Werte in E1, F1, J2, K2 und L2, in die neue Liste eintragen?
Gruss
Hans-Werner

jinx
15.09.2001, 11:42
<font size="2" face="Century Gothic">Moin, Hans-Werner,

machen kann man (fast) alles. Unter der weiterhin geltenden Prämisse, ggf. das Arbeitsblatt „Übersicht“ von Hand einzufügen, lässt sich z.B. folgender Code einfügen, der auch Änderungen in den Zellen der Ursprungsblätter durch Verweis auf die Blätter (also nicht nur stupides Kopieren der Werte) auf der Übersicht darstellt:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Sub</span> HansWerner02()
<span class="REM">' geschrieben f&uuml;r MS-Office-Forum EXCEL</span>
<span class="REM">' Beitrag 511</span>
<span class="REM">'</span>
<span class="REM">' Auslesen der Blattnamen einer Arbeitsmappe und</span>
<span class="REM">' des Inhalts von ausgew&auml;hlten Zellen dieser Bl&auml;tter.</span>
<span class="REM">' Eine &Auml;nderung der Quelldaten wird auf der &Uuml;bersicht ber&uuml;cksichtigt.</span>
<span class="REM">'</span>
<span class="REM">' Es muss wahlweise eine Aktivierung des automatischen Einf&uuml;gens des Blattes</span>
<span class="REM">' &Uuml;bersicht durchgef&uuml;hrt werden; wenn Einf&uuml;gung erw&uuml;nscht, wird automatisch bei</span>
<span class="REM">' Bestehen des Blattes ein zus&auml;tzliches, Tabelle&quot;x&quot; genanntes, eingef&uuml;gt</span>
<span class="REM">'</span>
<span class="TOKEN">Dim</span> Blatt <span class="TOKEN">As</span> Object
_
Application.DisplayAlerts = <span class="TOKEN">False</span>
<span class="TOKEN">On</span> <span class="TOKEN">Error</span> <span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
<span class="REM">'Worksheets.Add = &quot;&Uuml;bersicht&quot; 'Wahlweise aktivieren</span>
Worksheets(&quot;&Uuml;bersicht&quot;).Activate
Range(&quot;A1&quot;).Value = &quot;Namen der Tabellenbl&auml;tter&quot;
Range(&quot;A2&quot;).Select
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> Blatt <span class="TOKEN">In</span> Sheets
<span class="TOKEN">If</span> Blatt.Name &lt;&gt; ActiveSheet.Name <span class="TOKEN">Then</span>
ActiveCell.Value = Blatt.Name
ActiveCell.Offset(0, 1).Formula = &quot;=&quot; &amp; Blatt.Name &amp; &quot;!E1&quot;
ActiveCell.Offset(0, 2).Formula = &quot;=&quot; &amp; Blatt.Name &amp; &quot;!F1&quot;
ActiveCell.Offset(0, 3).Formula = &quot;=&quot; &amp; Blatt.Name &amp; &quot;!J2&quot;
ActiveCell.Offset(0, 4).Formula = &quot;=&quot; &amp; Blatt.Name &amp; &quot;!K2&quot;
ActiveCell.Offset(0, 5).Formula = &quot;=&quot; &amp; Blatt.Name &amp; &quot;!L2&quot;
ActiveCell.Offset(1, 0).Select
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> Blatt
Application.ScreenUpdating = <span class="TOKEN">True</span>
<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)
_
Sollte dies nicht ausreichen, bitte weitere Info

P.S.: Eine Änderung/Umbenennung der Tabellenblätter wird nicht berücksichtigt (Formeln werden automatisch korrigiert) – eine Löschung eines Blattes führt zur Fehlermeldung #BEZUG....

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurden in diesem Beitrag der Code für dieses Forum und die Signatur angepasst.<font>