Tabellenblaetter verschieben und umbennen ?

maybebaby

Mitglied
Hallo

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

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

Visual Basic:
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..
Visual Basic:
ActiveChart.Name = "DiagrammJahr"
funktioniert leider auch nicht..

ich hoffe es kann mir jemand helfen.. :confused: 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
 
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:

Code:
   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:

Code:
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
 
hallo...

danke dass is wirklich lieb von dir... !

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

:confused: :mad:
 
Hallo maybebaby,

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

Code:
   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
 
hallo,
danke dass du mir so superlieb hilfst obwohl ich mich echt doof anstelle.... :confused:


mein code sieht wie folgt aus:
Visual Basic:
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..
 
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... :mad:
 
Hallo,

also den Dateinamen, wenn du ihn so direkt angibst, musst Du in Anführungszeichen setzen:
Code:
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
 
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:
 
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
 
das funktioniert super...

danke du bist echt ein meeega schatz...

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

;-)
 
Zurück