Registriert seit: 16.04.2018
Version(en): 2010
16.04.2018, 18:13
(Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2018, 18:14 von felle83.)
Hi,
Ich nutze excel für meinen Dienstplan. Via Makro lass ich diesen in unsere Infothek abspeichern. Dort können die Angestellten den dienstplan öffnen. Sobald jemand diesen liest, kann ich nicht mein Makro ausführen ( Fehlermeldung debuggen etc.). Ich will jetzt den dienstplan in html speichern. Dies hab ich soweit geschafft, jedoch stürzt excel mehr oder weniger ab. Es werden die dateien gespeichert. Der Ordner is t dann auch an die 1 gbyte groß. Vermutlich stürzt das Programm wegen der großen dateienmenge und unserer Leitung ab. Hat jemand eine Lösung?
Die arbeitsmappe besteht aus 31 Tabellen ohne Grafiken
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
16.04.2018, 18:30
(Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2018, 18:31 von RPP63.
Bearbeitungsgrund: Sheet entfällt ja wohl …
)
Moin!
Ich würde ja ein .pdf veröffentlichen.
(Workbook/sheet.ExportAsFixedFormat-Methode)
Dann kann auch niemand drin herumpfuschen. ;)
(Ansonsten gibt es ja auch Outlook, welches zweifellos besser für so etwas geeignet ist)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 16.04.2018
Version(en): 2010
Nutze excel deswegen, da ich viele Statistiken im dienstplan mit erfasse und es mir die Arbeit erleichtert. Ginge auch die Darstellung bzw. Abspeicherung der 31 Tabellenplätter als PDF?
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
17.04.2018, 07:36
(Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2018, 07:36 von RPP63.)
Ich schrieb ja bereits von der Workbook.ExportAsFixedFormat-Methode (die ist Excel-VBA):
https://msdn.microsoft.com/de-de/vba/exc...thod-excelDie erstellt eine PDF von (in Deinem Fall) mindestens 31 Seiten.
Bei 31 klingelt es bei mir!
Sind das Tagesblätter?
Dann würde ich eher die Work
sheet. exp….Methode nehmen und das Datum im Format yymmdd in den Dateinamen integrieren.
Denn diese Methode erstellt aus
jedem Tabellenblatt ein
einzelnes PDF.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 16.04.2018
Version(en): 2010
Ja genau. Jedes Blatt steht für 1 Tag im Monat. Überschreibt das Makro dann auch vorhandene PDF Dateien? Es würde reichen, wenn die Dateien 1—31 heißen. Werd heut Abend nochmal testen
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Heißt das, dass wir einen Code zu Gesicht bekommen, der evtl. angepasst werden muss?
Dies ist mir alles noch zu vage, als dass ich den Editor starte!
Also warte ich ab …
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 16.04.2018
Version(en): 2010
17.04.2018, 23:23
(Dieser Beitrag wurde zuletzt bearbeitet: 09.05.2018, 07:10 von Rabe.
Bearbeitungsgrund: Code-Tags verwendet
)
so sieht mein Code im Moment aus:
Code:
Sub Speichern()
' Speichern Makro
' Speichert das Original in VGL-Ordner und eine html-Version in die Infothek
'
Dim strDateiname As String
Dim strAntwort As String
strDateiname = ActiveWorkbook.Name & ".html"
Application.ScreenUpdating = False 'neu Fehlermeldungen ausblenden'
Application.DisplayAlerts = False 'Fehlermeldungen ausblenden'
Dim i As Integer
For i = 1 To Sheets.Count 'alle Blätter Passwort deaktivieren - sonst kann man nicht als htm speichern'
ActiveWorkbook.Sheets(i).Unprotect Password:="xxxx"
Next
ChDir "W:\Arbeit\08_Infothek\service\dienstplan\Test"
ActiveWorkbook.SaveAs Filename:="W:\Arbeit\08_Infothek\service\dienstplan\Test\" & strDateiname _
, FileFormat:=xlHtml, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
'Passwort wieder setzen'
For i = 1 To Sheets.Count
ActiveWorkbook.Sheets(i).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True, Password:="uwggfeq"
Next
'Speichern in GL-Ordner'
ChDir "W:\Arbeit\05_Gruppenleiter\Dienstpläne\Verfügung"
ActiveWorkbook.SaveAs Filename:= _
"W:\Arbeit\05_Gruppenleiter\Dienstpläne\Verfügung\Test.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True 'Fehlermeldungen wieder aktivieren'
Application.ScreenUpdating = True 'neu Fehlermeldungen wieder aktivieren'
End Sub
Beim Ausführen des Makros stürzt Excel ab. Das gleiche Makro nutze ich woanders mit ebenfalls 31 Tagen auch. Da läuft es. Jetzt eben nicht.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
18.04.2018, 07:42
(Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2018, 07:42 von RPP63.)
Moin!
Folgendes flauschige Makro erstellt den Pfad
C:\Users\MeinUsername\Desktop\Test-PDF\April\und speichert alle Blätter einzeln mit den Dateinamen 1 bis x.pdf
Vorhandene Dateien werden überschrieben.
Der Blattschutz interessiert nicht:
Modul Modul2Option Explicit
Declare Function MakePath& Lib "imagehlp.dll" Alias _
"MakeSureDirectoryPathExists" (ByVal sPath$)
Sub Sheets2PDF()
Dim Pfad$, i%
Pfad = Environ("UserProfile") & "\Desktop\Test-PDF\" & Format(Date, "mmmm") & "\"
MakePath Pfad
With ThisWorkbook
For i = 1 To .Worksheets.Count
.Worksheets(i).ExportAsFixedFormat xlTypePDF, Pfad & i
Next
End With
End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• felle83
Registriert seit: 16.04.2018
Version(en): 2010
Ok Danke, werde es mal testen.
Hab ein anderes Problem mit dem Makro. In der Nacht lief alles gut und plötzlich hat jede einzelner speicherbutton seine makrozuweisung verloren. Könnte es daran liegen, dass ich das Makro von einer anderen arbeitsmappe importiert hatte? Ich habe dieses jedoch an die richtige angepasst.
Registriert seit: 29.09.2015
Version(en): 2030,5
Oder
Code:
Sub M_snb()
c00 = CreateObject("wscript.shell").specialfolders(4) & "\Test-PDF\" & Format(Date, "mmmm\\")
CreateObject("shell.application").Namespace(Left(c00, 3)).NewFolder Mid(c00, 4)
For Each it In ThisWorkbook.Sheets
it.ExportAsFixedFormat 0, c00 & it.Index
Next
End Sub