MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 09.02.2018, 10:10   #1
ricoh123
Neuer Benutzer
Neuer Benutzer
Traurig VBA - Blattschutz aufheben wenn bestimmte Zelle ausgewählt

Hallo liebes Forum,

ich suche verzweifelt nach einem VBA-Code mit dem ich den Blattschutz aufheben kann, sobald die Zelle Q2 in meinem aktiven Sheet ausgewählt wird.
Wird eine andere Zelle als Q2 ausgewählt, soll sich der Blattschutz wieder einschalten.

Hat hier jemand eine Idee für einen Code, der das bewerkstelligen könnte?

Viele Grüße
rico
ricoh123 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 10:17   #2
MisterBurns
MOF Profi
MOF Profi
Standard

Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim bereich As Range
     Set bereich = Range("Q2")
          If Target.Address = bereich.Address Then
          Worksheets("Tabelle1").Unprotect

     Else

          Worksheets("Tabelle1").Protect
     End If

End Sub

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 12:31   #3
ricoh123
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

vielen Dank für die schnelle Antwort!

Der Code funktioniert super!
Klick in Zelle Q2 -> Blattschutz wird aufgehoben
Klick in andere Zelle als Q2 -> Blattschutz wird eingeschalten

Allerdings hat sich bei mir jetzt ein anderes Problem dafür aufgetan:
Wenn ich bspw. von einer Zelle in eine andere klicke, dann schaltet das Makro den Blattschutz jedes mal wieder ein.
Auch wenn ich den Blattschutz "manuell" aufhebe und wieder in eine andere Zelle klicke -> ZACK! Blattschutz wieder eingeschaltet!
Das ist etwas umständlich.
Zusätzlich kann ich nicht mehr Copy+Paste machen, denn wenn ich eine Zelle kopiere und dann die Zielzelle auswähle -> ZACK! Blattschutz eingeschaltet - Zwischenablage gelöscht - Einfügen nicht möglich.

Gibt es daher evtl. die Möglichkeit den Code so zu ändern, das der Blattschutz nur dann eingeschaltet wird, wenn ich aus der Zelle Q2 in eine andere Zelle klicke?


Viele Grüße
ricoh
ricoh123 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.02.2018, 12:55   #4
MisterBurns
MOF Profi
MOF Profi
Standard

Puh, ob es ein Ereignis gibt, welches erkennt dass die Zelle Q2 "verlassen" wird, ohne dass dort tatsächlich was passiert ist... da bin ich überfragt. Das muss einer der VBA cracks hier beantworten.

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 08:35   #5
ricoh123
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

ich habe gegoogelt und folgenden Code gefunden, der anscheinend registriert wenn eine Zelle verlassen wird:

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$Q$2" Then MrBurnsMakro   'ruft das makro von Mr.Burns auf
End If
End Sub
Ich habe es schon versucht in dein Makro einzubauen, allerdings ohne Erfolg.
Hat hierzu evtl. jemand eine Idee?

Viele Grüße
Enrico
ricoh123 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 09:03   #6
MisterBurns
MOF Profi
MOF Profi
Standard

Wenn du die beiden Codes vergleichst stellst du fest, dass

Code:

If Target.Address <> "$Q$2" Then
und

Code:

Set bereich = Range("Q2")
If Target.Address = bereich.Address Then
das Gleiche aussagt. D.h. dein Codevorschlag ist in meinem Code schon enthalten und bringt dich der Lösung leider nicht näher.

EDIT:
Ich würde versuchen, einen anderen Weg zu gehen. Was ist überhaupt die Idee dahinter? Erläutere das mal, dann kann man sich Gedanken über eine Alternative machen.

__________________

Schöne Grüße
Berni

Geändert von MisterBurns (13.02.2018 um 09:06 Uhr).
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 09:34   #7
Ekimflow
MOF User
MOF User
Standard

Wenn du dein Vorhaben mal in Pseudo-Code übersetzt, dann wirst du merken, dass dein Vorhaben nicht funktioniert.

Zitat:

Klick in Zelle Q2 -> Blattschutz wird aufgehoben
Klick in andere Zelle als Q2 -> Blattschutz wird eingeschalten

Gewünscht und bekommen

Zitat:

Allerdings hat sich bei mir jetzt ein anderes Problem dafür aufgetan:
Wenn ich bspw. von einer Zelle in eine andere klicke, dann schaltet das Makro den Blattschutz jedes mal wieder ein.
Auch wenn ich den Blattschutz "manuell" aufhebe und wieder in eine andere Zelle klicke -> ZACK! Blattschutz wieder eingeschaltet!
Das ist etwas umständlich.

Wie soll Excel / VBA erkennen, wann der Blattschutz nun eingestellt werden soll oder nicht?


Zitat:

Gibt es daher evtl. die Möglichkeit den Code so zu ändern, das der Blattschutz nur dann eingeschaltet wird, wenn ich aus der Zelle Q2 in eine andere Zelle klicke?

Sorry, das widerspricht sich zu:
Klick in Zelle Q2 -> Blattschutz wird aufgehoben

Einzige Möglichkeit, die mir als Lösung dazu einfallen würde, Q2 erhält einen Wert/Passwort und dieser wird abgefragt.
Solange "Open" (oder was dir sonst so gefällt) in Q2 steht kein Blattschutz, ansonsten Blattschutz.

__________________

Gruss
Mike
Ekimflow ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.