Datei nach Kopie schließen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Datei nach Kopie schließen
von: MikeS
Geschrieben am: 12.06.2002 - 15:52:15

Hallo Leute,

habe nachfolgendes Problem:

Ich habe in meiner Datei „Möbelkalkulation.xls“ gibt es eine Tabelle „Hauptübersicht“,
mehrere Buttons postiert,
mit denen ich eine Datei (jede Datei enthält nur 1Sheet) aus dem
jeweiligem Ordnern auswählen kann.

Nach Doppelklick auf die gewünschte Datei1 wird diese geöffnet
und man kann in der sich nun öffnenden InputBox den voreingestellten
Blattnamen übernehmen/ändern.

Nach drücken der OK-Taste wird dieses neue Blatt in die "Möbelkalkulation.xls" kopiert.

Das eben in die Mappe "Möbelkalkulation.xls" eingefügte (kopierte) Blatt,
wird nun am Bildschirm angezeigt.

Bis dahin funktioniert der Code einwandfrei!

Ruft man nun das Menü Fenster auf sieht man, daß die Datei weiterhin im Hintergrund
geöffnet ist.

Ich möchte aber, daß nach Kopie der jeweiligen Datei (hier Datei1) diese wieder geschlossen wird
und nur die „Möbelkalkulation.xls“ geöffnet bleibt, damit ich nachher nicht alle Dateien außer
„Möbelkalkulation.xls“ von Hand über das Fenster schließen muß.

Hier der aktuelle Code:


Private Sub Neues_Objekt_aus_Datei(Ordner As String)
 Dim Dateiname
 Dim Blattname
 Dim AktPfad As String
 Dim anz As Byte
 AktPfad = DeinPfad & Ordner
 ChDrive Left(DeinPfad, 1)
 ChDir AktPfad
 Dateiname = Application.GetOpenFilename("Excel-Dateien,*.xls", , "bitte gewünschten Möbeltyp doppelklicken")
    If Dateiname <> False Then
    Workbooks.Open FileName:=Dateiname
    Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos " & ActiveWorkbook.Worksheets(1).Name)
        If Blattname <> "" Then
        anz = ThisWorkbook.Sheets.Count
        ActiveSheet.Copy after:=ThisWorkbook.Sheets(anz)
        ActiveSheet.Name = Blattname
        End If
    End If
End Sub

Vielleicht kann mir jemand helfen.
Vielen Dank
MikeS

nach oben   nach unten

Re: Datei nach Kopie schließen
von: Heinz
Geschrieben am: 12.06.2002 - 16:08:31

Hallo MikeS,
Gehe doch vor deinem End Sub zurück auf dein Tabellenblatt von dem du kommst, schließe es und wechsle wieder in die andere Mappe

Ich bin gerade im Unterricht und kann aus Zeitgründen den Code nicht schreiben.
Gruß Heinz


nach oben   nach unten

Re: Datei nach Kopie schließen
von: Hajo
Geschrieben am: 12.06.2002 - 16:09:27

Hallo Mike

vielleicht ein anderer Ansatz. Ich muß mal schreiben ich habe mir Deinen Code nicht angesehen.
Aber es hört sich so an als ob Du in einer Gesamtkalkulation neie Register einfügts.

Ich habe es so gelöst die einzelnen Registervorlagen sind als XT Datei im Netzgespeichert und werden mit


    Sheets.Add Type:="\\ntserver1\texte\HZiplies\Preisliste\Roboter.xlt"

eingefügt. Das mit dem Umbenennen habe ich nicht gemacht dürfte aber nicht das Problem sein da da eingefügte Register das Aktive ist.

gruß Hajo

nach oben   nach unten

Re: Datei nach Kopie schließen
von: Armin
Geschrieben am: 12.06.2002 - 16:16:30

Private Sub Neues_Objekt_aus_Datei(Ordner As String)
Dim Dateiname
Dim Blattname
Dim AktPfad As String
Dim anz As Byte
AktPfad = DeinPfad & Ordner
ChDrive Left(DeinPfad, 1)
ChDir AktPfad
Dateiname = Application.GetOpenFilename("Excel-Dateien,*.xls", , "bitte gewünschten Möbeltyp doppelklicken")
If Dateiname <> False Then
Workbooks.Open Filename:=Dateiname
Blattname = InputBox("Wie soll das neue Pos.-Blatt heißen ?", "Blattbenennung", "Pos " & ActiveWorkbook.Worksheets(1).Name)
If Blattname <> "" Then
anz = ThisWorkbook.Sheets.Count
ActiveSheet.Copy after:=ThisWorkbook.Sheets(anz)
ActiveSheet.Name = Blattname
End If
Workbooks(Dateiname).Close savechanges:=True 'wenn gespeichert werden soll
End If
End Sub
nach oben   nach unten

Re: Datei nach Kopie schließen
von: MikeS
Geschrieben am: 12.06.2002 - 16:28:14

Hallo Armin,

vielen Dank für Deine Antwort:

die Ergänzung Deiner Codezeile:

Workbooks(Dateiname).Close savechanges:=True 'wenn gespeichert werden soll

verursacht die Fehlermeldung 9

Index außerhalb des gültigen Bereiches.

Das kopieren der Datei hat geklappt. Doch die kopierte Datei
ist im Fenster/Hintergrund immer noch geöffnet.

Vielleicht noch `ne Idee?

Dankeschön
MikeS

nach oben   nach unten

Re: Datei nach Kopie schließen
von: Armin
Geschrieben am: 12.06.2002 - 16:40:57

Du bist warscheinlich nicht mehr im aktuellen Sheet.
Das passiert wenn Du mehrere Workbooks öffnest. Am besten aktuelles also aufrufendes merken (Merke=ActiveWorkbook.Name)und nach dem schliesen Workbooks(merke).Activate. Dies ist besonders wichtig xla's !

nach oben   nach unten

Re: Datei nach Kopie schließen
von: Armin
Geschrieben am: 12.06.2002 - 16:46:08

Gerade fällt mir noch auf, vielleicht hast Du auch für Dateiname den Pfad mit dabei das darf an dieser Stelle nicht sein!
Also nur "Möbelkalkulation.xls"!
Es geht auch Workbooks(ActiveWorkbook.Name).Close savechanges:=True
nach oben   nach unten

Bekomme es leider nicht hin
von: MikeS
Geschrieben am: 12.06.2002 - 20:02:16

Hallo Armin,

trotz Deiner Tipps von heute morgen bekomme ich es leider nicht
hin.

Ich habe mehrere Varianten ausprobiert, doch entweder wurde
meine Möbelkalkulation anstatt des Blattes, welches ich soeben geöffnet+kopiert hatte, geschlossen.

Oder die Fehlermeldung-Nr.: 9
"Index außerhalb des gültigen Bereichs"

Ich bin damit echt überfordert, da ich noch nicht so fit
mit VBA bin.

Vielleicht bis später
Ciao MikeS

nach oben   nach unten

Re: Bekomme es leider nicht hin
von: Armin
Geschrieben am: 13.06.2002 - 08:56:31

Ich weis jetzt worin Dein Problem besteht. Wenn Du möchtest Mail mich an.

nach oben   nach unten

mail ist unterwegs!!!
von: MikeS
Geschrieben am: 13.06.2002 - 09:40:14

Ciao MikeS

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Tabellen verknüpfen"