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

Hilfe bei Userform

Hilfe bei Userform
16.11.2022 17:44:33
Andi
Hallo allerseits
Ich Bau mir gerade eine User form die den Blattschutz auf mehreren Tabellenblättern ein und wider ausschalten können soll, nur leider stoße ich langsam an meine Grenzen und brauche etwas Hilfe dabei.
Im Moment durchlaufe ich die Tabellen Blätter und liste sie in einer List Box auf, wo auch angezeigt wird ob sie momentan geschützt sind oder nicht. Aber ich bekomm es nicht hin das ich nur die ausgewählten Tabellenblätter Sperre Bzw. entsperre.
Und ich würde gerne über die Checkbox Alle Auswählen alle Listboxfelder auf einmal anhaken können Bzw. wider abhacken.
Wie bekomme ich es hin das ich beim durchlaufen der Tabellenblätter, nur die darin enthaltende Tabelle anspreche. Ich möchte in den Tabellen später während des Sperrens bestimmte bedingte Formatierungen per VBA löschen und neu setzen.
Ich hoffe ihr könnt mir im einen oder anderen Punkt weiterhelfen, danke jedenfalls an jeden der mir Hilft.
Bsp. Datei https://www.herber.de/bbs/user/156216.xlsm
Beste Grüße

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Userform
17.11.2022 00:01:06
Andi
super vielen dank für deine Hilfe ,das funktioniert :)))))
wüstest du vielleicht noch wie ich bedingte Formatierungen in die einzelnen Tabellen während des Sperrens hineinbekomme. Ich möchte vorhandene Formatierungen löschen und per VBA neue setzen. Es scheitert schon am erfassen des Tabellenbereichs bei mir :(
Danke und Grüße
AW: Hilfe bei Userform
17.11.2022 11:14:42
Nepumuk
Hallo Andi,
zeichne das doch mal mit dem Makro-Rekorder auf und stell den Code hier rein. Dann weiß ich, was du meinst.
Gruß
Nepumuk
Anzeige
AW: Hilfe bei Userform
17.11.2022 19:19:36
Andi
Hallo Nepumuk
Hab es mit dem Makrorekorder auf dem ersten Tabellenblatt aufgezeichnet so wie du es gesagt hast.
Ich würde gern aus der User form während des Sperrens zuerst bestehende bedingte Formatierungen löschen und dann diese hier in die Tabellen Jänner bis Dezember einsetzen. Entweder während des Sperrens oder wenn es einfacher ist mit einem separaten Buttons in der Userform.
(Ev. als Funktion gestaltet wäre schön. Da ich versuche die User form so leicht wie möglich Übertragbar in andere Mappen zu machen. Muss mir auch noch eine Eingabe Möglichkeit für die nicht zu sperrenden Zellen überlegen damit ich die User form dann einfach in andere Mappen importieren kann aber damit will ich dich nicht belästigen.)

    Cells.FormatConditions.Delete
Range("Jänner").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=($C2"""")*(REST(SUMMENPRODUKT(N($C$1:$C1$C$2:$C2));2)=0)"    'Zeilengruppen anhand der Datumsspalte abwechselnd einfärben teil1
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.799981688894314
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("Jänner").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=($C2"""")*(REST(SUMMENPRODUKT(N($C$1:$C1$C$2:$C2));2))"   'Zeilengruppen anhand der Datumsspalte abwechselnd einfärben Teil 2
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("Jänner[Name]").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$O2=""X"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Strikethrough = True
.Color = -16776961
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Der Hintergrund ist das die Tabellen regelmäßig aus anderen Quellen mit Notwendigen Grunddaten befüllt werden, wofür sie entsperrt werden müssen dabei sind manche Leute zu dumm um nur die werte Einzufügen. Dabei werden immer wider bedingte Formatierungen eingeschleppt oder die bestehenden beschädigt. Im gesperrten zustand werden dann nur ergänzende Informationen eingegeben.
Vielen dank für deine Hilfe
Grüße Andi
Anzeige
AW: Hilfe bei Userform
16.11.2022 19:42:43
ralf_b
die checkbox sache geht so

Private Sub CheckBox1_Change()
Dim i As Long
If CheckBox1.Value = True Then
For i = 0 To lstTabAuswahl.ListCount - 1
lstTabAuswahl.Selected(i) = True
Next
End If
End Sub
die Tabellen in den Blättern sind mittels Sheets("name").listobjects(1) erreichbar. Solange da nur eine formatierte Tabelle jeweils drin ist.
Einzeln sperren der selektierten Listeinträge

Dim i As Long
Dim pw as string
pw="geheim""
For i = 0 To lstTabAuswahl.ListCount - 1
if lstTabAuswahl.Selected(i) = True then sheets(lstTabAuswahl.list(i)).protect pw
Next
und die function zum auslesen

Private Function ListboxAuswahlAuslesen(LB As msForms.ListBox)
Dim strSelectierte As String
Dim i As Long
If LB.ListCount > 0 Then
For i = 0 To LB.ListCount - 1
If LB.Selected(i) = True Then
strSelectierte = strSelectierte & LB.List(i) & vbLf
End If
Next i
End If
MsgBox strSelectierte
End Function

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige