Aufgabe: dieses vba Makro Code zeigt per Button Klick alle Zellen an, welche noch nicht gesperrt sind.
Man verwendet diese Funktion, wenn man in Microsoft Excel Formulare baut, und freie Eingabezellen erstellt. Dabei sperrt man in der Regel erst alle Zellen der Seite mit Zellen sperren und anschliessend gibt man die Zellen frei, welche zur Eingabe des Formulars dienen.
Allerdings benรถtigt man oft eine Funktion, mit welcher man die Zellen anzeigen kann, welche noch frei sind oder schon richtig definiert sind.
Die Datei als Vorlage und der Makro Code liegen hier bereit
'*Eingabezellen oder Eingabebereiche anzeigen in Excel Option Explicit '***********< Schutz und Eingabe >**************** Public Sub Alle_Eingabefelder_anzeigen_in_Arbeitsmappe() Eingabefelder_anzeigen_in_Arbeitsmappe ThisWorkbook MsgBox "Fertig" End Sub Public Sub Alle_Eingabefelder_anzeigen_im_Blatt() Eingabefelder_anzeigen_in_Blatt ThisWorkbook, ActiveSheet MsgBox "Fertig" End Sub Public Sub Eingabefelder_anzeigen_in_Arbeitsmappe(ByVal wb As Workbook) '-----------------< Eingabefelder_anpassen_in_Arbeitsmappe() >----------------- '----< Sheets ermitteln >----
'--< @Loop: alle Sheets >-- Dim ws As Worksheet For Each ws In wb.Sheets Eingabefelder_anzeigen_in_Blatt wb, ws Next '--< @Loop: alle Sheets >--
Application.StatusBar = Now & " fertig: Eingabefelder anpassen" '-----------------</ Eingabefelder_anpassen_in_Arbeitsmappe() >----------------- End Sub
Public Sub Eingabefelder_anzeigen_in_Blatt(ByVal wb As Workbook, ByVal ws As Worksheet) '-----------------< Eingabefelder_anzeigen_in_Blatt() >----------------- On Error Resume Next If ws.Visible = xlSheetVisible Then 'nur sichtbare seiten Application.StatusBar = Now & " Start: Markiere Eingabefelder in Blatt " & ws.Name
'vSheet.Activate Dim range_Cells As Range Set range_Cells = Nothing
Dim cell As Range For Each cell In ws.UsedRange.Cells If cell.Locked = False Then If range_Cells Is Nothing Then Set range_Cells = cell Else Set range_Cells = Union(range_Cells, cell) End If End If Next If Not range_Cells Is Nothing Then range_Cells.Select End If End If
Set range_Cells = Nothing
'ABSCHLUSS ws.Activate Application.StatusBar = Now & " fertig: " & ws.Name & " Eingabezellen anzeigen " Application.ScreenUpdating = True '-----------------</ Eingabefelder_anzeigen_in_Blatt() >----------------- End Sub |