Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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
Zeilenhöhe automatisch anpassen
10.09.2018 13:43:43
Dennis
Guten Tag alle zusammen,
bitte um eure Hilfe bei folgenden zwei Fragen:
1. Anpassung der Zeilen Höhe in einem geschützten/ausgeblendeten Blatt (Zeile 1 bis 250). Habe dort folgendes Modul:
Sub PDF_Speichern()
Dim pdfDateiName As String
Dim pdfName As Variant
With Worksheets("Angebot")
pdfDateiName = "ÒÊÏ_" & ActiveSheet.Range("D16") & "_" & ActiveSheet.Range("D17") & ". _
pdf"
pdfName = Application.GetSaveAsFilename(InitialFileName:=pdfDateiName, FileFilter:=" _
PDFfiles, *.pdf", Title:="PDF speichern")
If TypeName(pdfName) = "String" Then
Application.ScreenUpdating = False
Application.DisplayFullScreen = False
.Visible = xlSheetVisible
Call .Rows(27).AutoFilter(Field:=6, Criteria1:="1")
Call .ExportAsFixedFormat(Type:=xlTypePDF, Filename:=pdfName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True)
.Visible = xlSheetVeryHidden
Application.DisplayFullScreen = True
Application.ScreenUpdating = True
End If
End With
End Sub
2. Wenn ich das Modul oben starte, ist während des Vorgangs der Arbeitsmappenschutz aktiviert und es kommt zur Fehlermeldung.
Laufzeitfehler 1004:
Die Visible-Eigenschaft des Worksheet-Objektes kann nicht festgelegt werden.
Vielen Dank für eure Hilfe.
Gruß
Dennis

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Diese Fehlermeldung kommt, wenn...
10.09.2018 14:57:44
Augen
Hallo Dennis, :-)
... der "Arbeitsmappenschutz" aktiviert ist. Hast Du schon richtig erkannt. Entferne ihn am Anfang des Codes...
ThisWorkbook.Unprotect
Oder mit Kennwort...
ThisWorkbook.Unprotect Password:="Passwort"
Und setze ihn am Ende wieder...
ThisWorkbook.Protect
Analog mit Kennwort. ;-)
Servus
Case

Anzeige
AW: Diese Fehlermeldung kommt, wenn...
10.09.2018 15:37:26
Dennis
Hallo Case,
ich habe nirgendwo den Code ThisWorkbook.Unprotect stehen. Und was ist mit der ersten Frage?
Hier sind codes die ich in der Datei verwende:
Diese Arbeitsmappe:
Private Sub Workbook_Open()
Application.DisplayFullScreen = True
ActiveWorkbook.Protect Windows:=True
ActiveWindow.DisplayHeadings = False
Application.DisplayFormulaBar = False
Windows(1).DisplayHorizontalScrollBar = False
Windows(1).DisplayVerticalScrollBar = False
End Sub
Modul 4:
Public Sub PDF_MAIL()
Dim strPDFD As String
Dim objOutApp As Object, objMessage As Object
strPDFD = ThisWorkbook.Path & "ÒÊÏ_" & ActiveSheet.Range("D16") & "_" & ActiveSheet.Range(" _
D17") & ".pdf"
Application.ScreenUpdating = False
Application.DisplayFullScreen = False
With Worksheets("Angebot")
.Visible = xlSheetVisible
Call .Rows(22).AutoFilter(Field:=6, Criteria1:="1")
Call .ExportAsFixedFormat(Type:=xlTypePDF, Filename:=strPDFD, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False)
.Visible = xlSheetVeryHidden
End With
Application.DisplayFullScreen = True
Application.ScreenUpdating = True
Set objOutApp = CreateObject("Outlook.Application")
Set objMessage = objOutApp.CreateItem(0)
With objMessage
.To = ThisWorkbook.Worksheets("Configurator").Range("D7").Value 'Empfaenger
.Subject = ThisWorkbook.Worksheets("Configurator").Range("D21") & "_" & Range("D16"). _
Value 'Betreffzeile
.body = ThisWorkbook.Worksheets("Configurator").Range("C84").Value 'Inhalt
Call .Attachments.Add(strPDFD)
Call .Display
'Call .Send
Call Kill(PathName:=strPDFD)
End With
Set objOutApp = Nothing
Set objMessage = Nothing
End Sub
Modul 3:
Sub PDF_Speichern()
Dim pdfDateiName As String
Dim pdfName As Variant
With Worksheets("Angebot")
pdfDateiName = "ÒÊÏ_" & ActiveSheet.Range("D16") & "_" & ActiveSheet.Range("D17") & ". _
pdf"
pdfName = Application.GetSaveAsFilename(InitialFileName:=pdfDateiName, FileFilter:=" _
PDFfiles, *.pdf", Title:="PDF speichern")
If TypeName(pdfName) = "String" Then
Application.ScreenUpdating = False
Application.DisplayFullScreen = False
.Visible = xlSheetVisible
Call .Rows(27).AutoFilter(Field:=6, Criteria1:="1")
Call .ExportAsFixedFormat(Type:=xlTypePDF, Filename:=pdfName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True)
.Visible = xlSheetVeryHidden
Application.DisplayFullScreen = True
Application.ScreenUpdating = True
End If
End With
End Sub
Tabelle 3
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Rows.AutoFit
ActiveSheet.UsedRange.Rows.AutoFit
End Sub
Desweiteren habe ich einen Blattschutz mit Passwort angelegt.
Gruß
Dennis
Anzeige
Eben, deshalb hat Case das ja vorgeschlagen, ...
10.09.2018 15:54:55
Luc:-?
Dennis,
und den Blattschutz solltest du ebenfalls per VBA setzen, weil du dann den Parameter UserInterfaceOnly:=True hinzusetzen kannst, was Änderungen durch ein Makro erlaubt, manuell durch den Nutzer aber nicht.
@Case: Ja, ja, Augen auf (beim Eierkauf), dann tappt man auch nicht in die Merkfunktionsfalle für Absendernamen (immer der letzt­be­nutzte)! ;-))
Luc :-?
Nein, habe ich gesehen...
10.09.2018 16:17:59
Case
Hallo Luc, :-)
... und habe es nach kurzem Zögern doch stehen lassen, da Du hier auch geantwortet hast. Dachte - "mal sehen ob er es merkt" (Da ich den Betreff in der Regel immer ändere, sehe ich auch den Namen). Denke mal nicht, dass Du mir das übel nimmst. War nur ein kleiner Scherz am Morgen. ;-)
@Dennis - Blattschutz mit "UserInterfaceOnly:=True" muss dann ins Workbook_Open, da es nur für die gerade offene Sitzung gilt.
Servus
Case

