Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
260to264
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
260to264
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten sollen Tabellenblätter erzeugen?!?

Spalten sollen Tabellenblätter erzeugen?!?
23.05.2003 21:12:52
Norman
Hallo liebe Exceluser:

Ich habe eine Arbeitsmappe die aus 1 Tabellenblatt namens „Übersicht“ besteht.

Leider habe ich von VBA noch wenig bis gar keine Ahnung.

Ab Spalte „C“ enthält „Übersicht“ Daten, die pro Spalte jeweils in neue Arbeitsblätter übernommen werden sollten. Dazu folgende Fragen:

1. Wie kann man die Daten ab Spalte „C“ automatisch in ein neues – und irgendwie zu erzeugendes – Arbeitsblatt übernehmen? Jede Spalte ab C sollte ein neues Arbeitsblatt erzeugen. (Also die Daten von „C“ in einem neuen Blatt, die Daten von „D“ in einem neuen, usw.)

2. Dazu sollte die Zelle „Übersicht C1“ in dem neu erzeugten Tabellenblatt dann bei C22 eingefügt werden, „Übersicht C2“ bei C23, usw. Ab Übersicht „C53“ sollte es dann im neuen Tabellenblatt bei F22 weitergehen.

3. Ist es möglich diese neu erzeugte Blätter automatisch von 1-Schluss durchzunummerieren, ohne dass Excel die Blätter „Tabelle1“ etc nennt? (Mir schwebt nach dem Arbeitsblatt „Übersicht“ eine einfache, aufsteigende Durchnummerierung vor, à la „Übersicht – 1 – 2 – 3“, etc.

4. Können die auf Grundlage der „Übersicht“ erzeugten Tabellenblätter einer formatierte Tabellenvorlage zu Grunde liegen, in der dann wie unter 2. beschrieben die Daten der Übersicht eingetragen werden?

Kann Excel das beschriebene leisten? Über Eure Hilfe würde ich mich mächtig freuen.

Gruß,
Norman.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Spalten sollen Tabellenblätter erzeugen?!?
24.05.2003 08:53:08
Nepumuk

Hallo Norman,
Punkt 1-3 war ungefähr klar. Wobei ich davon ausgegangen bin, dass die Daten aus Spalte D in der Übersicht-2 in Spalte D22 und die Daten aus Spalte E in der Übersicht-3 in Spalte E22 usw. beginnen. Aber was du unter Punkt 4 willst, ist mir nicht klar. Kannst du das mal näher bescheiben.
Hier der momentane Code:

Gruß
Nepumuk

Re: Spalten sollen Tabellenblätter erzeugen?!?
24.05.2003 10:56:20
Norman

Hallo Nepumuk:

vielen Dank für das Skript - es läuft ohne Probleme durch, einfach super.

Allerdings "rutschen" die Daten in den erzeugten Übersichten (Übersicht-1 und folgende) immer weiter nach rechts. Wo muss ich den Code ändern, damit die Daten aus der Spalten "Übersicht D", "Übersicht E", usw jeweils in der Spalte C der neuen Übersichten landen? Also, was ich meine, egal wo die Daten aus der "Übersicht" herkommen, sie sollten in den weiteren Tabbellenblättern immer in Spalte C landen. (also "Übersicht C" nach "Übersicht-1 C", "Übersicht D" nach "Übersicht 2 C", "Übersicht E" nach "Übersicht-3 C", usw.

Das mit der Vorlage stell ich mir so vor: ich habe eine Tabellenblattvorlage erstellt, die quasi immer denselben Text hat. Diese Vorlage (die anders aussieht als "Übersicht") sollte Grundlage der "Übersichten-1" - bis "Übersicht-x" sein. Ich weiß nicht, ob ich das verständlich beschreibe, sorry.

Nochmals vielen Dank für die Hilfe, hier lernt man richtig was!
Gruß,
Norman
(bin heute nachmittag-abend weg, kann wahrscheinlich erst sonntag mich wieder der sache widmen)


Anzeige
2Probleme weniger, aber...
24.05.2003 13:05:38
Norman

Hullo Nepumuk:

bevor ich weg bin habe ich doch noch an Deinem Code gebastelt und konnte so 2 Probleme selbst aus dem Weg räumen("erfolgserlebnishab"), hier meine veränderte Version:

Public Sub Verteilen()
Dim Zeile As Long, Spalte As Integer, Ausgabespalte As Integer
Application.ScreenUpdating = False
With Worksheets("Übersicht")
For Spalte = 3 To .Cells(1, 256).End(xlToLeft).Column
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Nr" & CStr(Spalte - 2)
Ausgabespalte = 3
For Zeile = 1 To .Cells(65536, Spalte).End(xlUp).Row Step 52
Range(Cells(10, Ausgabespalte), Cells(73, Ausgabespalte)) = .Range(.Cells(Zeile, Spalte), .Cells(Zeile + 51, Spalte)).Value
Ausgabespalte = Ausgabespalte + 3
Next
Next
End With
Application.ScreenUpdating = True
End Sub

Durch Ausgabespalte = 3 wird erreicht, dass alle erzeugten Blätter die Daten von "Übersicht" brav jeweils in Spalte C ausgeben.
Durch Ausgabespalte = Ausgabespalte + 3 wird erreicht, dass in den erzeugten Blättern der Umbruch in Spalte F dargestellt wird und nicht in D.
(Aus "Übersicht-1", etc habe ich aus Platzgründen "Nr1", etc gemacht.

Mein Problem: In den erzeugten Tabellenblättern soll die Sache in Spalte C jeweils schon ab Zeile 10 losgehen (das habe ich gestern nacht verpennt). Ich habe zwar das zwar versuchsweise verändert, und die erzeugten Tabellenblätter geben jetzt die Daten der "Übersicht" Spalten schön ab Zeile 10 aus, aber den im ersten posting beschriebenen umbruch krieg ich noch nicht korret hin: Nach wie vor sollten die Daten aus den "Übersicht"-Spalten ab Zeile 53 in den erzeugten Tabellenblättern in der Spalte F ab Zeile 22 dargestellt werden. (momentan wird auch der umbruch in F ab Zeile 10 ausgegeben)

Vielen Dank für Dein Mühe!
Gruß,
Norman.

Anzeige
Re: 2Probleme weniger, aber...
24.05.2003 22:08:01
Nepumuk

Hallo Norman,
das es in Spalte F weitergehen soll, habe ich übersehen. Jetz mal der angepasste Code:

Das mit der Tabellenblattvorlage ist an sich kein Problem. Wenn du mir schreibst, in welchem Verzeichniss es sich befindet.
Gruß
Nepumuk

Re: 2Probleme weniger, aber...
25.05.2003 02:04:00
Norman

Hallo Nepumuk:

Super klasse. Der Code läft durch wie geschmiert! Danke!

also, das Verzeichnis für die Vorlage der neu erzeugten tabellenblätter heißt:

c:\eigeneDateien\dokumente\norman\privat\exceltest

ich hab' bewusst nicht das excel standard-vorlagen Verzeichnis genommen, da die ganze Sache sobald alles klappt auf eine andere Maschine gezogen wird und ich aus dem Grund alles an einem Platz haben möchte.

Einen schönen Sonntag wünscht

Norman.


Anzeige
Re: 2Probleme weniger, aber...
26.05.2003 19:32:20
Nepumuk

Hallo Norman,
das mit der Vorlage ist nicht ganz unproblematisch. Denn die bekommen beim öffnen einen Index. Wenn nun das Programm zweimal läuft und die Excelsitzung dazwischen nicht geschlossen wurde, dann hat die Vorlage beim zweiten mal öffnen den Index zwei. Daher wäre es güstiger diese Vorlagen als normale xls - Datei zu speichern. Dann kann auf keinen Fall etwas schief gehen.

Probier das mal aus.
Gruß
Nepumuk

Laufzeilenfehler in
27.05.2003 00:01:01
Norman

Hallo Nepumuk:

das Makro bricht nun mit folgender Meldung in Zeile 5 ab:
(nachdem es durch Zeile 4 die "Vorlage" geöffnet hat)

Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs

Zwecks Verzeichnisänderung sieht der Code so aus:

Public Sub Verteilen()
Dim Zeile As Long, Spalte As Integer, Ausgabespalte As Integer, Ausgabezeile As Integer
Application.ScreenUpdating = False
Workbooks.Open Filename:="D:\EigeneDateien\Dokumente\DC\Vorlage.xlt"
Sheets(1).Copy After:=Workbooks("Übersicht.xls").Sheets(1)
Workbooks("Vorlage1").Close
With Worksheets("Übersicht")
For Spalte = 3 To .Cells(1, 256).End(xlToLeft).Column
Worksheets(2).Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Nr" & CStr(Spalte - 2)
Ausgabespalte = 3
Ausgabezeile = 10
For Zeile = 1 To .Cells(65536, Spalte).End(xlUp).Row Step 52
Range(Cells(Ausgabezeile, Ausgabespalte), Cells(Ausgabezeile + 51, Ausgabespalte)) = .Range(.Cells(Zeile, Spalte), .Cells(Zeile + 51, Spalte)).Value
Ausgabespalte = Ausgabespalte + 3
Ausgabezeile = 22
Next
Next
End With
Application.DisplayAlerts = False
Sheets(2).Delete
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub

Dazu eine Verständisfrage: Du schreibst, ich soll die Vorlage besser als xls - Datei spreichern. Warum heißt es dann in Zeile 4
Filename:="D:\EigeneDateien\Dokumente\DC\Vorlage.xlt ???
und in Zeile 6
Workbooks("Vorlage1").Close ???

- der Code bricht aber auf jeden Fall in Zeile 5 ab, egal ob ich die "Vorlage" als xls oder xlt speichere.

Vielen Dank für Deinen Rat.

cu,
Norman



Anzeige
Re: Laufzeilenfehler in
27.05.2003 15:14:52
Nepumuk

Hallo Norman,
ich hab ja geschrieben, das es mit einer xlt-Datei Probleme geben wird. Wenn die Vorlage "Vorlage" heißt und du sie als xls-Datei speicherst, dann muss die Zeile so geändert werden.

Workbooks("Vorlage.xls").Close False

Und die Open-Anweisung muss dann so lauten:

Workbooks.Open Filename:="C:\eigeneDateien\dokumente\norman\privat\exceltest\Vorlage.xls"

Gruß
Nepumuk

Problem bleibt
27.05.2003 23:24:13
Norman

Hallo Nepumuk:

Danke für die Verbesserungen, aber die habe ich selbst schon gestern abend ausprobiert. Es bleibt dabei: auch mit diesen Veränderungen springt der Debugger ab Zeile 5 an

Sheets(1).Copy After:=Workbooks("Übersicht.xls").Sheets(1)

und es erscheint die Meldung

Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs

Ich sollte Dich glaub' schon lange auf 1 oder 2 Bier einladen, solange wie Du Dich schon mit mir rumärgerst - sorry (aber auch ein dickes Dankeschön!)

Gruß,
Norman.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige