Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1408to1412
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

Blattschutz in Makro integrieren

Blattschutz in Makro integrieren
10.02.2015 10:01:20
Meike
Hallo Zusammen,
ich möchte das bei Aktivierung des Kontrollkästchens1 (Formularsteuerelement) bestimmte Zeilen in der Tabelle2 eingeblendet werden und in die Zelle F385 (Tabelle2) gesprungen werden soll.
Bei Deaktivierung des Kontrollkästchen soll man auf Tabelle1 bleiben und die Zeilen 378:410 auf Tabelle2 sollen wieder ausgeblendet sein und falls auf Tabelle2 in F385, 386 und F403 etwas eingegeben wurde dies gelöscht werden.
Ich habe die beiden Makros einzeln unten aufgelistet und rufe beide Makros über das Makro Kk_1 auf. Mein Problem ist es nun, wie bzw, wo ich hier noch den Blattschutz unterbringe. So wie ich das jetzt versucht habe (s.u.) klappt es leider nicht :(.
Vielleicht hat der ein oder andere von euch hierzu einen Vorschlag?! Da ich kompletter VBA-Neuling bin, würde ich mich auch freuen, wenn jemand eine Idee hat, wie man das ganze schöner darstellen könnte. (evtl. in ein Makro und nicht zwei).
Ich bedanke mich im voraus.
Ganz liebe Grüße Meike
Sub Kk_1()
Sheets("Tabelle2").Unprotect Password:="pw"
Call HideUnhide
Call sprung_T2
Sheets("Tabelle2").Protect Password:="pw", DrawingObjects:=True, Contents:=True, Scenarios:= _
True _
, AllowFormattingCells:=True
End Sub
Sub HideUnhide()
With Sheets("Tabelle2").Rows("378:410")
.Hidden = Not .Hidden
End With
End Sub
Sub sprung_T2()
If Range("I15").Value = True Then
Sheets("Tabelle2").Select
Range("F385").Select
Else
Sheets("Tabelle2").Range("F385,F386,F403").ClearContents
End If
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz in Makro integrieren
10.02.2015 12:31:49
fcs
Hallo Meike,
du hast dich "nur" beim Ein-/Ausbenden der Zeilen verheddert.
Statt den Status umzuschalten ist es besser den Hidden-Status der Zeilen nicht dem Wert der Checkbox (Wert von zelle I15) zu setzen.
Separate Subs sind nicht unbedingt nötig, bei den wenigen Code-Zeilen bleibt es ja übersichtlich, auch wenn man alles in einem Makro zusammenfasst.
Gruß
Franz
Sub Kk_1()
Sheets("Tabelle2").Unprotect Password:="pw"
Call HideUnhide
Call sprung_T2
Sheets("Tabelle2").Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End Sub
Sub HideUnhide()
With Sheets("Tabelle2").Rows("378:410")
.Hidden = Not Sheets("Tabelle1").Range("I15").Value
End With
End Sub
Sub sprung_T2()
If Sheets("Tabelle1").Range("I15").Value = True Then
Sheets("Tabelle2").Select
Range("F385").Select
Else
Sheets("Tabelle2").Range("F385,F386,F403").ClearContents
End If
End Sub
'### neu alles in einem Makro
Sub Kk_1_neu()
Dim bol_I15 As Boolean
bol_I15 = Sheets("Tabelle1").Range("I15").Value
With Sheets("Tabelle2")
.Unprotect Password:="pw"
.Rows("378:410").Hidden = Not bol_I15
If bol_I15 = True Then
.Select
.Range("F385").Select
Else
.Range("F385,F386,F403").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Anzeige
AW: Blattschutz in Makro integrieren
10.02.2015 13:14:40
Meike
Hallo Franz,
erstmal vielen Dank für deine schnelle und hilfreiche Antwort. Es funktioniert!
Ich wollte dieses Prinzip nun auf meine weiteren 9 Kontrollkästchen anwenden aber bekomme hier jetzt leider eine Fehlermeldung.
Habe ich hier einen Denkfehler drin (s.u.)?
Was mir noch aufgefallen ist: Wenn ich das Kästchen deaktivieren, bleibe ich zwar auf Tabelle1 aber es zeigt mir kurz, dass in Tabelle2 gesprungen wird und etwas geändert wird. - Also so ein kurzer Bildwechsel. Genauso beim Aktivieren - hier springe ich in Tabelle2 dann kurz zurück in Tabelle1 und wieder in Tabelle2. War das bei dir auch so? oder liegt das an meiner Excelversion oder am Rechner? - Kann man diesen Schönheitsfehler irgendwie vermeiden oder umgehen?
Vielen Dank für deine Hilfe. Liebe Gruß
Sub Kk_2()
Dim bol_I15 As Boolean
bol_I15 = Sheets("Tabelle1").Range("I17").Value
With Sheets("Tabelle2")
.Unprotect Password:="pw"
.Rows("411:445").Hidden = Not bol_I17
If bol_I17 = True Then
.Select
.Range("D421").Select
Else
.Range("D421,D422,D424").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Anzeige
AW: Blattschutz in Makro integrieren
10.02.2015 15:08:56
fcs
Hallo Meike,
du hast keinen Denkfehler sondern die Variable bol_I15 nicht in allen Zeilen in bol_I17 umbenannt.
Wenn du das Makro mehrmals in ähnlicher Form verwenden Möchtest, dann verwende einen neutralen Variablennamen z.B. bolSichtbar.
Das Flackern der Anzeige wird vom Umschalten des Blattschutzes verursacht. Man kann es weitestgehend unterdrücken, wenn die Bildschirmaktualisierung während der Makroausführung deaktiviert ist.
Gruß
Franz
Sub Kk_2()
Application.ScreenUpdating = False
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Tabelle1").Range("I17").Value
With Sheets("Tabelle2")
.Unprotect Password:="pw"
.Rows("411:445").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D421").Select
Else
.Range("D421,D422,D424").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Blattschutz in Makro integrieren
10.02.2015 17:24:05
Meike
Hi Profi, das ist eine gute Alternative. Danke auch für deine schnelle Antwort!!!
Leider kann ich noch nicht sagen, dass es jetzt zu 100% flutscht, denn nun sind 2 neue Sachen aufgekommen....
1. Jetzt habe ich das Problem, dass bei Aktivierung zwar in D421 gesprungen wird aber die Zelle die zuletzt "angesehen" wurde angezeigt wird z.B. A12. Man sozusagen nicht automatisch zu D421 scrollt.
2. Ich habe aus dem Forum einen Befehl für eine Druckvorschau und einen Druck-Pdf- Button übernommen bzw. angepasst, der sich den Speicherort, Name und die Seiten auch aus der Tabelle1 zieht. (s.u.) Bisher gelang es mir, dass die ein-und ausgeblendeten Seiten nacheinander erschienen sind. Nun ist es leider so, dass wenn bspw. Kontrollkästchen 1 und 9 aktiviert sind, im Pdf und in der Vorschau 8 leere Seiten zwischen den eingeblendeten Zeilen dargestellt werden. Könnte man das noch irgendwie umgehen?
Ich hoffe du kannst mir hierzu nochmals weiterhelfen :). 1000 Dank und lieben Gruß
Option Explicit
Public Blatt As String, Ws As Worksheet
Public SeiteVon As Integer, SeiteBis As Integer
Public Anzeigen As Boolean
Public Pfad As String, Datei As String
Sub Druckvorschau()
If Ermittle_Blatt() Then
Call Ermittle_Seiten_Anzeigen
Ws.PrintOut From:=SeiteVon, To:=SeiteBis, Copies:=1, Collate:=True, IgnorePrintareas:=False, _
Preview:=Anzeigen
Else
MsgBox Prompt:="Das Arbeitsblatt '" & Blatt$ & "' existiert nicht!" & vbNewLine & vbNewLine  _
& _
"Daher kein Drucken möglich --> Abbruch!", _
Buttons:=vbCritical + vbOKOnly, _
Title:="Falsches Arbeitsblatt"
End If
End Sub