Anzeige
OT: Nee, alles gut, aber da unterschrieben, ...
10.09.2018 18:55:13
Luc:-?
…hab ich's natürlich gemerkt, Case; ;-)
ist mir (und Anderen) aber auch schon mal passiert, trotz Augen auf
Gruß, Luc :-?
AW: Nein, habe ich gesehen...
11.09.2018 10:09:40
Dennis
Hallo Case, Hallo Luc,
was ist mit meiner ersten Frage? Könntet ihr da auch helfen?
1. Anpassung der Zeilen Höhe in einem geschützten/ausgeblendeten Blatt (Zeile 1 bis 250).
Gruß
Dennis
AW: Nein, habe ich gesehen...
11.09.2018 10:21:43
Daniel
Hi
Sheets(...).Rows(1).Resize(250).EntireRow.AutoFit
funktioniert auch auf einem ausgeblendeten Blatt (wobei sich dann die Frage stellt, ob das überhaupt notwendig ist)
Blattschutz muss vorher aufgehoben werden, außer beim Einrichten des Blattschutzes wurde die Option "Zeilen formatieren" angehakt. Dann darf auch bei aktivem Blattschutz die Zeilenhöhe angepasst werden.
Automatische Anpassung der Zeilenhöhe oder Spaltenbreite funktioniert nicht bei Verbundzellen.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 9
11.09.2018 11:34:34
Dennis
Hallo Daniel,
bekomme Laufzeitfehler 9 index außerhalb des gültigen Bereichs.
Gruß Dennis
Sub PDF_Speichern()
ThisWorkbook.Unprotect
Dim pdfDateiName As String
Dim pdfName As Variant
Sheets(Angebot).Rows(1).Resize(300).EntireRow.AutoFit
With Worksheets("Angebot")
pdfDateiName = "ÒÊÏ_" & ActiveSheet.Range("D16") & "_" & ActiveSheet.Range("D17") & ". _
pdf"
pdfName = Application.GetSaveAsFilename(InitialFileName:=pdfDateiName, FileFilter:=" _
PDFfiles, *.pdf", Title:="PDF speichern")
If TypeName(pdfName) = "String" Then
Application.ScreenUpdating = False
Application.DisplayFullScreen = False
.Visible = xlSheetVisible
Call .Rows(27).AutoFilter(Field:=6, Criteria1:="1")
Call .ExportAsFixedFormat(Type:=xlTypePDF, Filename:=pdfName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True)
.Visible = xlSheetVeryHidden
Application.DisplayFullScreen = True
Application.ScreenUpdating = True
ThisWorkbook.Protect
End If
End With
End Sub

Anzeige
AW: Laufzeitfehler 9
11.09.2018 11:45:32
Daniel
zunächst folgende Frage:
dein VBA sagt dir doch sicherlich, in welcher Programmzeile der Fehler auftritt.
warum gibst du diese durchaus interessante Informantion, welche für die Ursachenfindung nicht unwichtig ist, an uns weiter?
dieser Fehler tritt bespielsweise dann auf, wenn man bei Workbooks("Dateiname.xlsx") oder Sheets("Sheetname") einen falschen bzw nicht vorhandenen Namen verwendet hat (Tippfehler).
nur so als Tipp: schau einfach eine Zeile tiefer, dann solltest du den Unterschied und damit die Fehlerursache erkennen.
Gruß Daniel
AW: Laufzeitfehler 9
11.09.2018 11:47:02
Dennis
diese Zeile ist gelb markiert:
Sheets(Angebot).Rows(1).Resize(300).EntireRow.AutoFit
kein Tippfehler.
Anzeige
Nachdenken und verstehen hilft,
11.09.2018 11:49:01
EtoPHG
Dennis,
     Dim pdfName As Variant
With Worksheets("Angebot")
.Rows(1).Resize(300).EntireRow.AutoFit
pdfDateiName = "ÒÊÏ_" & ActiveSheet.....
Gruess Hansueli
AW: Nachdenken und verstehen hilft,
11.09.2018 14:08:35
Dennis
Vielen Dank! das funktioniert.
Wo muss ich es bei diesem Code einfügen? Hier funktioniert es nicht (
Public Sub PDF_MAIL()
ThisWorkbook.Unprotect
Dim strPDFD As String
Dim objOutApp As Object, objMessage As Object
strPDFD = ThisWorkbook.Path & "ÒÊÏ_" & ActiveSheet.Range("D16") & "_" & ActiveSheet.Range(" _
D17") & ".pdf"
Application.ScreenUpdating = False
Application.DisplayFullScreen = False
With Worksheets("Angebot")
.Rows(1).Resize(300).EntireRow.AutoFit
.Visible = xlSheetVisible
Call .Rows(22).AutoFilter(Field:=6, Criteria1:="1")
Call .ExportAsFixedFormat(Type:=xlTypePDF, Filename:=strPDFD, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False)
.Visible = xlSheetVeryHidden
End With
Application.DisplayFullScreen = True
Application.ScreenUpdating = True
Set objOutApp = CreateObject("Outlook.Application")
Set objMessage = objOutApp.CreateItem(0)
With objMessage
.To = ThisWorkbook.Worksheets("Configurator").Range("D7").Value 'Empfaenger
.Subject = ThisWorkbook.Worksheets("Configurator").Range("D21") & "_" & Range("D16"). _
Value 'Betreffzeile
.body = ThisWorkbook.Worksheets("Configurator").Range("C84").Value 'Inhalt
Call .Attachments.Add(strPDFD)
Call .Display
'Call .Send
Call Kill(PathName:=strPDFD)
End With
Set objOutApp = Nothing
Set objMessage = Nothing
ThisWorkbook.Protect
End Sub

Anzeige
AW: Nachdenken und verstehen hilft,
11.09.2018 14:27:50
Daniel
Hi
was heißt "funktioniert nicht"?
gibt's ne Fehlermeldung?, wenn ja: welche und in welcher Codezeile?
wenn nein, was sollte deinem Wunsch nach passieren und was passiert tatsächlich
bedenke, dass wir deine Datei nicht haben und daher deinen Code nicht selber testen können.
Daher musst du uns so viele Informationen geben wie möglich.
Gruß Daniel
AW: Nachdenken und verstehen hilft,
11.09.2018 15:25:52
Dennis
Es gibt keine Fehlermeldung. Es sollte dasselbe passieren wie beim anderen Code.
Die Zeilenhöhe sollte angepasst werden.
.Rows(1).Resize(300).EntireRow.AutoFit
AW: Nachdenken und verstehen hilft,
12.09.2018 08:51:04
Dennis
?
Was du wolle? Lade eine Beispielmappe hoch (owT)
12.09.2018 10:14:05
EtoPHG

AW: Was du wolle? Lade eine Beispielmappe hoch (owT)
12.09.2018 11:02:13
Dennis
Was meinst du damit was ich wolle?
Ich habe ein ganzes thread dazu. Siehe screenshot. Oder muss alles nochmal erklären?
Userbild
Anzeige
ja, viele Daten, aber keine Mappe! (owT)
12.09.2018 11:03:05
EtoPHG

AW: Eben, deshalb hat Case das ja vorgeschlagen, ...
10.09.2018 17:26:09
Dennis
Hallo Case, Hallo Luc,
vielen Dank, werde mich heute Abend damit auseinandersetzen.
Bin ein Anfänger, bitte daher um Einsicht.
Gruß
Dennis

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige