Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Arbeitsmappe mit VBA in html darstellen
#1
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
Antworten Top
#2
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)
Antworten Top
#3
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?
Antworten Top
#4
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.
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)
Antworten Top
#5
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
Antworten Top
#6
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)
Antworten Top
#7
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.
Antworten Top
#8
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
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:
  • felle83
Antworten Top
#9
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.
Antworten Top
#10
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste