Office: (Office 365) Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt)

Helfe beim Thema Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt) in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Moin zusammen, folgendes Problem: Im Normalfall verzichte ich aus Gründen auf den Einsatz von VBA, aber dieses Mal komme ich nicht umher. Ich habe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von TheoVonTorte, 19. Juli 2023.

  1. Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt)


    Moin zusammen,

    folgendes Problem:
    Im Normalfall verzichte ich aus Gründen auf den Einsatz von VBA, aber dieses Mal komme ich nicht umher. Ich habe schon fleißig recherchiert und mich versucht, aber komme nicht zum gewünschten Ergebnis.

    Folgende Ausgangssituation:
    Ich möchte bestimmte Zeilen einer Tabelle über den Bereich A?:AC? sperren, sofern in der Zelle AC? der Text "Yes" steht (wird über eine Formel automatisch eingetragen, wenn in der Zeile bestimmte Werte ausgefüllt werden. Hierzu habe ich bereits das Blatt mit dem Passwort "ente" geschützt und den Schutz (Zelle formatieren -> gesperrt) für den Tabellenbereich aufgehoben.

    Mein kläglicher Versuch (funktioniert nicht...) sieht folgendermaßen aus:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Range("AZ1:BA1200"), Target) Is Nothing Then Exit Sub
    If Target.Value = "Yes" Then
    ActiveSheet.Unprotect "ente"
    Target.EntireRow.Locked = True
    ActiveSheet.Protect "ente"
    End If
    ActiveSheet.Protect "ente"


    End Sub

    Wer mag helfen und mir eine bessere Lösung anbieten / kann meinen Fehler identifizieren? :)
    Gerne auch mit Erklärung, falls ihr meine Fehler aus der Ferne identifizieren könnt. Dann kann ich gleich noch was lernen und bin nächstes Mal nicht auf eure Hilfe angewiesen. Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt) *;)*

    Danke
    Theo
     
    TheoVonTorte, 19. Juli 2023
    #1
  2. HKindler
    HKindler Erfahrener User
    Hi,

    - Worksheet_Change springt nur bei einem händischen Eintrag an, aber nicht, wenn sich der Wert aufgrund einer Formel ändert. Daher musst du die Zellen überwachen, auf die die Formel zugreift.

    - du schreibst, dass dein "Yes" in Spalte AC steht, prüfst aber nur Zellen in AZ1:BA1200 auf "Yes"

    - du brichst deine Routine ab, wenn keine Zelle von Target im genannten Bereich ist. Das ist spätestens dann eine schlechte Idee wenn du noch weitere Bereich auf etwas anderes überwachen willst. Daher besser
    Code:
    If Not Intersect(Range("AZ1:BA1200"), Target) Is Nothing Then
        'hier dein Code
    End If
    - deine Routine bricht mit einer Fehlermeldung ab, wenn mehrere Zellen gleichzeitig geändert werden.
     
    HKindler, 19. Juli 2023
    #2
  3. Vielen Dank für deine Antwort! Das bringt schon mal ein bisschen Licht ins Dunkeln! :)
    Dann haben wir ja den Übeltäter gefunden. Also muss ich die verformelte Abfrage quasi nochmal in VBA abbilden, richtig?

    Dann muss ich prüfen, ob in AA UND AB jeweils ein Eintrag vom Typ "Testeintrag" erfolgt ist. Wie kann ich das abbilden (IF AND?!)? Die Zellen werden jeweils über ein Dropdown gefüllt, gilt das als händisch, sodass Worksheet_Change funktioniert?

    Schönen Abend noch!
     
    TheoVonTorte, 19. Juli 2023
    #3
  4. HKindler
    HKindler Erfahrener User

    Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt)

    Hi,

    klar könnte man jetzt mühsam das alles zusammensuchen, aber es geht auch einfacher Range(...).Precedents gibt die automatisch die Quell-Zellen zurück.
    Ein Code könnte so aussehen:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bereich As Range
    Dim Zelle As Range
    Set Bereich = Intersect(Target, Columns("AC").Precedents)
    If Not Bereich Is Nothing Then
        For Each Zelle In Bereich
            Zelle.EntireRow.Locked = Cells(Zelle.Row, "AC") Like "Yes"
        Next Zelle
    End If
    End Sub
    Mangels Beispieldatei natürlich ungetestet.
     
    HKindler, 19. Juli 2023
    #4
Thema:

Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt)

Die Seite wird geladen...
  1. Zeilen automatisch sperren mittels VBA (wenn Bedingung erfüllt) - Similar Threads - Zeilen automatisch sperren

  2. Zeilen in Excel automatisch alle paar Zeilen einfügen

    in Microsoft Excel Hilfe
    Zeilen in Excel automatisch alle paar Zeilen einfügen: Hallo, ich bin über die Googlesuche hier gelandet und dachte ich hätte auch die Lösung für mein Problem schon gefunden. Doch der Beitrag war von 2006 und schon beim Eingeben in MS Office...
  3. Spesenzettel ohne leere Zeilen automatisch ausfüllen lassen

    in Microsoft Excel Hilfe
    Spesenzettel ohne leere Zeilen automatisch ausfüllen lassen: Guten Abend liebe Excel Helfer / innen Ich habe einen neuen Arbeitgeber. Der möchte eine Spesenabrechnung von mir bekommen. Ich habe für Euch mal meine bisherigen Eingaben als Datei angehängt...
  4. Zeile automatisch in Excel Tabellenformat einfügen, wenn letzte beschrieben

    in Microsoft Excel Hilfe
    Zeile automatisch in Excel Tabellenformat einfügen, wenn letzte beschrieben: Hallo ihr Lieben! Ich benötige bitte eure Hilfe: Ich habe in Excel eine Tabelle erstellt und diese auch als Tabelle formatiert. Jetzt würde ich gerne automatisch eine Zeile Zwischen der...
  5. Excel Macro automatischen Suchen in Zeilen und TextBox

    in Microsoft Excel Hilfe
    Excel Macro automatischen Suchen in Zeilen und TextBox: Hallo, Hoffe vielleicht das von euch jemand eine Idee hat hier bei meinem Problem. Denke mal der Code ist ziemlich unsauber, aber er funktioniert :D hehe, mein größeres Problem ist das er bei...
  6. Zeile Automatisch löschen

    in Microsoft Excel Hilfe
    Zeile Automatisch löschen: Hallo, ich möchte eine digitale Werkzeugausgabe erstellen. Mein Problem ist, das ich bei der automatischen Löschung von Zellen eine Fehlermeldung bekomme, wenn in Spalte 12 kein x steht. Die...
  7. Automatisches Befüllen

    in Microsoft Excel Hilfe
    Automatisches Befüllen: Hallo, ich habe eine Frage. Ich habe eine Tabelle, welche nur Spalte A beinhaltet mit mehreren Werten. In einer zweiten Tabelle möchte ich aus diese Spalte A lediglich alle 9 Zeilen haben. Also...
  8. Exceltabelle automatisch den Namen aus einer Zeile geben

    in Microsoft Excel Hilfe
    Exceltabelle automatisch den Namen aus einer Zeile geben: Guten Tag zusammen, ich würde gerne dass die Excellisten beim verschicken, den Namen bekommen den man in Zeile 5/D einträgt. geht das? Liebe Grüße Maik
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden