Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Speichern in externer Datei

Betrifft: Speichern in externer Datei von: christoph
Geschrieben am: 13.09.2004 14:29:48

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
  


Betrifft: AW: Speichern in externer Datei von: r.sch.
Geschrieben am: 13.09.2004 14:40:38

Hi Christoph,

ändere : ActiveWorkbook.Close SaveChanges:=False
auf ActiveWorkbook.Close SaveChanges:=True

Gruß
Reinhard


  


Betrifft: Funktioniert immer noch nicht von: christoph
Geschrieben am: 13.09.2004 15:14:15

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



  


Betrifft: AW: Funktioniert immer noch nicht von: Timo
Geschrieben am: 13.09.2004 15:35:14

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


  


Betrifft: ??? von: christoph
Geschrieben am: 13.09.2004 16:04:07

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


  


Betrifft: Kannst Du die Datei mal uppen?? von: Timo
Geschrieben am: 13.09.2004 16:43:34

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


  


Betrifft: Jetzt noch den Zelleninhalt als Dateiname von: christoph
Geschrieben am: 14.09.2004 08:06:01

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


  


Betrifft: AW: Jetzt noch den Zelleninhalt als Dateiname von: Timo
Geschrieben am: 14.09.2004 10:12:12

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


  


Betrifft: Funktioniert !! Weitere modifikation von: christoph
Geschrieben am: 14.09.2004 10:42:57

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


  


Betrifft: AW: Funktioniert !! Weitere modifikation von: Timo
Geschrieben am: 14.09.2004 11:32:03

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


  


Betrifft: Timo ich danke dir!! (o.T.) von: christoph
Geschrieben am: 14.09.2004 11:40:03




  


Betrifft: Gern geschehen!! o.T. von: Timo
Geschrieben am: 14.09.2004 11:48:24




 

Beiträge aus den Excel-Beispielen zum Thema "Speichern in externer Datei"