Sub ErzeugePDF()
Dim DtTxt As String, UserTxt As String
DtTxt = Format(Date, "YYYY-MM-DD")
UserTxt = Application.UserName
If Not Ermittle_Blatt() Then GoTo Err_Makro3_PDF2
If Not Ermittle_PFadDatei() Then GoTo Err_Makro3_PDF1
Call Ermittle_Seiten_Anzeigen
Ws.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Pfad & Datei & ".pdf", _
From:=SeiteVon, To:=SeiteBis, OpenAfterPublish:=Anzeigen, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintareas:=False
Exit Sub
Err_Makro3_PDF2:
MsgBox Prompt:="Das Arbeitsblatt '" & Blatt$ & "' existiert nicht!" & vbNewLine & vbNewLine  _
& _
"Daher keine Speicherung der PDF-Datei --> Abbruch!", _
Buttons:=vbCritical + vbOKOnly, _
Title:="Falsches Arbeitsblatt"
Exit Sub
Err_Makro3_PDF1:
MsgBox Prompt:="Der Pfad '" & Pfad & "' zum Speichern der PDF-Datei existiert nicht!" &  _
vbNewLine & vbNewLine & _
"Daher keine Speicherung der PDF-Datei --> Abbruch!", _
Buttons:=vbCritical + vbOKOnly, _
Title:="Falscher Dateipfad"
End Sub

