Clever-Excel-Forum

Normale Version: Arbeitsmappe mit VBA in html darstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
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
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
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?
Ich schrieb ja bereits von der Workbook.ExportAsFixedFormat-Methode (die ist Excel-VBA):
https://msdn.microsoft.com/de-de/vba/exc...thod-excel

Die 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 Worksheet. exp….Methode nehmen und das Datum im Format yymmdd in den Dateinamen integrieren.
Denn diese Methode erstellt aus jedem Tabellenblatt ein einzelnes PDF.
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
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
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.
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 Modul2
Option 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
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.
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
Seiten: 1 2 3