Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formatierung, nur eine Auswahl

Formatierung, nur eine Auswahl
13.04.2018 08:36:21
Klaus
https://www.herber.de/bbs/user/121030.xlsx
Hallo,
wie ihr in meiner Beispiel-Datei seht, möchte ich zwischen 3 Werten auswählen, nun möchte ich diese so formatieren, dass wenn ich in einer Zelle ein X setze es in der anderen rausgeht also das maximal immer eine Auswahl getroffen wird.
Wie mache ich das am cleversten ?
Danke schon einmal.. :)

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung, nur eine Auswahl
13.04.2018 09:09:16
EtoPHG
Hallo Klaus,
Diesen Code in das Tabellenblatt mit den "Auswahlzellen":
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'   Wird EIN Zellinhalt in den Zelladressen verändert,
'   werden alle Anderen auf leer gesetzt und
'   die Veränderte Zelle erhält die Markierung
Const cellAdresses As String = "D2,G2,J2"   'ggf. anpassen
Const Markierung As String = "X"
If Intersect(Target, Range(cellAdresses)) Is Nothing Then Exit Sub
If Target.Count = 1 Then
Application.EnableEvents = False
Range(cellAdresses) = ""
Target = Markierung
Application.EnableEvents = True
End If
End Sub
Gruess Hansueli
Anzeige
AW: Formatierung, nur eine Auswahl
13.04.2018 09:48:10
Klaus
Klappt super, vielen Dank..
Wie ergänze ich jetzt noch den Code mit weiteren Werten also zum Beispiel für "D4,G4,J4" ?
Danke :)
Addiere sie zum cellAddresses String!
13.04.2018 09:56:21
EtoPHG
Hallo Klaus,
Kommt darauf an, wieviele es werden sollen.
Wenn es über 30 werden, müsste man den Code vermutlich so umbauen, dass man Zeilen und Spalten Koordinaten werden. Solche Anforderungen sollten grundsätzlich in der Anfrage schon beschrieben werden. Zumindest ich suche nach der pragmatischsten Lösung und generalisiere erst, wenn es heisst 'beliebig' viele Vertikal und/oder Horizontal.
Gruess Hansueli
AW: Addiere sie zum cellAddresses String!
13.04.2018 10:01:05
Klaus
Hallo Hansueli,
Es sind insgesamt 5 Kriterien á 3 Auswahlmöglichkeiten mehr werden es nicht.
Gruß
Anzeige
AW: Addiere sie zum cellAddresses String!
13.04.2018 10:21:25
Klaus
Wenn ich die Werte dazu Addiere bringt er mir den Fehler:Die Methode 'Range'für das Objekt'_Worksheet' ist fehlgeschlagen
Woran liegt das ?
Woran liegt das? An dem was ich nicht sehen kann!
13.04.2018 10:30:42
EtoPHG
Hallo Klaus,
Spielen wir jetzt "Ich sehe was, was Du nicht siehst?"
Bitte zeig die korrigiert(en) Codezeilen, oder deinen ganzen neuesten Code.
Gruess Hansueli
AW: Woran liegt das? An dem was ich nicht sehen kann!
13.04.2018 10:36:21
Klaus
Private Sub Worksheet_Change(ByVal Target As Range)
'   Wird EIN Zellinhalt in den Zelladressen verändert,
'   werden alle Anderen auf leer gesetzt und
'   die Veränderte Zelle erhält die Markierung
Const cellAdresses As String = "C7,F7,I7" + "C9,F9,I9"
Const Markierung As String = "x"
If Intersect(Target, Range(cellAdresses)) Is Nothing Then Exit Sub
If Target.Count = 1 Then
Application.EnableEvents = False
Range(cellAdresses) = ""
Target = Markierung
Application.EnableEvents = True
End If
End Sub

Das ist der aktuelle Code den ich habe.
Anzeige
AW: Woran liegt das? An dem was ich nicht sehen kann!
13.04.2018 11:01:25
EtoPHG
Hallo Klaus,
Addieren von Strings wäre mit & nicht mit +. Würde aber bei einer CONST Definition nicht funktionieren. Besser wäre meine Anweisung ergänze statt addiere gewesen.
"C7,F7,I7,C9,F9,I9"

Aber sei es drum
Hier ein Code (basierend auf der Beispielmappe) ohne die Adressen aber mit Zeilen/Spalten Koordinaten.
Falls es dann doch mehr wie 5 Kriterien gäbe müsste die Zahl 14 durch die Zeilennummer mit dem letzten Kriterium ersetzt werden.
Fall es dann doch mehr als 3 Optionen gäbe müsste die Zahl 10 durch die Spaltennummer mit der letzten Option ersetzt werden.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'        Wird EIN Zellinhalt in den Zelladressen einer Zeile verändert,
'        werden alle Anderen in den Spalten auf leer gesetzt und
'        die Veränderte Zelle erhält die Markierung
Dim lCol As Long
Const Markierung As String = "X"
' Jede 3 Zeile ab Zeile 2 bis 14 und jede 3 Spalte ab Spalte 4 bis 10
If Target.Row Mod 3 = 2 And _
Target.Row = 4 And Target.Column 

Offensichtlich hast du am Erscheinungsbild deiner Datei wieder rumgeschraubt, den vorher waren die Zellen in Spalte 4, 7 und 10. Darum musst du halt die Zahlem im Code richtig ausrechnen und anpassen.
Gruess Hansueli
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige