Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1816to1820
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

bestimmte farbige Zellen entsperren

bestimmte farbige Zellen entsperren
12.03.2021 10:06:03
Pascale
Guten Morgen liebe VBA-Profis
Gerne hätte ich ein Makro, bei welchem ich ein File öffnen kann, und es dann in diesem File alle Zellen mit der Farbe in Zelle B9 des Ursprungfiles abgleicht, und die Zellen welche die gleiche Farbe im neu geöffneten FIle haben, entsperren.
Das Öffnen klappt, das aufrufen der einzelnen Tabs klapt,
aber die gleichfarbigen Zellen zu entsperren, das klappt nicht. Ich vermute, dass der Fehler im fett markierten Bereich liegen müsste.
Seht ihr den Fehler?
Um Hilfe wäre ich sehr froh.
Pascale

Sub unlockcellsbycolor()
Dim colorIndex As Long
Dim color As Long
Dim WS_Count As Integer
Dim I As Integer
Dim xRg As Range
Dim FileToOpen As Variant
Dim OpenBook As Workbook
colorIndex = ThisWorkbook.Worksheets("Start").Range("B9").Interior.color
FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range",     _
FileFilter:="Excel Files (*.xls*),*xls*")
If FileToOpen  False Then
Set OpenBook = Application.Workbooks.Open(FileToOpen)
WS_Count = OpenBook.Worksheets.Count
For I = 1 To WS_Count
Application.ScreenUpdating = False
For Each xRg In ActiveSheet.UsedRange.Cells
        color = xRg.Interior.color
If (color = colorIndex) Then
xRg.Locked = False
Else
xRg.Locked = True
End If
Next xRg
Application.ScreenUpdating = True
Next I
ActiveSheet.Select
MsgBox "Alle Zellen mit der Zellenfarbe wie in B9 wurden entsperrt", vbInformation, "Zellen  _
entsperrt"
End If
End Sub


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte farbige Zellen entsperren
12.03.2021 11:17:32
Nepumuk
Hallo Pascale,
teste mal:
Option Explicit

Public Sub unlockcellsbycolor()
    
    Dim lngColor As Long
    Dim strFirstAddress As String
    Dim objWorksheet As Worksheet
    Dim objcell As Range
    Dim FileToOpen As Variant
    Dim OpenBook As Workbook
    
    lngColor = ThisWorkbook.Worksheets("Start").Range("B9").Interior.Color
    
    FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range", _
        FileFilter:="Excel Files (*.xls*),*xls*")
    
    If FileToOpen <> False Then
        
        Set OpenBook = Workbooks.Open(FileToOpen)
        
        With Application.FindFormat
            Call .Clear
            .Interior.Color = lngColor
        End With
        
        For Each objWorksheet In OpenBook.Worksheets
            
            objWorksheet.UsedRange.Locked = True
            
            Set objcell = objWorksheet.UsedRange.Find(What:="*", _
                LookAt:=xlWhole, SearchFormat:=True)
            
            If Not objcell Is Nothing Then
                
                strFirstAddress = objcell.Address
                
                Do
                    
                    objcell.Locked = False
                    
                    Set objcell = objWorksheet.UsedRange.Find(What:="*", _
                        After:=objcell, LookAt:=xlWhole, SearchFormat:=True)
                    
                Loop Until objcell.Address = strFirstAddress
            End If
            
        Next objWorksheet
        
        MsgBox "Alle Zellen mit der Zellenfarbe wie in B9 " & _
            "wurden entsperrt", vbInformation, "Zellen entsperrt"
        
    End If
End Sub

Gruß
Nepumuk
Anzeige

233 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige