Laufzeitfehler 438 Objekt unterstützt diese Eigenschaft oder Methode nicht

WI_Studenten

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem.

Ich wollte mir einen Button mit Makro bauen mit dem ich automatisch in den nächsten Monat springen kann

1.dabei möchte ich die Datei vorher speichern
2.dann die Vorlage ins Workbook laden
3. Reststunden von dem aktuellen Workbook in die Vorlage kopieren
4.und dann die Datei wieder abspeichern


Quellcode

  1. 'nächster Monat
  2. Sub Speichern()
  3. Application.Dialogs(xlDialogSaveAs).Show
  4. Dim wkbQuelle As Workbook
  5. Set wkbQuelle = ThisWorkbook
  6. Dim wkbZiel As Workbook



  7. Datei = Workbooks.Open("H:\daten\Berichte\Test\_Master.xlsm")
  8. 'If Datei = False Then Exit Sub
  9. Set wkbZiel = Datei


  10. Set RestStunden = wkbQuelle.Sheets("Work").Cells(21, 6)

  11. wkbZiel.Sheets("Work").Cells(27, 6) = RestStunden
  12. Application.Dialogs(xlDialogSaveAs).Show
  13. End Sub


im Bereich des Quellcodes 12-14 kommt dann die Fehlermeldung
Quellcode

  1. Laufzeitfehler 438 Objekt unterstützt diese Eigenschaft oder Methode nicht


Kann mir da jemand weiterhelfen ?

confused.png
 
Zuletzt bearbeitet:

Yaslaw

alter Rempler
Moderator
Der Code wirft mehr Fragen auf als dass er klärt

- Wo ist Reststunden definiert?
- Wo ist Datei definiert
- Datei ist ein Workbook-Objekt. Also muss es mit Set übergeben werden (Zeile 10)
- Zeile 18 speichert das aktuelle Workbook. Nicht aber das wkbZiel
 

WI_Studenten

Grünschnabel
die reststunden sind in der tabelle work gespeichert und sollen in die neue Arbeitsmappe übernommenwerden
Das mit der Datei habe ich umbebaut sieht jetzt so aus

Set wkbZiel = Workbooks.Open("H:\daten\Berichte\Test\Master.xlsm")

habe Quellcode zeile 10/11 gelöscht und 12 verändert
 

Yaslaw

alter Rempler
Moderator
Und? Wie verhält es sich jetzt?

Reststunden ist aber hier eine Variable. Und die ist nicht definiert. Egal was irgendwo in einer Tabelle steht, denn VBA <> Excel Daten.