Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

Codeerweiterung

Codeerweiterung
25.01.2017 19:17:38
Guesa
Hallo Forum
Habe folgenden Code zur PDF-Speicherung hier gefunden und läuft soweit auch gut.
Folgendes Problem hat sich jetzt aber herausgestellt. Einige Anwender sind stark Sehbehindert, deshalb habe ich gewisse Zellen mit verschiedenen Hintergrundfarben gekennzeichnet damit die Eingabefelder besser zu sehen sind. Wenn das Blatt abspeichert wird dürfen diese Farbzellen nicht zu sehen sein. Folgenden Tip, in der Seiteneinstellung unter Blatt die Seite auf Schwarz/Weiß zu stellen funktioniert bei mir unter 2007 aber auf meinem Arbeitsrechner(2010) ist zwar die Hintergrundfarbe nicht mehr zu sehen, aber dafür ist Text (meist Formeln) die ich auf Text weiß gestellt habe zu sehen. Nun meine Frage: Kann man den Code so umstellen das in der PDF-Datei weder die Hintergrundfarbe noch der auf weiß gestellte Text zu sehen ist. Wäre klasse wenn mir jemand dabei helfen könnte.
Gruß, Guesa
Sub Main()
ActiveSheet.Unprotect Password:="1"
Dim strTMP As String
strTMP = ThisWorkbook.Worksheets("Abokündigung").Range("B1").Text
With ThisWorkbook.Worksheets("Abokündigung")
strTMP = strTMP & .Range("H1").Value & "_" & .Range("J1").Value
.ExportAsFixedFormat 0, strTMP, From:=1, To:=1
End With
ActiveSheet.Protect Password:="1"
'Call Loeschen
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Codeerweiterung
26.01.2017 10:10:15
Werner
Hallo,
teste mal
Sub Main()
Dim strTMP As String
Application.ScreenUpdating = False 'Bildschirmaktualisierung aus
Application.DisplayAlerts = False 'Meldungen (Löschabfrage) aus
ActiveSheet.Protect Password:="1" 'Blattschutz raus
With Worksheets("Abokündigung")
strTMP = .Range("B1").Text
strTMP = strTMP & .Range("H1").Value & "_" & .Range("J1").Value
.Copy after:=ThisWorkbook.Worksheets("Abokündigung") 'Abokündigung kopieren
End With
With ActiveSheet
.Cells.Interior.Color = xlNone 'Zellfarben raus
.ExportAsFixedFormat 0, strTMP, From:=1, To:=1 'als PDF exportieren
.Delete 'Kopie löschen
End With
ActiveSheet.Protect Password:="1" 'Blattschutz rein
Application.ScreenUpdating = False 'Bildschirmaktualisierung ein
Application.DisplayAlerts = True 'Meldungen ein
'Call Loeschen
End Sub
Erst "Abokündigung" kopieren, aus der Kopie die Zellfarben raus, Kopie als PDF exportieren, Kopie löschen.
Gruß Werner
Anzeige
AW: Codeerweiterung
26.01.2017 19:08:44
Guesa
Hallo Werner
Danke für Deine Antwort. Habe Deinen Vorschlag heute mal ausprobiert
leider hängt sich der Code in dieser Zeile auf
.Cells.Interior.Color = xlNone
habe das Problem anderweitig gelöst, obwohl Deine Variante natürlich besser gewesen wäre. Ich habe mir aus Formen einen Rahmen über die jeweiligen Zellen gelegt und diese auf nicht drucken eingestellt. Damit kann ich leben. Dafür hat sich wieder ein anderes Problem aufgetan :-) werde ich gleich mal ins Forum stellen.
Gruß, Guesa
AW: Codeerweiterung
26.01.2017 19:47:30
Werner
Hallo,
bei mir nicht. Mehr kann ich dazu nicht sagen, weil ich deine Datei nicht kenne und nicht weiß ob ggf. weiterer Code vorhanden ist.
Gruß Werner
Anzeige
AW: Codeerweiterung
27.01.2017 18:31:55
Guesa
Hi Werner
Naja, man kann nicht alles haben :-), scheint ja auch wohl ein größeres Problem zu sein.
Für Deine Bemühungen trotzalledem ein Danke
Gruß, Guesa
AW: Codeerweiterung
28.01.2017 05:52:12
Werner
Hallo,
möglicherweise irgendwelche Event-Makros durch die sich dann der Code "aufhängt"
Versuch mal
Sub Main()
Dim strTMP As String
Application.ScreenUpdating = False 'Bildschirmaktualisierung aus
Application.DisplayAlerts = False 'Meldungen (Löschabfrage) aus
Application.EnableEvents = False 'EventMakros aus
ActiveSheet.Protect Password:="1" 'Blattschutz raus
With Worksheets("Abokündigung")
strTMP = .Range("B1").Text
strTMP = strTMP & .Range("H1").Value & "_" & .Range("J1").Value
.Copy after:=ThisWorkbook.Worksheets("Abokündigung") 'Abokündigung kopieren
End With
With ActiveSheet
.Cells.Interior.Color = xlNone 'Zellfarben raus
.ExportAsFixedFormat 0, strTMP, From:=1, To:=1 'als PDF exportieren
.Delete 'Kopie löschen
End With
ActiveSheet.Protect Password:="1" 'Blattschutz rein
Application.ScreenUpdating = False 'Bildschirmaktualisierung ein
Application.DisplayAlerts = True 'Meldungen ein
Application.EnableEvents = True 'EventMakro ein
'Call Loeschen
End Sub
Gruß Werner
Anzeige
das Problem ist ...
28.01.2017 06:57:44
Matthias
Hallo,
... diese Codezeile zu Beginn
ActiveSheet.Protect Password:="1" 'Blattschutz raus
Hier wird der Blattschutz gesetzt nicht rausgenommen.
Wenn Du also im Blatt "Abokündigung bist", während Du den Code startest
kommt die Fehlermeldung.
Es muss ja zu Beginn UnProtect heißen.
Gruß Matthias
AW: uuups..
28.01.2017 09:53:54
Werner
Hallo Matthias,
du hast natürlich recht. Mein Fehler. Ist mir nicht aufgefallen, weil ich bei mir mit auskommentiertem Blattschutz getestet habe - deshalb ist es mir auch nicht aufgefallen.
Gelobe Besserung.
Gruß Werner
Anzeige
AW: uuups..
28.01.2017 16:07:30
Guesa
Hallo Werner, Matthias
Danke für die Rückmeldungen, werde ich am Dienstag direkt kontrollieren. Und wenn ich das übersehen habe stell ich mich in die Ecke und einmal Schämen.
Gruß, Guesa

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige