Blatt einzeln mit Pfadangabe speichern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 08:33:35

Hallo zusammen,
ich bastel seit einigen Tagen an einer Arbeitsmappe herum. Viele Tips hab' ich hier bei euch gefunden. Zuletzt bleibt ein kleines Problem.

Aus dem Tabellenblatt "Rechnung" speicher ich die Mappe mit der Rechnungsnummer die sich in "G21" befindet. Das klappt. Es soll aber nicht die ganze Mappe gespeichert werden, sondern nur die Rechnung und die im Ordner Rechnungen. Aus einem Tabellenblatt "Lohn" möchte ich dann die Lohnabrechnung speichern, wieder einzeln im Ordner Lohnabrechnung. Bis jetzt sieht mein Makro so aus:

Sub speichern()
ort = Range("g21")
If Len(ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
ActiveWorkbook.SaveAs FileName:=ort & ".xls"
End If
End Sub


Gruß Sabine
Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 06.02.2005 08:40:33

Hallo Sabine!

Das geht vom Prinzip her so!

Sub speichern()
Dim ort As String
ort = Range("g21")
   If Len(ort) = 0 Then
   MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
   Exit Sub
   End If
ActiveWorkbook.Sheets("Rechnung").Copy
ActiveWorkbook.SaveAs "C:\Rechnungen\" & ort & ".xls"
ActiveWorkbook.Close
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 08:57:52

Hallo Sepp,
das ging aber flott.
Bleibt noch folgendes Problem: Beim speichern kommt jetzt die Frage "Mappe mit Bezügen zu nicht gespeicherten Daten speichen? Und wenn ich jetzt die Arbeitsmappe änder, dann ändert sich auch die gerade gespeichrte Rechnung. Wie löse ich das Problem.

Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 06.02.2005 09:03:28

Hallo Sabine!

Füge nach ".Copy" diese Zeile ein.

ActiveSheet.UsedRange.Cells = ActiveSheet.UsedRange.Cells.Value

dann werden alle Formeln in Werte umgewandelt!

Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 09:11:22

Danke Sepp

aber jetzt stimmen meine ganzen Daten in der Rechnung nicht mehr! Keine Ahnung warum.

Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 06.02.2005 09:23:42

Hallo Sabine Probier's so!

Sub speichern()
Dim ort As String
ort = Range("g21")
   If Len(ort) = 0 Then
   MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
   Exit Sub
   End If
ActiveWorkbook.Sheets("Rechnung").Copy
   With ActiveWorkbook
   .Sheets(1).UsedRange.Copy
   .Sheets(1).UsedRange.PasteSpecial Paste:=xlValues
   Application.CutCopyMode = False
   .SaveAs "C:\Rechnungen\" & ort & ".xls"
   .Close
   End With
   
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Sabine
Geschrieben am: 06.02.2005 09:35:33

das Problem bleibt leider.

Die Daten die sich ändern sind alles Datumsangaben die mit folgender Formel erstellt wurden:


=WENN(Vorgabe!$E16>Vorgabe!$G$2;"";ARBEITSTAG(Vorgabe!$E15;1;'Freie Tage (H)'!C2:G41))


Gruß Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 06.02.2005 10:05:52

Hallo Sabine!

Dann probieren wir es so!

Sub speichern()
Dim ort As String
Dim wks As Worksheet
ort = Range("g21")
   If Len(ort) = 0 Then
   MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
   Exit Sub
   End If
   
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
ActiveWorkbook.Sheets("Rechnung").Copy after:=Sheets(Sheets.Count)
Set wks = Sheets(Sheets.Count)
wks.Name = "Rechnung_"
wks.UsedRange = wks.UsedRange.Value
wks.Copy
   With ActiveWorkbook
   .SaveAs "C:\Rechnungen\" & ort & ".xls"
   .Close
   End With
   
wks.Delete
MsgBox "Rechnung erfolgreich gespeichert!"
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Sabine
Geschrieben am: 06.02.2005 10:22:22

Hallo Sepp
hatte ja große Hoffnung nach der Meldung - "Erfolgreich gespeichert"!
Leider verändern sich die Datumsangaben immer noch.
Muß jetzt leider erst mal Schluß machen. Wäre nett, wenn wir vielleicht heute Abend weitermachen könnten.

Erstmal DANKE - Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 06.02.2005 10:30:39

Hallo Sabine!

Kannst du die Datei hochladen?


Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 10:42:28

Schaffe ich jetzt leider nicht mehr. Heute Abend ok. Melde mich auf jeden Fall

Bis dann Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 10:42:33

Schaffe ich jetzt leider nicht mehr. Heute Abend ok. Melde mich auf jeden Fall

Bis dann Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 21:19:39

Guten Abend Sepp,

ist etwas spät geworden, bin jetzt wieder da. Was meinst du mit hochladen?

Gruß Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 06.02.2005 21:54:09

Hab's doch noch kapiert, hier also meine Mappe
https://www.herber.de/bbs/user/17557.xlt

Gruß Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 06.02.2005 23:19:28

Hallo Sabine!

Der Grund warum die Daten nach dem kopieren nicht stimmten, lag
an den zum Teil umfangreichen Formeln!

Dadurch wurden die Formeln in Werte umgewandelt noch bevor die
Berechnung abgeschlossen war.

Ich habe dieses Problem nun so gelöst, das ich die Werte aus dem
Originalblatt in ein Array schreibe und dieses dann zurück in die Kopie!

Ich hoffe das du nun damit klar kommst.

https://www.herber.de/bbs/user/17559.xlt


Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 07.02.2005 10:30:47

Hallo Sepp

klappt jetzt wunderbar, obwohl ich nicht ganz nachvollziehen kann, wo genau du etwas geändert hast. Wenn du für eine Erkärung noch Zeit findest wäre ich dankbar, damit ich alles ins Orginal übernehmen kann.
Du hast mir jedenfalls sehr geholfen, das ist nämlich mein erster Versuch in Excel gewesen, und mir hat ganz schön der Kopf geraucht.

Gruß Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: Josef Ehrensberger
Geschrieben am: 07.02.2005 13:01:57

Hallo Sabine!

Freud mich wenn's klappt!

Hier der Code mit einigen Kommentaren.


      
Sub speichernSepp()
Dim ort As String
Dim arr As Variant

ort = Sheets(
"Rechnung").Range("G21")

   
If Len(ort) = 0 Then
   MsgBox (
"Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
   
Exit Sub
   
End If
   
On Error GoTo ERRORHANDLER

With Application
.ScreenUpdating = 
False
.EnableEvents = 
False
.DisplayAlerts = 
False
.Calculation = xlCalculationManual
End With

arr = ActiveWorkbook.Sheets(
"Rechnung").UsedRange.Value
'Die Werte aus "Rechnung" werden einem Array übergeben

ActiveWorkbook.Sheets(
"Rechnung").Copy
'"Rechnung" kopieren

   
With ActiveWorkbook
   
   .Sheets(1).UsedRange = arr
   
'in die durch das Kopieren entstandene neue Tabelle die Werte aus
   'dem Array einfügen
   
   .SaveAs 
"C:\Rechnungen\" & ort & ".xls"
   
'speichern
   
   .Close
   
'schliessen
   
   
End With
   

MsgBox 
"Rechnung erfolgreich gespeichert!"

ERRORHANDLER:

With Application
.ScreenUpdating = 
True
.EnableEvents = 
True
.DisplayAlerts = 
True
.Calculation = xlCalculationAutomatic
End With
End Sub 


     Code eingefügt mit Syntaxhighlighter 3.0



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: S. Jahns
Geschrieben am: 07.02.2005 15:41:26

Hallo Sepp,

noch mal DANKE. Du warst eine große Hilfe.

Gruß Sabine


Bild


Betrifft: AW: Blatt einzeln mit Pfadangabe speichern von: andre
Geschrieben am: 06.02.2005 08:46:20

Hallo Sabine,
zwischen else und active... die Codezeile ActiveSheet.Copy einfügen.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Blatt einzeln mit Pfadangabe speichern"