Function Ermittle_Blatt() As Boolean
Blatt$ = Range("Tabelle1!J28").Value
On Error GoTo Err_Blatt
Set Ws = Worksheets(Blatt$)
Ermittle_Blatt = True
Exit Function
Err_Blatt:
Ermittle_Blatt = False
End Function
Function Ermittle_PFadDatei() As Boolean
Pfad = Range("Tabelle1!J26"): If Right(Pfad, 1)  "\" Then Pfad = Pfad & "\"
Datei = Range("Tabelle1!J27").Value
Ermittle_PFadDatei = Len(Dir(Pfad, vbDirectory)) > 0
End Function

Sub Ermittle_Seiten_Anzeigen()
SeiteVon = Range("Tabelle1!K29").Value
SeiteBis = Range("Tabelle1!K30").Value
Anzeigen = Range("Tabelle1!J31").Value = "Ja"
End Sub

Anzeige
AW: Blattschutz in Makro integrieren
10.02.2015 18:18:57
fcs
Hallo Meike,
zu 1. Scrollen
Dann muss eine zusätzliche Scroll-Anweisung eingefügt werden auf die gewünschte Zeilennummer.
Sub Kk_1_neu()
Application.ScreenUpdating = False
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Tabelle1").Range("I15").Value
With Sheets("Tabelle2")
.Unprotect Password:="pw"
.Rows("378:410").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("F385").Select
ActiveWindow.ScrollRow = 385    'zusätzlich
Else
.Range("F385,F386,F403").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
Application.ScreenUpdating = True
End Sub
zu 2. Leerseiten/-zeilen im Druck
ausgeblendete Zeile werden normalerweise nicht gedruckt.
Hast du evtl. Zeilen nicht ausgeblendet an denen manuell gesetzte horizontale Seitenwechsel definiert sind?
Wenn Ja, dann müßssten diese Zeilen vor dem Drucken/PDF-Export/der Seitenvorschau diese Zeilen zusätzlich ausgeblendet werden, nach dem Drucken/Vorschau/Export dann wieder eingeblendet werden. Oder diese Seitenwechsel werden temporär entfernt.
Gruß
Franz

Anzeige
AW: Blattschutz in Makro integrieren
11.02.2015 14:32:51
Meike
Hi Franz,
das Scroll-Problem ist behoben - Vielen Dank dafür!
Wg. der Druckthematik - Ich habe gerade überprüft ob ich eine Zeile beim ausblenden vergessen habe. Ich (als Neuling) würde behaupten, ich habe diese übergangslos übernommen und keine vergessen. Ich habe dir hier meine Datei mal hochgeladen, vielleicht erkennst du den Fehler oder hast eine Alternativlösung. Ansonsten muss ich mich damit arrangieren.
http://www.file-upload.net/download-10285524/Excel.zip.html
Hast du noch einen Vorschlag für den Alle-Haken-Zurücksetzen-Button? Ggf. auch mit einem Button alle aktivieren.
Ich habe da zwar schon etwas, da werden bei mir zwar alle zurückgesetzt aber nicht "deaktiviert". D.h. die Seiten bleiben auf Tabelle2 eingeblendet.
Ich bedanke mich im Voraus für deine Unterstützung.
Liebe Grüße
Sub Button_Kk_1()
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("C6").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("378:411").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D385").Select
ActiveWindow.ScrollRow = 385
Else
.Range("D385,D386,D388").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Sub Button_Kk_2()
Application.ScreenUpdating = False
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("C8").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("412:445").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D421").Select
ActiveWindow.ScrollRow = 421
Else
.Range("D421,D422,D424").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
Application.ScreenUpdating = True
End Sub
Sub Button_Kk_3()
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("C9").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("446:479").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D455").Select
ActiveWindow.ScrollRow = 455
Else
.Range("D455,D456,D458").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub
Sub Button_Kk_4()
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("C10").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("480:513").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D489").Select
ActiveWindow.ScrollRow = 489
Else
.Range("D489,D490,D492").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Sub Button_Kk_5()
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("C12").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("514:547").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D523").Select
ActiveWindow.ScrollRow = 523
Else
.Range("D523,D524,D526").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub
Sub Button_Kk_6()
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("G6").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("548:581").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D557").Select
ActiveWindow.ScrollRow = 557
Else
.Range("D557,D558,D560").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub
Sub Button_Kk_7()
Dim bol_Sichtbar As Boolean
bol_Sichtbar = Sheets("Eingabe").Range("G7").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("582:615").Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Select
.Range("D591").Select
ActiveWindow.ScrollRow = 591
Else
.Range("D591,D592,D594").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Sub Button_Kk_8()
Dim bol_M18 As Boolean
bol_M18 = Sheets("Eingabe").Range("G9").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("616:649").Hidden = Not bol_M18
If bol_M18 = True Then
.Select
.Range("D625").Select
ActiveWindow.ScrollRow = 625
Else
.Range("D625,D626,D628").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub
Sub Button_Kk_9()
Dim bol_M19 As Boolean
bol_M19 = Sheets("Eingabe").Range("G10").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("650:683").Hidden = Not bol_M19
If bol_M19 = True Then
.Select
.Range("D659").Select
ActiveWindow.ScrollRow = 659
Else
.Range("D659,D660,D662").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Sub Button_Kk_10()
Dim bol_M21 As Boolean
bol_M21 = Sheets("Eingabe").Range("G12").Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows("684:717").Hidden = Not bol_M21
If bol_M21 = True Then
.Select
.Range("D693").Select
ActiveWindow.ScrollRow = 693
Else
.Range("D693,D694,D696").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
End Sub

