# Tabellenblaetter verschieben und umbennen ?



## maybebaby (8. Juni 2007)

Hallo 

leider muss ich mal wieder mit einer ganz banalen Frage nerven, aber ich bin und bleibe vorerst wohl kompletter Anfänger..    

ich habe ziemlich viele tabellenblätter und würde diese deshalb gerne in die richtige reihenfolge kopieren... ich habe es wie folgt versucht:


```
Worksheets(Diagramm1).Move before:=Worksheets(P1)
```

leider bekomme ich nur eine Fehlermeldung und es passiert sonst nicht viel.

Ausserdem würde ich meinen erzeugten Diagrammen gerne einen vernünftigen Namen geben.. 

```
ActiveChart.Name = "DiagrammJahr"
```
funktioniert leider auch nicht..

ich hoffe es kann mir jemand helfen..     ich hab mir zwar schon einige bücher angeschaut jetzt, aber so präzise finde ich leider nirgends warum ich immer alles irgendwie falsch mache...

viele liebe grüße und tausend mal danke für die antworten...

maybebaby


----------



## ronaldh (8. Juni 2007)

Hallo maybebaby,

zunächst mal finde ich, dass Du das doch ganz gut machst! Du hast ja inzwischen auch schon ein Renomee von 1!

Um einem Worksheet einen Namen zu geben, und dies an bestimmter Stelle einzufügen, mache ich das wie folgt:


```
Dim wb As Excel.Workbook
   Dim ws As Excel.Worksheet
   Set wb = xlApp.Workbooks.Add
   Set ws = wb.Worksheets(2)
   ws.Name = "Test"
```

In diesem Fall wird als Worksheet 2 ein Worksheet mit dem Namen "Test" angelegt.

Das Verschieben habe ich im Programmcode auch noch nicht gemacht (Brauchte ich noch nicht). Ich hab es eben mal mit dem Makrorecorder von Excel gemacht, da kommt folgender Code heraus:


```
Sub Makro1()

'
    Sheets("Test").Select
    Sheets("Test").Move After:=Sheets(3)
End Sub
```


Den Code, den der Makrorecorder erzeugt kann man so fast genau in den eigenen Programmcode übernehmen. 

Liebe Grüsse
ronaldh


----------



## maybebaby (8. Juni 2007)

hallo...

danke dass is wirklich lieb von dir... !

ich scheine aber ein grundsätzliches problem zu haben... ich bekomme immerzu Laufzeitfehler 424
Objekt erforderlich...


----------



## ronaldh (11. Juni 2007)

Hallo maybebaby,

ich hab es eben nochmal im Programmcode ausprobiert, so geht es:


```
Set xlApp = New Excel.Application
   Set xlBook = xlApp.Workbooks.Open(xlDsn)
   Set xlSheet = xlApp.ActiveWorkbook.Sheets(SheetNr)
   xlApp.ActiveWorkbook.Sheets("Tabelle1").Select
   xlSheet.Move After:=xlApp.ActiveWorkbook.Sheets("Tabelle3")
```

Dieser Code verschiebt den Sheet "Tabelle1" hinter "Tabelle3".

Liebe Grüsse
ronaldh


----------



## maybebaby (11. Juni 2007)

hallo,
danke dass du mir so superlieb hilfst obwohl ich mich echt doof anstelle....  


mein code sieht wie folgt aus:

```
Sub verschieben()

   Set xlApp = New Excel.Application
   Set xlBook = xlApp.Workbooks.Open(Resourcenplanung_Bereich_b_2.xls)
   Set xlSheet = xlApp.ActiveWorkbook.Sheets(3)
   xlApp.ActiveWorkbook.Sheets("Diagramm3").Select
   xlSheet.Move After:=xlApp.ActiveWorkbook.Sheets("Woche")
   
End Sub
```

ich hab immer noch das problem mit dem dummen erforderlichen objekt.
hab ich das richtig verstanden dass ich xlDsn durch den dateinamen ersetze ?
und dort wo ich die 3 eintrag, das is die blattnummer von dem diagramm3 welches verschoben werden soll.... :suspekt:

nunja... ich trau mich schon gar nich mehr zu sagen dass es nicht funktioniert... aber es is echt komisch..


----------



## maybebaby (11. Juni 2007)

ich habe es auch mit xlDsn versucht, also nicht direkt den dateinamen eingetragen.... weil ich echt nicht weiss woran es hängt.

könnte es sein dass es deshalb nicht geht weil ich ein diagramm * = charts* verschieben will und kein sheet ?

ich bin echt verwirrt...


----------



## ronaldh (12. Juni 2007)

Hallo,

also den Dateinamen, wenn du ihn so direkt angibst, musst Du in Anführungszeichen setzen:

```
Set xlBook = xlApp.Workbooks.Open("Resourcenplanung_Bereich_b_2.xls")
```

Wobei da vermutlich noch eine Pfadangabe erforderlich ist, es sei denn, die Datei steht in Deinem Anwendungsverzeichnis.

