Arbeitsblatt in andere Datei verschieben?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Heißt die zu öffnende Datei "Dateipfad"? Dann fehlen Laufwerk und Pfad.

Oder ist das eine Variable, die LaufW, DateiPfad und -Namen enthält? dann ohne Anf-Z.

Warum schaltest Du hier Diaplayalerts aus? So siehst du nicht, obs funktioniert!

Wird die Datei denn geöffnet? vermutlich nicht. Weshalb auch das Worksheet nicht gefunden wird. (müsstest du bei Abbruch des Makros sehen)

Ggf musst du vor dem Copy ein

Application.Windows("Dateiname.xlsx").activate (oder wars visible=true?) einfügen.

Ausserdem: Activeworkbook.Worksheets("Berechnung").activate

Bevor Du das in Pems (als Variable ohne Anf-Z) einfügen kannst, musst Du wieder dieses Fenster aktivieren (vllt gehts mit ...Copy destination:=PEMS Before=Sheets(1) oder so ähnlich, habs jetzt nicht ausprobiert.

(vllt ist das ja heute vereinfacht, es war zumindest mal so, glaube ich mich zu erinnern)

computi 
Fragesteller
 25.07.2017, 07:40

Dateipfad hatte ich nur eben reingeschrieben, passt schon. Datei wird auch geöffnet, die Displayalerts hab ich ausgestellt, falls die Datei bereits geöffnet ist.

Tatsächlich! Lag wohl an den Anführungszeichen und dem ActiveWorkbook.

Ne Frage: was ist der Unterschied zwischen .Worksheets und .Sheets?

0
Iamiam  25.07.2017, 12:52
@computi

danke fürs Kompliment!

Worksheets sind Tabellenblätter, Sheets umfasst auch zB Diagramm-Blätter und was es sonst noch geben könnte (weiß nicht, ob zB Pivot-Tabellen zu Worksheets gehören)

Wenn der Name eindeutig ist, ist Sheets sicherer, aber beim Index kanns schon durcheinander gehen.

0

danke fürs Kompliment!

Worksheets sind Tabellenblätter, Sheets umfasst auch zB Diagramm-Blätter und was es sonst noch geben könnte. (noch in xl4 zB Makro-Blätter, die auch später noch eine Zeitlang zulässig waren (oder noch sind?)
Weiß nicht, ob zB Pivot-Tabellen zu Worksheets gehören, und auch mit Formularen hatte ich nie zu tun.

Wenn der Name eindeutig ist, ist Sheets sicherer, aber beim Index kanns schon durcheinander gehen.

Iamiam  25.07.2017, 13:08

eine andere Möglichkeit:

  • on error resume next
  • Workbooks("...").activate (oder windows("...")?)
  • if err() > 0 then workbooks("...").open 'vllt auch if ErrNumber > 0
  • on error goto 0
0