Anzeige
AW: Blattschutz in Makro integrieren
12.02.2015 16:24:36
fcs
Hallo Heike,
nachdem ich auf der etwas nervigen Webseite endlich die richtige Schaltfläche zum Herunterladen der Datei und nicht irgendwelchen andern Zeugs erwischt habe, kann ich dir jetzt etwas weiterhelfen. Aber es ist irgendwie nicht zufriedenstellend.
Die Checkboxen kannst du wie folgt setzen. Beim Aktivieren flackert es aber nach jeder Box.
Sub Zuruecksetzen_haken()
Dim chb As CheckBox
For Each chb In ActiveSheet.CheckBoxes
chb.Value = False
Application.Run chb.OnAction
Next
End Sub
Sub Setzen_haken_Alle()
Dim chb As CheckBox
Application.ScreenUpdating = False
For Each chb In ActiveSheet.CheckBoxes
chb.Value = True
Application.Run chb.OnAction
Next
Sheets("Eingabe").Activate
Application.ScreenUpdating = True
End Sub
Das Problem mit den Leerseiten bei der Druckausgabe hangt mit den manuell gesetzten Seitenumbrüchen in den Zellen B378, B412, B446, B480, B514, B548, B582, B616, B650 und B684 zusammen.
Entscheidend scheint dabei zu sein, dass bei der gewählten Verkleinerung für die Druckausgabe diese manuellen Seitenwechsel in den Zellen plaziert sind, in denen auch die entsprechenden automatischen Seitenwechsel generiert werden.
Ich hab das jetzt mal so umgestrickt, das die Seitenwechsel bei den sichtbaren Bereichen geetzt und bei den nicht sichtbaren entfernt werden. Vorher müssen die vorhandeen Seitenümbrüche ab Zeile 378 einmalig gelöscht werden.
Gruß
Franz
Neue Makros für die Checkboxen, ein zentrales Makro wird jetzt mit Parametern aufgerufen.
Sub prcEin_Ausblenden_AK(sLinkedCell$, sRangeHide$, sRangeSelect$, sRangeClear$, _
lScrollRow&, lRowHPB&)
'sLinkedCell  = Adresse der Zelle des Links der Checkbox
'sRangeHide   = auszublendender Zeilenbereich
'sRangeSelect = Adresse der zu selektierenden Zelle
'sRangeClear  = Adressen der Zellen der Inhalt gelöscht werden soll
'lScrollRow   = Nummer der Zeile in die gescrollt werden soll
'lRowHPB      = Nummer der Zeile in der Seitenwechsel gestzt/entfernt wird
Dim bol_Sichtbar As Boolean
Dim wks As Worksheet, Zelle As Range
Application.ScreenUpdating = False
bol_Sichtbar = Sheets("Eingabe").Range(sLinkedCell).Value
With Sheets("AK")
.Unprotect Password:="pw"
.Rows(sRangeHide).Hidden = Not bol_Sichtbar
If bol_Sichtbar = True Then
.Cells(lRowHPB, 1).PageBreak = xlPageBreakManual
.Select
.Range(sRangeSelect).Select
ActiveWindow.ScrollRow = lScrollRow
Else
.Cells(lRowHPB, 1).PageBreak = xlPageBreakNone
.Range("D385,D386,D388").ClearContents
End If
.Protect Password:="pw", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End With
Application.ScreenUpdating = True
End Sub
Sub Button_Kk_1()
Call prcEin_Ausblenden_AK(sLinkedCell:="C6", sRangeHide:="378:411", _
sRangeSelect:="D385", sRangeClear:="D385,D386,D388", lScrollRow:=385, lRowHPB:=378)
End Sub
Sub Button_Kk_2()
Call prcEin_Ausblenden_AK("C8", "412:445", "D421", "D421,D422,D424", 421, 412)
End Sub
Sub Button_Kk_3()
Call prcEin_Ausblenden_AK("C9", "446:479", "D455", "D455,D456,D458", 455, 446)
End Sub
Sub Button_Kk_4()
Call prcEin_Ausblenden_AK("C10", "480:513", "D489", "D489,D490,D492", 489, 480)
End Sub
Sub Button_Kk_5()
Call prcEin_Ausblenden_AK("C12", "514:547", "D523", "D523,D524,D526", 523, 514)
End Sub
Sub Button_Kk_6()
Call prcEin_Ausblenden_AK("G6", "548:581", "D557", "D557,D558,D560", 557, 548)
End Sub
Sub Button_Kk_7()
Call prcEin_Ausblenden_AK("G7", "582:615", "D591", "D591,D592,D594", 591, 582)
End Sub
Sub Button_Kk_8()
Call prcEin_Ausblenden_AK("G9", "616:649", "D659", "D625,D626,D628", 625, 616)
End Sub
Sub Button_Kk_9()
Call prcEin_Ausblenden_AK("G10", "650:683", "D693", "D659,D660,D662", 659, 650)
End Sub
Sub Button_Kk_10()
Call prcEin_Ausblenden_AK("G12", "684:717", "D625", "D693,D694,D696", 693, 684)
End Sub
'Hilfsmakro zum löschen der Seitenumbrüche in einem Zellbereich
'vorher den Blattschutz ggf. aufheben
Sub prcPageBreaks_Loeschen()
Dim Zelle As Range, objPB As HPageBreak
On Error GoTo Fehler
For Each Zelle In Worksheets("AK").Range("A378:B719")
If Zelle.PageBreak = xlPageBreakManual Then
Zelle.PageBreak = xlPageBreakNone
End If
Next_Zelle:
Next
Fehler:
With Err
Select Case .Number
Case 0
Case 1004
Resume Next_Zelle
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Blattschutz in Makro integrieren
13.02.2015 16:49:04
Meike
Hi Franz,
es funktioniert jetzt alles super! Das flackern bei "alle markieren" nehme ich hin :-) !
Ich bin jetzt echt richtig gut weitergekommen. Ich bedanke mich herzlichst.
Liebe Grüße und ein schönes Wochenende.
Meike

