Anzeige
Archiv - Navigation
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern in externer Datei

Speichern in externer Datei
13.09.2004 14:29:48
christoph
Hallo,
in meinem Programm soll über Commandbutton 37 Worksheets(4) in einer externen Arbeitsmappe kopiert & gespeichert werden.
Habe den Code ím Forum bekommen, allerdings kopiert das Programm Worksheets(4) nur in eine Andere Arbeitsmappe ohne die entsprechende Tabelle zu speichern.
Wie muß ich den Code ändern, damit Worksheet (4) nicht nur kopiert wird, sondern wirklich direckt in dem eingegebenen Pfad der eingegeben wurde gespeichert wird?

Private Sub CommandButton37_Click()
'Speichern Von Worksheets(4),in ener  einer Arbeitsmappe, als Datei.xls
'wobei der Tabellenblattname der Dateiname.xls wird.
On Error Resume Next
Application.ScreenUpdating = False
pfad = InputBox("Geben Sie den Pfad ein, in dem das Blatt gespeichert werden soll!", , "y:")
Select Case Right(pfad, 1)
Case ""
GoTo ErrorHandler
Case Is <> "\"
pfad = pfad & "\"
End Select
Worksheets(4).Copy  '!!!
'ActiveSheet.Copy (alt)
On Error GoTo ErrorHandler
ActiveWorkbook.SaveAs Filename:=pfad & Worksheets(zahl).Name
'ActiveWorkbook.SaveAs Filename:=pfad & ActiveSheet.Name (alt)
ActiveWorkbook.Close SaveChanges:=False
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 1004
MsgBox ("Speichervorgang des Blattes wurde abgebrochen")
ActiveWorkbook.Close SaveChanges:=False
Case Else
End Select
Application.ScreenUpdating = True
End Sub

Danke für Hilfe
Christoph

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern in externer Datei
r.sch.
Hi Christoph,
ändere : ActiveWorkbook.Close SaveChanges:=False
auf ActiveWorkbook.Close SaveChanges:=True
Gruß
Reinhard
Funktioniert immer noch nicht
13.09.2004 15:14:15
christoph
Erstmal Danke,
aber leider Funktioniert es immer noch nicht.
Habe den Code jetzt so geändert:

