Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ScrollBar
BildScreenshot zu ScrollBar ScrollBar-Seite mit Beispielarbeitsmappe aufrufen

Visible-Eigenschaft des Worksheet-Objektes kann ni


Betrifft: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 24.07.2018 15:31:09

Guten Tag an alle!

Habe wieder ein Problem mit VBA. Es hat anfangs funktioniert, dann habe ich etwas geändert ) und es lief nicht mehr.

Ich habe 5 Datenblätter, Tabelle1 ist sichtbar für den Benutzer, andere vier sollen immer ausgeblendet werden und zusätzlich habe ich ein Blattschutz, so das nur bestimmte Zellen Bearbeitet werden können.
Die Tabelle1 hat Formeln die auf alle anderen Tabellen zugreifen.

Folgende Codes habe ich eingefügt:

Sub PDF_Speichern()

Dim pdfDateiName As String
Dim pdfName As Variant

With Worksheets("Angebot")
pdfDateiName = "AG_" & 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(22).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

Public Sub PDF_MAIL()
    Dim strPDFD As String
    Dim objOutApp As Object, objMessage As Object
    
    strPDFD = ThisWorkbook.Path & "AG_" & 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

Sub Reset()
Range("D2:D10,D16:D17,D21:D22,D29,D36:D37,D44:D45,D47:D48,D59:D70,G60,E21,H62").Value = ""

Dim chkBox As Excel.CheckBox
Application.ScreenUpdating = False
For Each chkBox In ActiveSheet.CheckBoxes
chkBox.Value = xlOff
Next chkBox
Application.ScreenUpdating = True

End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Rows.AutoFit
ActiveSheet.UsedRange.Rows.AutoFit
End Sub
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
Leider bekomme ich den Fehler: Laufzeitfehler 1004:
Die Visible-Eigenschaft des Worksheet-Objektes kann nicht festgelegt werden.

Komme einfach nicht weiter.
Bitte um eure Hilfe!

Vielen Dank im Voraus!

Gruß
Dennis

  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 24.07.2018 15:35:59

Hallo Dennis,

kann es sein dass die Mappe geschützt ist? (Reiter Überprüfen - Button "Arbeitsmappe schützen")

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 08:32:01

Guten Morgen Nepumuk,

richtig der Arbeitsmappe ist geschützt. Aber wenn ich den Schutz rausnehmen, können die anderen Arbeitsmappen eingeblendet werden. Wie kann ich das umgehen? Der Benutzer soll da keine Zugriffsmöglichkeiten haben.

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 08:59:09

Wahrscheinlich muss ich die Blätter mit visible sichtbar machen und dann wieder unsichtbar. Aber wie est der Code dazu und wo müsste ich den einbauen?


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 25.07.2018 09:13:26

Hallo Dennis,

heb doch einfach den Schutz vor dem Einblenden/Ausblenden aus und anschließend wieder ein.

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 09:22:51

Das ist wohl keine Lösung. Die Benutzer sollen sich damit nicht beschäftigen.


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 10:20:55

Wahrscheinlich muss ich die Blätter mit visible sichtbar machen und dann wieder unsichtbar. Aber wie est der Code dazu und wo müsste ich den einbauen?


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 25.07.2018 11:03:01

Hallo Dennis,

so:

Public Sub Beispiel()
    ThisWorkbook.Unprotect Password:="DeinKennwort"
    Worksheets("Tabelle1").Visible = xlSheetVisible
    ThisWorkbook.Protect Password:="DeinKennword"
End Sub


Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 12:45:09

Hallo Nepumuk,

der Benutzer soll kein Passwort eingeben, er soll nur auf ein Tabellenblatt Zugang haben.
Ich hatte die Codes die ich bereits in der Datei habe bereits angegeben.
Wo soll der richtige Code dann hin?

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 25.07.2018 13:15:53

Hallo Dennis,

na da wo du Tabelle ein/ausblendest.

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 14:32:44

Hallo Nepumuk,

habe den Code in die jeweiligen Tabellen eingefügt. Kriege aber den schutz Arbeitsmappe nicht raus.
Jedesmal wenn ich die Datei neustarte, aktiviert sich der Schutz automatisch. Was muss ich da ändern?

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 25.07.2018 15:03:36

Hallo Dennis,

der Schutz wird im Makro kurz aufgehoben, die Tabelle eingeblendet und anschließen wird der Schutz wieder gesetzt.

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 16:20:59

