Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wie bekomme ich den Code als Schleife

Wie bekomme ich den Code als Schleife
17.06.2022 18:22:31
Juergen
Ich habe hier ein paar Zeilen und Zellen zum überwachen.
Wenn in ein der Zellen L bis M was eingetragen wird, sollen die anderen beiden gesperrt, gefärbt werden sind alle 3 leer alle 3 Weis
Mein Code kann das Mittlerweile... nur ist er zu lang für alle Zeilen.
Ich möchte dies nun in einer Schleife oder Ihr habt eine bessere Idee machen, nur wie bekomme ich das hin?
Gruss
Jürgen
Hier meine Mappe

https://www.herber.de/bbs/user/153605.xlsm

Hier mein Code für eine Zeile:

'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
If Not Application.Intersect(Target, Range("K30")) Is Nothing Then
If Range("K30").Value = "x" Then
Range("L30:M30").Value = ""
Range("L30:M30").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
Range("K30:M30").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 1
.PatternTintAndShade = 1
End With
End If
End If
If Not Application.Intersect(Target, Range("M30")) Is Nothing Then
If Range("M30").Value = "x" Then
Range("K30:L30").Value = ""
Range("K30:L30").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
Range("K30:M30").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 1
.PatternTintAndShade = 1
End With
End If
End If
If Not Application.Intersect(Target, Range("L30")) Is Nothing Then
If Range("L30").Value = "x" Then
Range("K30,M30").Value = ""
Range("K30,M30").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
Range("K30:M30").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 1
.PatternTintAndShade = 1
End With
End If
End If
'
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie bekomme ich den Code als Schleife
17.06.2022 19:18:58
onur
"Wenn in ein der Zellen L bis M was eingetragen wird, sollen die anderen beiden gesperrt" ? - Welche anderen BEIDEN denn?
AW: Wie bekomme ich den Code als Schleife
18.06.2022 17:04:31
Juergen
Hallo,
da habe ich mich wohl falsch ausgedrückt.
Ich meine wenn eine von den 3en einen Wert (X) bekommt dann sollen die beiden andern eingefärbt bzw. gesperrt werden.
gut wäre aber wenn einen änderung möglich wäre, ähnlich der Beispiel Mappe.
Gruss und danke für eure Tipps
Jürgen
Anzeige
AW: Wie bekomme ich den Code als Schleife
18.06.2022 21:22:20
Peter
Hallo Jürgen,
ich weiß nicht, wie Du zu Deinem Lösungsansatz gekommen bist, jedenfalls geht der in die völlig falsche Richtung. Eine Schleife kommt hier wohl auch nicht in Betracht, weil die Eintragungen ja offenbar alle einzeln erfolgen - abhängig vom Wunsch (oder der Möglichkeit) des Betroffenen. Ich habe mal eine Lösung entwickelt, die Deinen Vorstellungen entsprechen sollte. Das "x" setzt Du ganz einfach in die jeweilige Spalte mit einem Rechtsklick. Daraufhin werden die beiden anderen Spalten gesperrt und grau eingefärbt. Damit der Rechtsklick nicht erneut in derselben Zeile - egal in welcher der drei Spalten - wirksam wird, bedarf es der StoppKZ in der Spalte "N". Um die Sperre wieder aufzuheben, ist die Eingabe eines Passwortes in dem gelb-unterlegten Feld erforderlich. Das Passwort ist z.Z. auf "Bullerjahn" (Zelle "i1") festgelegt. Wenn das richtige Passwort eingegeben wurde, kann man mit einem Doppelklick in der Spalte "N" die Freigabe herstellen.
Grundsätzlich sollte man im oberen Teil einer Tabelle immer einige Zeilen freilassen. Dann kann man dort gewisse Regie-Einträge (wie eben den Passwort-Abgleich) vornehmen. Dieser Teil wird in der Praxis ausgeblendet. Damit der Benutzer nicht einfach den Blattschutz aufhebt, kann dieser mit einem Passwort versehen werden: einfach die Befehle ergänzen - unprotect oder protect password:="Kennwort".
Hier meine Datei: https://www.herber.de/bbs/user/153633.xlsm
Bitte mal ausprobieren, Rückmeldung wäre schön.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Wie bekomme ich den Code als Schleife
18.06.2022 21:47:16
Oberschlumpf
Hi Juergen,
hier, versuch mal
https://www.herber.de/bbs/user/153634.xlsm
Ja, stimmt, Peter hat recht, For/Next benötigst du hier nicht - aber das mit For/Next war ja von dir eh nur "laut gedacht", oder?
Peter hat sich mit seiner Idee auch sehr schwer getan.
a) viel zu umständlich
b) viel zu viel Code
c) aber vielleicht hat Peter etwas berücksichtigt, was ich gar nicht bedacht hab - und somit meine Idee null nützlich ist!!!! :-)
Peter, wegen a) + b) nich böse sein, das war mir nur aufgefallen.
Juergen, mein Code reagiert genau wie bei dir mit Hilfe von If Not Intersect... nur dann, wenn ein Wert in den Spalten K, L oder M geändert wird.
Vergleich mal meinen Code mit deinem :-)
Alles gut! Als ich noch VBA-Anfänger war, hab ich es genau so wie du gemacht - aber glaub mir, mit den Jahren wirst du genau so "schreibfaul" wie ich, und suchst allein deshalb schon nach Code, der nur wenige Zeilen benötigt ;-)
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Wie bekomme ich den Code als Schleife
19.06.2022 07:01:45
Peter
Hallo Thorsten (Oberschlumpf),
ich bin zwar etwas umständlich - da kein professioneller Programmierer - aber ich baue meine Programme auf den Anwender bezogen, übersichtlich und nachvollziehbar auf. Für den Anwender ist wichtig, dass es funktioniert und in vernüftigem Zeitrahmen. Bei der gegebenen Problemstellung war es etwas schwierig, die nicht zutreffenden Spalten einzufärben und alle (bei mir 4) Spalten zu schützen. Dann kamen noch die weiteren Schikanen oben drauf, eine Wiederholung des rechten Mausklicks zu verhindern (dies bedeutete, dass der Rechtsklick mit Blattschutz erfolgen muss, denn ohne wäre er wiederholbar!) und die geforderte Möglichkeit, eine Änderung zuzulassen (bei mir durch rückgängig machen mit Doppelklick auf "StopKZ" und dann erneuten Rechtsklick). Das geht natürlich nur, wenn man sich für ausgiebige Tests die Zeit nimmt. Als Rentner mit 74 Lenzen habe ich davon genug.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Wie bekomme ich den Code als Schleife
19.06.2022 07:23:41
Jürgen
Hallo Peter, Hallo Thorsten,
vielen Dank euch beiden für die Lösungsansätze, funktionieren beide wunderbar.
@Peter
für die Einstellungen wie Passwort, etc. benutze ich in der Regel ein weiteres Tabellenblatt, das ich normalerweise ausblende.
Da habe ich dann "Unendlich" Platz, falls mir wieder was Neues einfällt.
@Thorsten
ja die For /Next war laut gedacht, müsste in der Theorie aber auch möglich sein, würde halt immer alles durchlaufen bei jedem Eintrag, was das ganze nicht sonderlich sexy macht.
Nochmal vielen Dank für eure Ideen, haben mir weitergeholfen.
Gruss Jürgen
Anzeige
AW: Wie bekomme ich den Code als Schleife
19.06.2022 07:56:27
Oberschlumpf
Hi Jürgen,
ja, sicher ist auch alles mit For/Next möglich - aber null / nich / kein bisschen notwendig, da es doch völlig ausreicht, nur die Zeile zu überwachen/per Code anzupassen, in der man gerad eine Änderung vorgenommen hat :-)
Ciao
Thorsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige