Exceldatei erstellen: Jedes Blatt eigene Beschriftung

  • Word

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Sahni.

    Exceldatei erstellen: Jedes Blatt eigene Beschriftung

    Ich möchte per Word eine Exceldatei erstellen, soweit klappt das auch.
    Nun möchte ich aber gleich 5 Blätter erstellen die einen eigenen Namen haben (z.b. BlattA, BlattB)
    und in jedem dieser Blätter ist die erste Zeile schon vorgeschrieben (bsp. "Name", "Straße")

    Mein Code sieht mom etwas wirr aus^^

    Visual Basic-Quellcode

    1. Dim ExcelSheet As Object
    2. Set xlApp = CreateObject("Excel.Application")
    3. Set xlWB = xlApp.Workbooks.Add
    4. Set ExcelSheet = CreateObject("Excel.Sheet")
    5. Set xlWS = xlWB.Worksheets(1).Name = "Präsentationsvereinbarung"
    6. Set xlWS = xlWB.Worksheets(2).Name = "Ticketvereinbarung"
    7. ExcelSheet.Application.Cells(1, 1).Value = "Name"
    8. ExcelSheet.Application.Cells(1, 2).Value = "Straße"
    9. ExcelSheet.SaveAs "H:\Marketing\Speichern.xlsx"


    Jetzt weiß ich nur nicht genau wie ich das hinbekommen soll ?(

    Mein Ansatz zum Probieren ist folgender:
    Jedes Worksheet aktivieren und die Bezeichnung einfügen...
    im mom meckert er aber schon bei den Zeilen

    Visual Basic-Quellcode

    1. Set xlWS = xlWB.Worksheets(1).Name = "Präsentationsvereinbarung"
    2. Set xlWS = xlWB.Worksheets(2).Name = "Ticketvereinbarung"


    Mal davon abgesehen, dass es so im mom noch nicht funktioniert...gibt es eine Lösung um nicht einen ellenlangen Code schreiben zu müssen?
    xlWS hat dann einen boolschen Wert, der angibt ob der name bereits so ist, wie du den gerne hättest...
    so sollte es eher gehen:

    Visual Basic-Quellcode

    1. xlWB.Worksheets(1).Name = "Präsentationsvereinbarung"
    2. xlWB.Worksheets(2).Name = "Ticketvereinbarung"
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Schreibe statt diesem hier:

    Visual Basic-Quellcode

    1. Set xlWS = xlWB.Worksheets(1).Name = "Präsentationsvereinbarung"
    2. Set xlWS = xlWB.Worksheets(2).Name = "Ticketvereinbarung"


    das hier:

    Visual Basic-Quellcode

    1. xlWB.Worksheets(1).Name = "Präsentationsvereinbarung"
    2. xlWB.Worksheets(2).Name = "Ticketvereinbarung"


    Wenn in jeder Tabelle die gleichen Überschriften stehen, kannst du mit einer For-Next-Schleife die Blätter durchgehen. Wenn nicht, musst du halt für jedes Blatt einzeln die Überschriften bestimmen. Du kannst ja "With" einsetzen, um den Code etwas zu verkürzen.

    Übrigens:

    Was du da mit dem "ExcelSheet" machst, verstehe ich nicht ganz. Das wäre doch dann z. B. xlWB.Worksheets(1).Cells...


    EDIT:

    Oops, jvbsl war schneller.
    soweit erstmal danke^^
    es funktioniert aber dennoch mom nicht so wie ich mir das wünsche...
    --
    Das mit dem Exel.Sheet war nur ein DummyCode aus dem I-net zum rumprobieren^^
    --
    Mein Code sieht jetzt folgendermaßen aus:

    Visual Basic-Quellcode

    1. For i = 1 To 5
    2. Set xlWS = xlApp.Sheets.Add(, xlWB.ActiveSheet, 1)
    3. Set xlWS = xlApp.Sheets(i)
    4. Set xlWS = xlWB.ActiveSheet
    5. xlWS.Name = "MySheet " & i
    6. xlWS.Activate
    7. xlWB.Worksheets(1).Cells(1, 1).Value = "Name"
    8. xlWB.Worksheets(1).Cells(1, 2).Value = "Straße"
    9. Next i

    Zum Einen werden nur die Zellen in dem ersten Blatt benannt, zum 2. (logischerweise) werden die Blätter mit "Mysheet1", "Mysheet2" etc bezeichnet, weiß aber nicht wie ich das umschreiben soll, damit jedes Blatt einen komplett anderen Namen hat.

    Und zu guter Letzt wollte ich gern das Blatt "Tabelle1" das immer erzeugt wird löschen mit dem Befehl

    Visual Basic-Quellcode

    1. xlWB.Worksheets("Tabelle1").Delete

    funzt aber i-wie auch nicht...(oder muss ich des erst wieder aktivieren?? bestimmt :huh:


    //EDIT

    Also ich hab zumindest schonmal rausgefunden, dass ich warhscheinlich die Blattbezeichungen in einem Array schreiben muss und diese dann mit einer For Each Schleife auslesen lass muss, denk ich...und dann mit With die erste Zeilen jeweils beschriften...Ich weiß nur nicht wie des so aussehen soll???

    //EDIT

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Sahni“ ()