PDA

Vollständige Version anzeigen : Neue Tabelle in Mappe einfügen und speichern


Kalle-Klamrott
12.07.2006, 08:27
Hallo zusammen,

ich habe einen Tabellenblatt erstellt das verschiedene Testergebnisse zu einem Produkt beinhaltet. Da das Produkt oder vielmehr, mehrere Produkte des öfteren getestet werden, möchte ich folgendes versuchen, um den Ordner möglichst übersichtlich zu halten:

Produkte mit gleicher Bezeichnung(aus vordefinierter Zelle ausgelesen) werden in einer .xls-Datei unter dem Produktnamen einmalig gespeichert, wobei dann für jeden neuen Testbericht zu dem gleichen Produkt eine neue Tabelle für den jeweiligen Testbogen in die .xls-Datei eingefügt wird und vielleicht sogar mit Datum als Bezeichnung versehen wird.
Kann man das Makro dann auch auf den Kopien ausblenden lassen?
Somit würde dann nicht für jeden Testbericht eine neue Datei angelegt werden.
Wie viele Tabellen können dann in einer Mappe angelegt werden?

Gruss
Dennis

Rainer Simon
12.07.2006, 09:05
Hallo Dennis,

so recht schlau bin ich aus Deiner Beschreibung nicht geworden, aber vielleicht hilft Dir das weiter:

Application.ActiveWorkbook.Worksheets.Add

Wenn Du die Eigenschaften ändern willst, hilft eine Objektvariable
Dim wsBlatt As Worksheet '.........................................Arbeitsblattobjekt
Set wsBlatt = Application.ActiveWorkbook.Worksheets.Add
wsBlatt.Name = "xxx"
wsBlatt.Move After:=Sheets(Application.ActiveWorkbook.Worksheets.Count)

Wobei ActiveWorkbook mit Vorsicht zu geniesen ist.

Gruß Rainer

Kalle-Klamrott
12.07.2006, 10:00
Hi Rainer,

erstmal Danke für Deine Hilfe! Das ist schon ungefähr was ich suche! Werd es nochmal etwas Praxisbezogener beschreiben, um Dir(und mir) vielleicht etwas weiter zu helfen:

Es existieren 38 verschiedene Produkte, die mit dem selben Testbericht bearbeitet werden. Da heisst jetzt, ich möchte 38 Dateien mit dem Produktnamen als Deiteinamen haben, wobei jetzt bei jedem neuen Test eine neue Tabelle in der entsprechenden Datei angelegt wird! Die Tabelle sollte dann mit dem Testdatum bezeichnet werden und möglichst ohne Makro sein!
Hoffe man kann es jetzt etwas besser verstehen?
Könnte man dann vielleicht die jeweilige Datei öffnen, das Tabellenblatt einfügen und speichern?

Gruss
Dennis

Rainer Simon
12.07.2006, 10:42
Hallo Dennis,

der Testbericht liegt also vor (Aufbau, Inhalt, Format) und Du möchtest jetzt die Testergebnisse eintragen (bzw. bekommst diese geliefert) und zum Schluß in die Arbeitsmappe des Produktes einfügen?

Wenn dem so ist, kannst Du es zu Fuß machen (ständiger Mehraufwand) oder versuchen per VBA (einmaliger Mehraufwand) zu lösen.

Deine Dateien mit den Testberichten können "Makrofrei" bleiben, Du brauchst nur eine "Steuerungsdatei", in welcher der Zugriff (Anlegen, Speichern usw.) erfolgt.

Gruß Rainer

Kalle-Klamrott
12.07.2006, 12:03
Genau, eine Kopie der Testblatt-Vorlage soll als Blatt(Tabelle) in eine Datei eingefügt werden. Irgendwann habe ich dann in der Datei "X" mehrere Testberichte von Produkt "X" mit dem jeweiligen Testdatum als Beschriftung der Reiter!
Das ganze möchte ich jetzt per VBA realisieren, um menschliches Versagen bei der Archivierung auszuschliessen! :)

Das Problem ist jetzt nur: WIE?
Gibt es vielleicht einen Link, eine Hilfe, eine kleinen Ansatz oder ein Stichwort wonach ich suchen könnte!? Es ist ja nicht so das ich faul bin, ich will nur nicht das Rad wieder neu erfinden! ;)

Kalle-Klamrott
19.07.2006, 10:15
Hi Leute,

bin mit meinem Problem jetzt etwas weiter gekommen, aber es hängt jetzt noch an einer kleinen Sache. Ich möchte jetzt mein Datenblatt auf dem Original markieren, kopieren und auf das neu erstellte Tabellenblatt einfügen:

Range("A1:M55").Select
Selection.Copy
Workbooks.Open "Y:\REWORK\Bond Strenght Tests\" & Cells(7, 4) & ".xls"
Set wsblatt = Application.ActiveWorkbook.Worksheets.Add
wsblatt.Name = Format(Now, "dd-mm-yyyy")
wsblatt.Move After:=Sheets(Application.ActiveWorkbook.Worksheets.Count)
ActiveSheet.Cells(1, 1).Select
ActiveSheet.Paste


Leider sagt er jetzt am Ende, dass nichts zum Einfügen in der Zwischenablage ist! Hab' das ganze mit dem Recorder abgefahren und weiss jetzt nicht mehr woran es liegt.

Hab' auf dem Original 2 Makros die möglichst nicht mit kopiert werden sollen. Jemand eine Idee, wie man die auslassen kann?

funny-peculiar
19.07.2006, 11:28
Hallo, Dennis,

warum arbeitest Du nicht mit einer Direktzuweiseung der Bereiche? Lösungen über die Zwischenablage können eventuell zu ungewollten Ergebnissen führen. Also: neue Mappe öffnen, dann ein Objekt auf die neu eingefügte Tabelle setzen und Daten austauschen:

Dim wbThis As Workbook
Dim wbThat As Workbook
Dim wsCopyTo As Worksheet
Dim wsCopyFrom As Worksheet
Set wbThis = ThisWorkbook
Set wsCopyFrom = wbThis.ActiveSheet
'folgende Zeile ist ungetestet, bitte prüfen!!!
Set wbThat = Workbooks.Open("Y:\REWORK\Bond Strenght Tests\" & wsCopyFrom.Cells(7, 4) & ".xls")
Set wsCopyTo = wbThat.Worksheets.Add
With wsCopyTo
.Name = Format(Now, "dd-mm-yyyy")
.Move After:=wbThat.Sheets(wbThat.Worksheets.Count)
.Range("A1:M55").Value = wsCopyFrom.Range("A1:M55").Value
End With
Ciao,
Holger

Kalle-Klamrott
19.07.2006, 12:02
Hi Holger,

besten Dank aus "Down Under" :)
!!! Funktioniert bestens!

Gruss
Dennis