Aber sag mal, Du arbeitest doch mit VB6, oder machst Du das in VBA? Meine Beispiele bezogen sich immer auf VB6. Falls Du es direkt im VBA von Excel machst, kannst Du dr das ganze ja auch mit dem Makrorecorder aufzeichnen und erzeugen lassen.

Ind in VB6 fehlt Dir vielleicht der Verweis auf Excel: Unter Projekt/Verweise musst Du "Microsoft Excel x.x Library" anhaken (x.x ist die Version, bei mir 11.0 für Excel 2003).

Hilft Dir das weiter? Und mach dir keinen Kopf, Deine Fragen sind nicht doof. Da habe ich hier schon andere Dinge erlebt. Das ganze ist ja auch kein ganz einfaches Thema.

Liebe Grüsse
ronaldh


----------



## maybebaby (13. Juni 2007)

Hallo,

ohhh jeh ich bin ja echt doof das hätte ich dazu schreiben sollen, ich arbeite mit VBA.

tut mir leid dass ichs nich gleich geschrieben hab, aber ich hab erst vor ein paar tagen gecheckt mit was ich arbeite, vorher warn mir die unterschiede von den VBs gar nicht klar...

sorry und viele liebe grüße,

jackie


PS: es geht übrigens immer noch nicht  aber wenn es für VB6 ist erklärt es das vielleicht ?

wie geht das mit dem macros aufzeichnen ?
ich hab bisher immer nur alles direkt gecoded.... und es is schon ziemlich viel... :suspekt:


----------



## ronaldh (14. Juni 2007)

Hallo Jackie,

kein Problem! 

Aber mit VBA sollte es eigentlich einfacher sein. 

Du klickst auf Extras/Makro/Aufzeichnen. Dann führst Du die Aktionen durch, die Du machen willst. Wenn damit fertig, gehst Du auf Extras/Makro/Aufzeichnung beenden.

Wenn Du dann unter Makros/Bearbeiten gehst, findest Du sozusagen ein Programm, was Excel aus Deinen Aktionen generiert hast. Das kannst Du natürlich noch Deinen Wünschen entsprechend bearbeiten und ändern.

Liebe Grüsse
Ronald


----------



## maybebaby (15. Juni 2007)

das funktioniert super... 

danke du bist echt ein meeega schatz...

freu.. das hilft mir schonmal um einiges.. mal sehen wie weit ich jetzt komme !!

;-)


----------



## Highspeeder (15. Juni 2007)

*noch dümmer gefragt ?*

Funktioniert VBA eigentlich denn auch mit dem OPenOffice von Sun  Gibts da auch Makros ? also, da kann ich ja auch *.doc und *.xls mit öffnen.....
Java-Laufzeitbibliothek fehlt...nanu ? Wo kriege ich denn sowas her ?


PS MS-Office ist Schrott.


----------



## ronaldh (15. Juni 2007)

Hallo maybebaby,

danke für Deine liebe Antwort! Freut mich, wenn es Dir geholfen hat.

Und zu Highspeeder:
Wenn Du Fragen hast, mach einen eigenen Thread auf, der Mißbrauch anderer Threads ist kein guter Stil.

Zu Deiner Frage:
Ob VBA unter OpenOffice geht, kann ich mir nicht wirklich vorstellen, denn VBA ist nun mal ein Mircosoft-Produkt, welches durch die vielen VB-Versionen seit vielen Jahren gereift ist. Wenn Du mit OpenOffice arbeitest (ich tue das nicht) dann solltest Du  eigentlich wissen, ob es da auch eine Programmiermöglichkeit gibt.

Gerade dadurch zeichnet sich Microsoft Office ja aus, dass es außerordentlich flexibel ist. Deine Aussage MS Office sei schrott, ist in meinen Augen Polemik und durch nichts begündet. Wenn OpenOffice keine so leistungsfähige Programmierfunktion hat, dann ist OpenOffice wohl doch eher was für Hausfrauen und Schüler.

Im Übrigen zeichnen sich MS-Produkte auch dadurch aus, dass man in der Regel über viele Jahre supportet wird, die Lebensdauer der Produkte sehr lang sind, und in vielen Fällen (soweit möglich) abwärtskompatibel. Das sind grundlegende Musts für professionelle Anwendungen, die eben nicht nur einen Sommer lang funktionieren sollen.

ronaldh


----------



## Highspeeder (15. Juni 2007)

*Support*

na der Support von Microsoft ist doch nu wirklich nix.Ich ärger mich mit ner XP Installation rum und kriege nen blauen Fehlerbildschirm.

Im übrigen : Openoffice von Sun kann man ähnlich wie Visual Basic programmieren.Und allein die geile Galleriefunktion für Bilder einfügen hat mich umgehauen ! Top ! Du siehst lauter kleine Bilder und kannst die dann einfach in den Text ziehen. Schüler und Hausfrauen  Da täuschst du dich aber schwer.

Da könntest auch sagen, Linux ist für Schüler da.


Okay..ich gebe zu...Threadmißbrauch und ich mache nen neuen Thread auf.:suspekt:


----------