AW: Blattschutz in Makro integrieren
16.02.2015 13:20:19
Meike
Eine Frage ist mir jetzt doch noch gekommen ;) - hoffe das Thema ist noch nicht geschlossen : Könnte man bei "alle Hacken de- bzw. aktivieren" auch Einschränkungen machen, auf welche Kästchen sich dieser Befehl bezieht. zB. nur die Kontrollkästchen in (I15:M21)?
Also für den Fall das ich auf Seite 2 in derselben Tabelle nochmal mit Kontrollkästchen arbeite die nicht mit "alle zurücksetzen" angesprochen werden soll?
Danke nochmal - und sorry für die Unannehmlichkeiten. Lieben Gruß

Anzeige
AW: Blattschutz in Makro integrieren
16.02.2015 17:01:50
fcs
Hallo Meike,
man kann z.B. prüfen, ob die linke obere Ecke des Checkboxrahmens innerhalb eines Zeillbereichs liegt.
Das Zurücksetzen der Checkboxen kannst du in gleicher Weise steuern.
Gruß
Franz
Sub Setzen_haken_Alle()
'Checkbox auf True setzen wenn die Linke-Obere Ecke der Checkbox innerhalb des Zellbereichs  _
liegt
Dim chb As CheckBox, wksEingabe As Worksheet
Set wksEingabe = Worksheets("Eingabe")
Application.ScreenUpdating = False
For Each chb In wksEingabe.CheckBoxes
If Not Intersect(wksEingabe.Range("I15:M21"), chb.TopLeftCell) Is Nothing Then
chb.Value = True
Application.Run chb.OnAction
ElseIf Not Intersect(wksEingabe.Range("C8:G12"), chb.TopLeftCell) Is Nothing Then
chb.Value = True
Application.Run chb.OnAction
End If
Next
wksEingabe.Activate
Application.ScreenUpdating = True
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige