78 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Mitglied (630 Punkte)
Hallo und einen schönen Tag an das Forum Team,

sitze schon wieder seit Stunden am PC und stöbere in Foren nach Antworten meiner Frage. Habe leider nichts gefunden das mir weiter hilft. Hoffe, dass jemand bei meiner Aufgabe die ich mir gestellt habe, mir eine Lösung mitteilen kann.

Nun mein Problem.

Ich möchte das bestimmte Zellen wenn Bedingung in anderer Zelle erfüllt ist,  gesperrt werden.

Beispiel: Zelle B 7 ist nach Eingabe die Zahl 3 erreicht ,sollen Zellen von A 77 bis G 77 gesperrt werden.

Dies soll fortlaufend sein B 8 Sperre in A 78 bis G 78  und dies ist von Zelle B 7 bis B 18 und Sperre A77 bis

G 88 passieren.

Dies müsste ich dann auch für Andere Zellen verwenden können. Da dies nur für eine Eingabe ist.

Im Voraus erst einmal Danke

Gruß Adde

16 Antworten

0 Punkte
Beantwortet von addeguddi Mitglied (630 Punkte)
Hallo M.O.

Hoffe, dass ich mich verständlich ausdrücke.

Also mein Ziel ist es (ich bin Spieler 1) ich werfe ein Tripple 10 somit habe ich die Zahl 3 in Zelle B7 erreicht (das ist Formel in B7=MIN($A$40; C7*3+D7*2+E7+F7+G7+H7+I7). Wenn ich jetzt wieder die Zahl 10 treffe erziele ich für mich 10 Pluspunkte und die Gegner erhalten jetzt 10 Minuspunkte, wenn die (Spieler 2 bis Spieler 8 nicht die Zelle (Ist Spieler 2 = K7; Spieler 3 = T7; Spieler 3 = Spieler 4 =AC7; Spieler 5 =AL7; Spieler 6 =AU7, Spieler 7 =BD7 und Spieler 8 =BN7 ) in den dafür vorgesehenen Zellen nicht die Zahl 3 in den jeweiligen Zellen stehen haben. Dies sind nur die Eingaben für Zeile 7 gehen aber bis Zeile 18.

Mein Beispiel: Spieler 2 in Zelle K7 auch die Zahl 3 erreicht hat, nun kann auch dieser keine Minuspunkte mehr erhalten aber Pluspunkte wie Spieler 1 sammeln und die anderen Mitspieler erhalten immer noch Minuspunkte da sie ja keine 3 in ihren Zellen stehen haben.

Deswegen wollt ich das die Zellen die die Pluspunkte addieren hier die Zelle R7 und der Übertrag als Minuspunkte in die Zellen von dem jeweiligem Spieler von A77 bis G77 für Spieler 1 gesperrt werden Für Spieler 2 I77 bis O77 und so weiter

Daher wollte ich versuchen die Zellen die die Minuspunkte sammeln zu sperren, wenn die besagten Zellen die 3 erreicht haben.

Wenn B7 bis B17 jeweils eine 3 steht können keine Minuspunkte in den Zellen A77 bis G87 aber da in Zelle B18 die 3 nicht erreicht wurde könne hier noch Minuspunkte vom Gegner verteilt werden.

Es betrifft nur diese Zellen:

Diese Zellen sollten gesperrt werden wenn Kriterium Zahl 3 erfüllt.

A77 – G88 Spieler 1; I77 – O88 Spieler 2;  R77 – X88 Spieler 3; AA77 – AG88 Spieler 4

AJ77 – AP88 Spieler 5; AS77 – AY88 Spieler 6;  BC77 – BI88 Spieler 7; BM77 – BK88 Spieler 8

Wünsche mir, das du das verstehst, was ich da geschrieben habe.

Gruß Adde
0 Punkte
Beantwortet von addeguddi Mitglied (630 Punkte)
Hallo M. O.

Nachtrag: Mit dem Sperren will ich erreichen das keine Minuspunkte mehr vergeben werden können wenn in den besagten Zellen die 3 steht
0 Punkte
Beantwortet von m-o Profi (15.4k Punkte)
Hallo Adde,

danke für die Erklärung. Ich muss mal überlegen, wie man das umsetzen kann.

Gruß

M.O.
0 Punkte
Beantwortet von addeguddi Mitglied (630 Punkte)

Hallo M.O.

Info: Ich habe jetzt auch verstanden, dass wenn eine Zelle die gesperrt ist die Berechnung trotzdem erfolgt.

Nun habe ich die Datei so verändert das ich den Vorschlag von Karin umgesetzt habe und die doppelten Zellen/ Berechnungen gelöscht sind. Es funktioniert soweit ganz gut. Nur wenn ich das nächste Tabellenblatt anklicke, Scrollt dies von oben nach unten  das gleiche ist, wenn ich die Einträge Legs löschen klicke, habe ich das Gefühl das dies zweimal passiert.

Wenn du möchtest, kannst du dir die Datei nochmals anschauen und mir schreiben was für ein Fehler ich habe und wie ich das Ändern kann.

Dieses VBA habe ich in anderer Form einmal von dir erhalten, nun wollte ich einmal nachfragen ob ich dies erweitern kann auf die Zellen die mit der Formel in Zelle als Datenprüfung B61=b7<3 anwenden kann. Dies habe ich in Ránge B61:h72 eingegeben aber es geschah nichts

Will dabei die händige Eingabe ersparen.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

 'Bereiche, in dem die 1 eingefügt werden sollen

 If Not Intersect(Target, Range("C7:I18,L7:R18,U7:AA18,AD7:AJ18,AM7:AS18,AV7:BB18,Be7:Bk18,Bo7:bu18,B61:H72")) Is Nothing Then

    Target.Value = 1

    Cancel = True              'Menü nach drücken rechte Maustaste nicht anzeigen

 End If

End Sub

Habe die Datei hoch geladen. Wenn was möglich ist, wäre es super eine Info zu erhalten.

https://filehorst.de/d/cvdaDBDt

Danke im Voraus

Gruß Adde

+1 Punkt
Beantwortet von m-o Profi (15.4k Punkte)

Hallo Adde,

dass beim Wechsel der Tabellenblätter die Ansicht des Blatt nach unten scrollt, liegt daran, dass der Cursor in Zeile 75 steht. Setze in den Cursor auf Zelle E7 und beim Wechsel scrollt das Blatt nicht nach unten.

Du hast deinen erweiterten Code in einem Klassenmodul angelegt. Du musst den Code aber im VBA-Projekt des jeweiligen Tabellenblatts ändern, dann klappt das auch mit dem Rechtsklick in dem Bereich B61 bis H72.

In deinen Löschcodes kann ich nichts auffälliges erkennen. Nur die Select-Anweisungen kannst du dir zum größten Teil sparen:

Sub Eingabelöschen()
'
' Eingabelöschen Makro
Range("B61:H72,K61:Q72,T61:Z72,AC61:AI72,AL61:AR72,AU61:BA72,BD61:BJ71,BD61:BJ72,BM61:BS72").ClearContents
Range("C6").Select
End Sub

Sub Spielerlöschen()
'
' Spielerlöschen Makro

    Range("C7:I18,L7:R18,U7:AA18,AD7:AJ18,AM7:AS18,AV7:BB18,Be7:Bk18,Bo7:bu18").ClearContents
    Range("C6") = ""
    Range("C7").Select
End Sub

Gruß

M.O.

0 Punkte
Beantwortet von addeguddi Mitglied (630 Punkte)
Hallo M. O.

vielen lieben Dank für deine Hilfe. Das mit dem Löschen ist mir auch aufgefallen habe ich heute Morgen schon,das mit Select entfernt. Das andere Mache ich mit der Zeile 75.

Nochmals Danke.

Gruß Adde
...