Hallo Nepumuk,

es ist zum verzweifeln, vielleicht liegt es am Wetter :-)
Mal funktioniert es, und dann wieder nicht und kommt Fehlermeldung
Visible-Eigenschaft des Worksheet-Objektes kann nicht festgelegt werden.

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 25.07.2018 16:24:00

Hallo Dennis,

du musst die zwei Zeilen, die welche den Schutz aufhebt und die welche den Schutz setzt, um alle Zeilen die Tabellen einblenden/ausblenden kopieren. Nur bei einer Zeile genügt nicht.

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 26.07.2018 13:01:14

Hallo Nepumuk,

ich verstehe leider nicht was du meinst? Ich habe diesen Code in jede Tabelle eingefügt:

Public Sub Beispiel()
    ThisWorkbook.unprotect Password:="test"
    Worksheets("Tabelle1").Visible = xlSheetVisible
    ThisWorkbook.protect Password:="test"
End Sub
Oder was meinst du?

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 26.07.2018 14:27:07

Hallo Dennis,

der Code ist wie der Name schon sagt nur ein Beispiel dafür wie du es lösen kannst. Du musst vor jeder Zeile deines Codes in der du eine Tabelle ein- oder ausblendest die Zeile:

ThisWorkbook.Unprotect Password:="test"

setzen, und nach deiner Zeile die Zeile:

ThisWorkbook.Protect Password:="test"

einfügen. Damit wird vor dem Ändern der Sichtbarkeit der Mappenschutz aufgehoben und nach dem Ändern der Schutz wieder gesetzt. So ist der Schutz der Mappe gesichert.

Jetzt klarer?

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 26.07.2018 14:54:46

Hallo Nepumuk,
jetzt verstanden. Habe den Code in beiden Modulen eingefügt und es funktioniert.
Allerdings fundktioniert der automatische filter in der Tabelle 3 nicht mehr.
Habe dort folgenden Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Selection.Rows.AutoFit
ActiveSheet.UsedRange.Rows.AutoFit

End Sub
Habe es hiermit versucht:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
                ThisWorkbook.unprotect Password:="SDFLkM"
            .Visible = xlSheetVisible
                ThisWorkbook.protect Password:="SDFLkM"
Selection.Rows.AutoFit
ActiveSheet.UsedRange.Rows.AutoFit
                ThisWorkbook.unprotect Password:="SDFLkM"
            .Visible = xlSheetVeryHidden
                ThisWorkbook.protect Password:="SDFLkM"
End Sub

Funktioniert auch nicht. Was muss ich hier machen?
Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 26.07.2018 15:19:00

Habe den Fehler gefunden. Es ist echt zu heiss :-)

Nochmals vielen Dank Nepumuk!

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 26.07.2018 15:56:56

Hallo Nepumuk,

letzter Schlief fehlt noch, wenn ich die Datei öffne, kommt Popup Fenster: Arbeitsmappenschutz aufheben und will passwort. Wenn ich auf abbrechen klicke, kommt: Laufzeitfehler 1004: Die Methode 'Protect' für das Objekt 'Workbook' ist fehlgeschlagen.

Wie kann ich es rausnehmen das er beim öffnen mich nach dem Kennwort für Arbeitsmappenschutz fragt?

Gruß
Dennis


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 26.07.2018 16:00:06

Hallo Dennis,

das kommt wenn du in einer Programmzeile das falsche Kennwort eingegeben hast. In welcher kann ich dir leider ohne die Mappe nicht sagen.

Gruß
Nepumuk


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 26.07.2018 13:02:17

PS. es ist das erste mal das ich mit VBA arbeite.


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Dennis
Geschrieben am: 25.07.2018 16:23:57

und die Formeln sind überall sichtbar. die Zellen sind nicht geschützt. Es ist nicht die eleganteste Lösung.


  

Betrifft: AW: Visible-Eigenschaft des Worksheet-Objektes kann ni von: Nepumuk
Geschrieben am: 25.07.2018 16:28:29

Hallo Dennis,

für den Schutz von Formel ist der Blattschutz zuständig. Das hat mit dem Arbeitsmappenschutz nichts zu tun. Um Formeln auszublenden musst du den Dialog Zellen formatieren mit einem Rechtsklick aufrufen und im Register Schutz die Option Ausgeblendet aktivieren. Dann das Blatt schützen.

Gruß
Nepumuk