Private Sub CommandButton37_Click()
'Speichern eines Blattes, einer Arbeitsmappe, als Datei.xls
'wobei der Tabellenblattname der Dateiname.xls wird.
On Error Resume Next
Application.ScreenUpdating = False
pfad = InputBox("Geben Sie den Pfad ein, in dem das Blatt gespeichert werden soll!", , "Y:\")
Select Case Right(pfad, 1)
Case ""
GoTo ErrorHandler
Case Is <> "\"
pfad = pfad & "\"
End Select
Worksheets(4).Copy  '!!!
'ActiveSheet.Copy (alt)
On Error GoTo ErrorHandler
ActiveWorkbook.SaveAs Filename:=pfad & Worksheets(4).Name
'ActiveWorkbook.SaveAs Filename:=pfad & ActiveSheet.Name (alt)
ActiveWorkbook.Close SaveChanges:=True
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 1004
MsgBox ("Speichervorgang des Blattes wurde abgebrochen")
ActiveWorkbook.Close SaveChanges:=False
Case Else
End Select
Application.ScreenUpdating = True
End Sub

Die datei wird als Mappe... koppiert und nicht gespeichert. Wenn ich dann auf den Button in der Symbolleiste gehe, wird die Datei in "eingene Datein" und nicht in "Y:\" gespeichert.
Danke für hilfe, christoph

Anzeige
AW: Funktioniert immer noch nicht
Timo
Hallo Christoph,
mit Worksheets(4).Copy kopierst Du es zwar in die neue Datei gespeichert, aber auch aktiviert? Du speicherst nämlich nur das aktive Workbook.
Hoffe das hilft Dir weiter.
Gruß,
Timo
?
13.09.2004 16:04:07
christoph
Werde ich nicht wirklich schlau raus.
Habe den Button in Tabelle 2 und von dort aus soll Tabelle 4 in eine externen Datei kopiert werden und direkt gespeichert werden.
Wo muß ich dann wie den Code ändern?
Danke trotzdem für den Tip
Kannst Du die Datei mal uppen?
Timo
Hallo Christoph,
kannst Du die Datei mal uploaden. Ich komme zwar heute nicht mehr dazu, würde mich aber morgen damit noch mal beshcäftigen.
gruß,
Timo
Anzeige
Jetzt noch den Zelleninhalt als Dateiname
14.09.2004 08:06:01
christoph
Moin.
Danke Timo für dein Angebot, aber es funktioniert plötzlich & ich weiß nicht warum.
Hätte aber die Datei auch nicht geuploaded, da es meine Diplomarbeit ist und ich sie nicht hier im Forum veröffentlichen will.
Ich habe da aber noch ne Frage:
Ich würde gerne den Inhalt aus Zellle C2 als Dateiname übernehmen. Wie ist das Möglich?
Hier nochmal mein aktueller Code:

Private Sub CommandButton37_Click()
'Speichern eines Blattes, einer Arbeitsmappe, als Datei.xls
'wobei der Tabellenblattname der Dateiname.xls wird.
On Error Resume Next
Application.ScreenUpdating = False
pfad = InputBox("Geben Sie den Pfad ein, in dem das Blatt gespeichert werden soll!", , "Y:\")
Select Case Right(pfad, 1)
Case ""
GoTo ErrorHandler
Case Is <> "\"
pfad = pfad & "\"
End Select
Worksheets(4).Copy  '!!!
'ActiveSheet.Copy (alt)
On Error GoTo ErrorHandler
ActiveWorkbook.SaveAs Filename:=pfad & ActiveWorkbook.Name
'ActiveWorkbook.SaveAs Filename:=pfad & ActiveSheet.Name (alt)
ActiveWorkbook.Close SaveChanges:=True
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 1004
MsgBox ("Speichervorgang des Blattes wurde abgebrochen")
ActiveWorkbook.Close SaveChanges:=False
Case Else
End Select
Application.ScreenUpdating = True
End Sub

Danke für Hilfe
christoph
Anzeige
AW: Jetzt noch den Zelleninhalt als Dateiname
Timo
Hallo Christoph,
ich bin mir nicht genau sicher, aber versuch es mal damit:
Dein Code:

Private Sub CommandButton37_Click()
'Speichern eines Blattes, einer Arbeitsmappe, als Datei.xls
'wobei der Tabellenblattname der Dateiname.xls wird.
On Error Resume Next
Application.ScreenUpdating = False
pfad = InputBox("Geben Sie den Pfad ein, in dem das Blatt gespeichert werden soll!", , "Y:\")
Select Case Right(pfad, 1)
Case ""
GoTo ErrorHandler
Case Is <> "\"
pfad = pfad & "\"
End Select
Worksheets(4).Copy  '!!!
'ActiveSheet.Copy (alt)
On Error GoTo ErrorHandler
ActiveWorkbook.SaveAs Filename:=pfad & ActiveWorkbook.Name   Änderung  (Löschen)
ActiveWorkbook.SaveAs Filename:=pfad & Range("C2").value      Änderung   (Neu)
'ActiveWorkbook.SaveAs Filename:=pfad & ActiveSheet.Name (alt)
ActiveWorkbook.Close SaveChanges:=True
Exit Sub
ErrorHandler:
Select Case Err.Number
Case 1004
MsgBox ("Speichervorgang des Blattes wurde abgebrochen")
ActiveWorkbook.Close SaveChanges:=False
Case Else
End Select
Application.ScreenUpdating = True
End Sub

Hoffe, es geht so.
Gruß,
Timo
Anzeige
Funktioniert !! Weitere modifikation
14.09.2004 10:42:57
christoph
Danke Timo,
es funktioniert perfekt!!!
Jetzt noch eine kleine Verfeinerung:
Ist es möglich das ganze so zu ändern, das wenn die Datei schon existiert diese automatisch eine Versionsnummer bekommt?
Beispiel:
Datai "Projekt A" existiert bereits und dann wird bei einer erneuten Speicherung die Datei automatisch als "Projekt A.1" gespeichert.
Wenn das auch noch klappt, wäre genial!!!
Gruß christoph
AW: Funktioniert !! Weitere modifikation
Timo
Hallo Christoph,
Deine Verfeinerung sollte möglich sein.
Innerhalb einer Schleife solltest Du überprüfen, ob die Datei bereits vorhanden ist (wie das geht weiss ich nicht, aber wenn Du im Forum suchst (im Archiv) dann solltest Du dazu fündig werden) Wenn sie es ist, dann sollte ein Zähler den Dateinamen hochsetzen, falls nicht halt gleichlassen.
gruß,
Timo
Anzeige
Timo ich danke dir!! (o.T.)
14.09.2004 11:40:03
christoph
Gern geschehen!! o.T.
Timo

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige