Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ProgressBar

ProgressBar
15.03.2020 17:48:02
Mike
Hallo zusammen,
Wieder das alte Problem.
Das Abspeichern einer Exceldatei als PDF dauert bis zu 4 Minuten, da wäre eine Anzeige als Fortschrittsbalken
behilflich. Meine Versuche sind fehlgeschlagen. Vielleicht weiß jemand Rat wie das Einzubauen ist.
Hier der Code:
Sub Werte_Drucken()
'speichert das Ergebnis der Wertermittlung inkl. Anlage als PDF-Datei
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim boolSpeichervorgang As Boolean
Dim dtKennwort As String
dtKennwort = "1"
For Each ws In Worksheets
ws.Unprotect Password = dtKennwort
Next ws
Fusszeile_einstellen
If MsgBox("Bitte bestätigen Sie mit 'Ja' wenn das Ergebnis der Werte inklusive Anlage als PDF-  _
_
Datei im aktuellen Ordner gespeichert werden soll. Der Vorgang wird einige Minuten dauern. Sie  _
erhalten eine Bestätigung nach dem Speichervorgang.", vbYesNo, "PDF-Dateien speichern?") = vbYes Then
Sheets("Ergebnis").Select
Range("D1").Select
Selection.Interior.ColorIndex = 0 'keine Farbe
Selection.Font.ColorIndex = 2 'keine Farbe
Sheets("Anlage").Select
Range("H1").Select
Selection.Interior.ColorIndex = 0 'keine Farbe
Selection.Font.ColorIndex = 2 'keine Farbe
Range("J1:M1").Select
Selection.Interior.ColorIndex = 0 'keine Farbe
Selection.Font.ColorIndex = 2 'keine Farbe
Application.GoTo Reference:="Eingabe_14"
Selection.Interior.ColorIndex = 0 'keine Farbe
Range("A1").Select
Anlage_Zeilen_ausblenden
'   Code für die Druckfunktion - ausgeschaltet seit der PDF-Funktion
'    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
'    Sheets("Ergebnis").Select
'    Sheets("Ergebnis").Activate
'    With ActiveSheet.PageSetup
'        .Orientation = xlPortrait
'    End With
'    ActiveWindow.SelectedSheets.PrintOut Copies:=1
'    Sheets("Anlage").Select
'    Sheets("Anlage").Activate
'    With ActiveSheet.PageSetup
'        .Orientation = xlLandscape
'    End With
'    ActiveWindow.SelectedSheets.PrintOut Copies:=1
Speichern_als_PDF_Datei
Sheets("Übersicht").Select
Range("D15").Select
boolSpeichervorgang = True
Else
boolSpeichervorgang = False
End If
For Each ws In Worksheets
ws.Unprotect Password = dtKennwort
Next ws
Sheets("Ergebnis").Select
Range("D1").Select
Selection.Interior.Color = 15073253
Selection.Font.Color = -16751104
Application.GoTo Reference:="Eingabe_14"
Selection.Interior.Color = 15073253
Range("A1").Select
Sheets("Anlage Wertermittlung").Select
Range("H1").Select
Selection.Interior.Color = 15073253
Selection.Font.Color = -16751104
Range("J1:M1").Select
Selection.Interior.Color = 15073253
Selection.Font.Color = -16751104
Sheets("Ergebnis").Select
Range("D1").Select
Schutz_aktivieren
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
If boolSpeichervorgang = True Then
MsgBox "Die Werte und die Anlage zur Wertvoll wurden als PDF-Dateien im aktuellen Ordner  _
gespeichert.", vbInformation, "PDF-Dateien gespeichert"
Else
MsgBox "Der Vorgang wurde abgebrochen", vbInformation, "Vorgang abgebrochen"
End If
End Sub
Sub Fusszeile_einstellen()
Sheets("Anlage").Select
ActiveSheet.PageSetup.CenterFooter = "&""Tahoma,Standard""&8" & Sheets("Anlage  _
Wertermittlung").Cells(4, 15).Value
Sheets("Ergebnis").Select
ActiveSheet.PageSetup.CenterFooter = "&""Tahoma,Standard""&8" & Sheets("Anlage  _
Wertermittlung").Cells(4, 15).Value
End Sub
Sub Anlage_Zeilen_ausblenden()
'alle Zeilen mit einem "0" in Spalte "N" ausblenden
Fusszeile_einstellen
Sheets("Anlage").Select
Rows("14:695").Select
Selection.EntireRow.Hidden = False
Range("N14").Select
For i = 14 To 695
Range("O" & i).Select
If ActiveCell.Value = 0 Then
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = True
Else
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = False
End If
Next i
Range("A1").Select
End Sub

Sub Speichern_als_PDF_Datei()
'Dim strDateiName As String
Dim strVerein As String
Dim strGartenNr As String
Dim strPaechter As String
Dim strDatum As String
Sheets("Ergebnis").Select
Range("D7").Select
strVerein = ActiveCell.Value
Range("B6").Select
strGartenNr = ActiveCell.Value
Range("C9").Select
strPaechter = ActiveCell.Value
Range("C10").Select
strDatum = Day(ActiveCell.Value) & "-" & Month(ActiveCell.Value) & "-" & Year(ActiveCell.Value)
strDateiName = CurDir
strDateiName = strVerein & " - Ga " & strGartenNr & " - " & strPaechter & " - " & strDatum & " - _
_
Wertermittlung.pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strDateiName, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Sheets("Anlage ").Select
Range("B6").Select
strDateiName = CurDir
strDateiName = strVerein & " - Ga " & strGartenNr & " - " & strPaechter & " - " & strDatum & " - _
_
We.Anlage.pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strDateiName, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ProgressBar
15.03.2020 18:08:20
onur
"Das Abspeichern einer Exceldatei als PDF dauert bis zu 4 Minuten" - kaum, wenn ja, dann liegt es aber am (vollkommen wirren) Code drumherum.
Der Befehl ".Select" z.B. ist in bis zu 99,99 % der Fälle (bei dir 100%) völlig überflüssig und bremst jeden Code aus.
Das benutzt nur der Macrorecorder und ein Anfänger.
AW: ProgressBar
15.03.2020 23:32:51
Mike
Hallo onur,
Ja, bin in VBA Anfänger.
Dieser Code wurde von "Profis" geschrieben. Aber er funzt.
Wäre aber schöner mit einer Fortschrittsanzeige.
Gruß Mike
AW: ProgressBar
15.03.2020 19:00:20
volti
Hallo Mike,
in anliegender Dateu eine Selfmade-Progressbar zur weiteren Verwendung....
Wenn Du das verwenden möchtest, musst Du Dir das aber selber in Deinen Code (bin onurs Meinung) einbauen, in dem Du an den gewünschten Stellen oder in einer Schleife den Laufbalken mit der entsprechenden Prozentzahl aufrufst.
Wenn's dann läuft, brauchst Du nur noch die Userform. Mein Beipspielcode kann dann weg.
Ladebalken.xlsb
Hier noch ein Aufruftipp:
Sub Beispiel_Fuer_Prozente()
'Erster Aufruf
  ProzessDlg.FSUF 0, 0, "Sortieren nach", "Formatieren, Sortieren"
'...
'Weitere Aufrufe
  ProzessDlg.FSUF 1, 0.4, "Weiteres Sortieren"
'...
  ProzessDlg.FSUF 1, 0.8, "Noch mehr Sortieren"
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: ProgressBar
15.03.2020 23:35:54
Mike
Danke Karl-Heinz,
werde mal Probieren.
Gruß Mike
AW: ProgressBar
16.03.2020 02:28:36
Werner
Hallo,
4 Minuten für ein paar Zellen färben, ein paar Zeilen ausblenden und zwei PDF erstellen?
Mit deinem Code hüpfst du die ganze Zeit in den Blättern herum.
Versuch mal:
Option Explicit
Sub Werte_Drucken()
Dim ws As Worksheet, boSpeichern As Boolean, strKennwort As String
strKennwort = "1"
'speichert das Ergebnis der Wertermittlung inkl. Anlage als PDF-Datei
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:=strKennwort
Next ws
Call Fusszeile_einstellen
If MsgBox("Bitte bestätigen Sie mit 'Ja' wenn das Ergebnis der Werte inklusive Anlage" _
& "als PDF-Datei im aktuellen Ordner gespeichert werden soll." & vbLf _
& "Der Vorgang wird einige Minuten dauern. Sie erhalten eine Bestätigung nach dem" _
& "Speichervorgang.", vbYesNo, "PDF-Dateien speichern?") = vbYes Then
boSpeichern = True
With Worksheets("Ergebnis")
.Range("D1").Interior.ColorIndex = 0 'keine Farbe
.Range("D1").Font.ColorIndex = 2 'keine Farbe
End With
With Worksheets("Anlage")
.Range("H1").Interior.ColorIndex = 0 'keine Farbe
.Range("H1").Font.ColorIndex = 2 'keine Farbe
.Range("J1:M1").Interior.ColorIndex = 0 'keine Farbe
.Range("J1:M1").Font.ColorIndex = 2 'keine Farbe
.Range("Eingabe_14").Interior.ColorIndex = 0
End With
Call Anlage_Zeilen_ausblenden
Call Speichern_als_PDF_Datei
Else
boSpeichern = False
End If
With Worksheets("Ergebnis")
.Range("D1").Interior.Color = 15073253
.Range("D1").Font.Color = -16751104
.Range("Eingabe_14").Interior.Color = 15073253
End With
With Worksheets("Anlage Wertermittlung")
.Range("H1").Interior.Color = 15073253
.Range("H1").Font.Color = -16751104
.Range("J1:M1").Interior.Color = 15073253
.Range("J1:M1").Font.Color = -16751104
End With
If boSpeichern Then
MsgBox "Die Werte und die Anlage zur Wertvoll wurden als PDF-Dateien" _
& "im aktuellen Ordner gespeichert.", vbInformation, "PDF-Dateien gespeichert"
Else
MsgBox "Der Vorgang wurde abgebrochen", vbInformation, "Vorgang abgebrochen"
End If
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:=strKennwort
Next ws
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub Fusszeile_einstellen()
Worksheets("Anlage").PageSetup.CenterFooter = "&""Tahoma,Standard""&8" & _
Worksheets("Anlage Wertermittlung").Cells(4, 15).Value
Worksheets("Ergebnis").PageSetup.CenterFooter = "&""Tahoma,Standard""&8" & _
Worksheets("Anlage Wertermittlung").Cells(4, 15).Value
End Sub
Sub Anlage_Zeilen_ausblenden()
Dim i As Long, raBereich As Range
Call Fusszeile_einstellen
With Worksheets("Anlage")
.Rows("14:695").Hidden = False
For i = 14 To 695
If .Range("O" & i) = 0 Then
If raBereich Is Nothing Then
Set raBereich = .Rows(i)
Else
Set raBereich = Union(raBereich, .Rows(i))
End If
End If
Next i
If Not raBereich Is Nothing Then
raBereich.EntireRow.Hidden = True
End If
End With
Set raBereich = Nothing
End Sub
Sub Speichern_als_PDF_Datei()
Dim strVerein As String, strGartenNr As String, strPaechter As String
Dim strDatum As String, strDateiName As String
With Worksheets("Ergebnis")
strVerein = .Range("D7")
strGartenNr = .Range("B6")
strPaechter = .Range("C9")
strDatum = Day(.Range("C10")) & "-" & Month(.Range("C10")) _
& "-" & Year(.Range("C10"))
strDateiName = ThisWorkbook.Path & "\" & strVerein & " - Ga " _
& strGartenNr & " - " & strPaechter & " - Wertermittlung.pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
strDateiName = ""
With Worksheets("Anlage")
strDateiName = ThisWorkbook.Path & "\" & strDateiName = strVerein _
& " - Ga " & strGartenNr & " - " & strPaechter & " - " & strDatum & " -  We.Anlage.pdf"
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDateiName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
End Sub
Dein kompletter Code raus und den hier rein.
Gruß Werner
Anzeige
AW: ProgressBar
16.03.2020 14:54:45
Mike
Hallo Werner,
Vielen Dank für den Code
Wenn ich den Schutz vorher manuell raus nehme läuft alles sehr gut.
Sonst kommt die Fehlermeldung:
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:=strKennwort
Next ws
Gruß Mike
AW: ProgressBar
16.03.2020 15:14:26
Werner
Hallo,
was soll ich denn dazu sagen? Ich kenne deine Datei nicht.
Hier:
strKennwort = "1"

mußt du halt dein Kennwort anpassen. Und alle Blätter müssen das selbe Kennwort haben.
Gruß Werner
AW: ProgressBar
16.03.2020 19:19:12
Mike
Hallo zusammen,
Vielen Dank für die Hilfe!!!!!! Es läuft!!!!!!!
Gerne, Danke für die Rückmeldung und...
16.03.2020 20:14:20
Werner
Hallo,
...viele Grüße auch an die hier: Dieser Code wurde von "Profis" geschrieben.
Gruß Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige