26.08.2023, 13:10
anbei die Fehlerbehandlung.
Gruß Uwe
Gruß Uwe
Markierte Zellen & Ergebnisse anzeigen
|
26.08.2023, 13:33
Hallo Uwe,
unglaublich, ich weiß gar nicht wie ich dir danken soll. Das war für mich eine scheinbar unlösbare Aufgabe und du hast sie mit einer Selbstverständlichkeit gelöst, die mich staunen lässt. Vielen Dank
27.08.2023, 10:19
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2023, 10:59 von PetrolMaxxe.)
Hallo,
bei mir funktioniert bedingte Formatierung von mehreren Werten so: Code: =ODER($E23="15+50"; $E23="55+100") Du brauchst an dieser Stelle die Prozedur nicht rausnehmen. Du trägst die Formel für die bedingte Formatierung in Zelle E30 ein (Bezug auf $E30 beachten) und erweiterst den bed. Formatierungsbereich bis E23. Das hatte ich schon geahnt, das sowas noch erforderlich sein könnte. Was die Mitnahme der Formatierung aus Strg./T Tabelle anlangt, muss das dann ohne Array ausgeführt werden (Zelle zu Zelle). das wäre dann so zu ändern: Code: '***************************************************************************** Gruß Uwe
27.08.2023, 14:51
So einfach wäre es gewesen. ";" statt ",". Danke, damit sind beide Fragen beantwortet.
Besteht die Möglichkeit einen Schreibschutz für die Zellen zu erstellen ohne die VBA Funktionen zu beeinträchtigen? Mir geht's nur darum, dass man die Werte nicht aus Versehen umschreibt während man durch die Tabelle klickt. Wenn ich das Blatt normal schütze, kommen Fehlermeldungen sobald ich in die Tabelle klicke.
27.08.2023, 19:02
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2023, 20:02 von PetrolMaxxe.)
ja, das geht problemlos.
An den erforderlichen Stellen im Modul der Tabelle1 Unprotect (entsperren) und Protect (sperren) Außerhalb dieses Moduls Tabelle1.Unprotect und Tabelle1.Protect Was in diesem Zusammenhang wichtig/sinnvoll ist, dass nach dem Sperren nur die Zellen/Zellbereiche freigegeben werden, welche noch ansteuerbar sein müssen. Im rng_3 muss man dies mit einer Variable laden --> vergleichen der Variable mit Target.Cells --> unf ggf. die Variable in Target.Cells zurückschreiben. Das verhindert auch da unbeasichtigte Eingriffe. Die Variable mus im Sub Worksheet_SelectionChange geladen werden. Ich hoffe, du kommst mit diesen Infos zurecht. Gruß Uwe
28.08.2023, 23:13
Hallo Uwe,
ich setzte also beispielsweise folgenden Code unter Worksheet_SelectionChange? Code: Me.Unprotect
28.08.2023, 23:22
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2023, 23:24 von PetrolMaxxe.)
Hallo Arwed,
anbei mal den Einbau deiner restlichen Dinge. Ich habe auch gleich im rng_3 das versehentliche Ändern beim drin rumklicken blockiert. Wenn dann tatsächlich mal was geändert werden soll, musst du dafür das zurückschreiben temporär auskommentieren. Gruß Uwe
29.08.2023, 23:21
Danke für die Anpassungen. Ich würde gern nur die Sperre für die obere Tabelle einfügen also rng_1 & rng_2 so wie es in deiner Beispieltabelle funktioniert. Es muss mir möglich sein in die kleine Tabelle unten rechts rein zukommen um die Ergebnisse mit Strg+C kopieren zu können. Der Cursor muss auch nicht von überall zurück auf B23 springen, mir war nur wichtig das er nach der Eingabe in B23 bleibt, bzw. wieder dahin zurück springt, was gut funktionierte.
Die Befehle "protect" und "unprotect" an den selben stellen wie bei dir im Code funktionieren bei mir leider nicht ohne Fehler. Gibt es eine Möglichkeit sie in diesem Code zu implementieren ohne die Funktionen zu verändern/beeinträchtigen? Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range)
30.08.2023, 09:11
Hallo Arwed,
das liegt nicht am Code, du musst nur den Schreibschutz mal rausnehmen --> dann den Zellbereich der Tabelle unten rechts, welcher mit Strg./C kopiert werden soll markieren --> Rechtklick Zellen formatieren --> Schutz beide Häkcken raus --> dann Blatt schützen --> Häkchen nur in "nicht gesperrte Zellen auswählen" setzen. Lasse in der 1. Zeile der Module das Option Explicit stehen, damit werden Fehler besser identifiziert. Da Dimensionieren der Variablen immer am Anfang der Prozedur. Werden Variablen benötigt, welche im Modul wirken sollen, gehören diese unter Option Explicit Sollen Variablen in sämtlichen Modulen erreichbar sein gehören diese unter Option Explicit in ein allgemeines Modul statt Dim dann Public. Was die Fehler anlangt, kann ich ohne die Datei vor mir zu haben so nicht beurteilen. Die Datei, wie ich sie dir hochgeladen habe arbeitet ohne Fehlerausgaben. Da bleibt nur der Weg den kompletten! Kladderadatsch (alle Prozeduren und Daten in reduziert auf das sinnvoll Erforderliche) anonymisiert noch mal hochzuladen. Ich denke der Fehler entsteht an Stellen, die ich nicht kenne. Gruß Uwe |
|