Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
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

Wenn A1 = "x" dann B1 ="" und umgekehrt

Wenn A1 = "x" dann B1 ="" und umgekehrt
04.11.2015 07:42:40
Andreas
Guten Morgen,
ich bin neu hier, die Suchfunktion bringt mich nicht wirklich weiter, daher hoffe ich auf keine Standpauke :-)
Es klingt wahrscheinlich sehr banal.
Folgendes Problem:
Das ganze ist eine Art Fragenkatalog, in dem man nur mit Ja oder Nein antworten kann. Und zwar in der Form, dass der Anwender entweder in Spalte JA ein "x" einträgt oder in Spalte NEIN ein "x" einträgt.
Ich habe insegesamt 44 Zeilen in 2 Spalten.
Wie kann ich jetzt verhindern das in beiden Spalten ein "x" eingetragen wird.
Meine Idee war:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F7").Value = "x" Then
Range("G7").Value = ""
End If
Und das für jede Zelle. Erstens geh ich davon aus, dass das einfacherer zu realisieren ist und zweitens funktioniert das auch so gar nicht weil ich in eine Endlosschleife komme. (Was logisch ist)
Für einen Lösungshinweis wäre ich dankbar
MfG

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
die Idee ist gar nicht so doof....
04.11.2015 08:00:37
MCO
Moin!
Nimm mal diesen code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "x" Then
Application.EnableEvents = False
Target.Offset(0, 1 - IIf(Target.Column = 7, 2, 0)).ClearContents
Application.EnableEvents = True
End If
End Sub
Der wohl wichtigste Unterschied ist die Abschaltung des auslösenden Ereignisses, bevor du die Nebenstehende Zelle änderst. Daher die Schleife.
Außerdem wird mit "target" schon auf die eben geänderte Zelle Bezug genommen, daher fehlen jetzt feste Zellbezüge. Fast jedenfalls.
Um die Zelle rechts bzw. links von "target" zu löschen muß geprüft werden ob gerade in Spalte (links) oder Spalte (rechts) gearbeitet wird. Das passiert mit target.column = 7.
Bei 7 wird offset(0,1-2) also auf die Zelle links neben target verweisen, ansonsten mit offset(0,1-0) auf die Zelle rechts neben target.
Ich hoffe, das bring dich weiter.
Gruß, MCO

Anzeige
AW: die Idee ist gar nicht so doof....
04.11.2015 08:43:49
Andreas
Vielen Dank für die rasche Antwort.
Funktioniert grundsätzlich super, auch wenn mir der code nicht ganz einleuchtet. Woher weiß Excel in welcher Spalte ich mich gerade befinde?
Die Zahlenfolge nach offset versteh ich auch nicht richtig :-)
Nun gibt es folgendes Problem:
Nach den ersten 4 Zeilen Ja oder Nein Abfrage kommt eine (verbundene) Zelle, die eine Ergebnisprüfung der obigen 4 Zeilen enthält.
Wenn in diese gesprungen wird hält die Prozedur an, auch wenn ich das Blatt schütze und die Zelle übersprungen wird.
Habe einen Screeshot angehangen
Userbild

Anzeige
AW: Mit Doppelklick.
04.11.2015 08:58:39
hary
Moin
Hier mal mit Doppelklick(einfacher) in Zelle. X wird automatisch eingetragen.
Bei verbunden Zellen nix.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("F7:G51")) Is Nothing Then
Cancel = True
If Target.MergeCells Then Exit Sub'--wenn Verbund dann beenden
Cells(Target.Row, 6).Resize(1, 2).ClearContents'--Inhalte loeschen
Target = "X" '--X setzen
End If
End Sub

gruss hary

AW: die Idee ist gar nicht so doof....
04.11.2015 09:32:32
Andreas
@hary
auch erstmal Danke. Nach einfügen deines Codes tut sich leider nix.
Dieser hier funktioniert bis zur der Verbundenen Zelle. Habe auch grade gemerkt das nicht nur die Ergebniszelle verbunden ist, sondern auch diverse Zellen in denen Ja oder Nein angeXt werden sollen.
Kann ich das mit dem Code hier relaisieren, dass er die verbundenen Zellen auch behandelt wie eine Normale?
  Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "x" Then
Application.EnableEvents = False
Target.Offset(0, 1 - IIf(Target.Column = 7, 2, 0)).ClearContents
Application.EnableEvents = True
End If
End Sub

Anzeige
AW: Bsp.-Mappe
04.11.2015 10:39:04
hary
Moin
Lad eine Bsp.-Mappe hoch.
gruss hary

AW: Bsp.-Mappe
04.11.2015 11:40:22
hary
Moin
Code in den Code vom Blatt "Checkliste". Startet bei Doppelklick.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("F7:G51")) Is Nothing Then
Cancel = True
If Target.Columns.Count  1 Then Exit Sub '--wenn Verbundspaltenanzahl  1 dann beenden
Cells(Target.Row, 6).Resize(Target.Rows.Count, 2).ClearContents
Target = "X" '--X setzen
End If
End Sub

solltest du im Blatt "AS nicht Eigentümer der Fläche" auch die Spalten F ung G nutzen koenntest du auch
den Code ins Workbook setzen.
Workbook_SheetBeforeDoubleClick
gruss hary

Anzeige
AW: Bsp.-Mappe
04.11.2015 11:55:39
Andreas
Klasse, das funktioniert! Vielen Dank dafür
Die Zelle jetzt für eine Eingabe sperren, aber das Doppelklicken erlauben geht wahrscheinlich nicht?

AW: Bsp.-Mappe
04.11.2015 12:42:09
hary
Moin
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("F7:G51")) Is Nothing Then
Cancel = True
If Target.Columns.Count  1 Then Exit Sub '--wenn Verbundspaltenanzahl  1 dann beenden
Cells(Target.Row, 6).Resize(Target.Rows.Count, 2).ClearContents
Target = "X" '--X setzen
End If
ActiveSheet.Protect Password:="passwort", UserInterfaceOnly:=True
End Sub

Nimm fuer die Datenueberpruefung die Formel Bsp.: =F25:G25=""
gruss hary

Anzeige
AW: Bsp.-Mappe
04.11.2015 12:53:51
Andreas
Haut nicht ganz hin.
Doppelklick in F7. X wird eingetragen, Blatt wird geschützt. Danach passiert durch Doppelklicken auf andere Zellen nichts mehr.
Müssen die Zellen unter /formatieren/Schutz den Haken bei gesperrt haben oder nicht?

AW: Schutz
04.11.2015 15:14:10
hary
Moin
Bei den Zellen wo der Doppelklick wirken soll, kein Haken.
gruss hary

AW: Schutz
04.11.2015 15:29:28
Andreas
Auch auf den Verdacht hin, dass ich nerve.
Die Zellen in denen der Doppelklick wirken soll haben keine Haken bei gesperrt.
Das Blatt ist vor dem ersten Doppelklick ungeschützt:
Mit Doppelklick in F7 wird das Blatt geschützt. Aber ich kann danach trotzdem noch in die Zelle schreiben

Anzeige
AW: Schutz
04.11.2015 16:37:51
hary
Moin
Nerven,nein.
Hab mal fuer die Datenueberpruefung eine neue Formel genommen. Es sind noch nicht alle geaendert.
https://www.herber.de/bbs/user/101251.xlsm
Falls das nicht reicht, ueberleg ich mir noch was. Geht aber erst Morgen.
gruss hary

AW: Schutz
05.11.2015 07:45:46
Andreas
Moin,
funktioniert so weit gut, aber jetzt kann ich zwar kein "x" per hand in die Zelle eintragen, dafür jeden anderen Buchstaben. :-)

AW: Schutz
05.11.2015 10:02:25
hary
Moin
Hab mich verhauen, Datenueberpruefung muss lauten:
statt "" dieses =""
gruss hary

Anzeige
Läuft
05.11.2015 14:48:08
Andreas
Ich dreh durch. Das Klappt! Vielen Vielen Dank dafür

Noch eine Frage
06.11.2015 09:20:02
Andreas
Hast du die Mappe noch?
ein winziges Problem habe ich noch.
ich möchte folgendes überprüfen:
Wenn in D24 steht "Weiter mit Schritt 6" dann soll F25:G25 und F27:G28 gesperrt sein und eine MsgBox mit einem Hinweis erscheinen.
(Das mit der MsgBox bekomm ich hin)

AW: Nur ein X
04.11.2015 08:01:00
hary
Moin
Eine Moeglichkeit.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Not Intersect(Target, Range("F7:G51")) Is Nothing Then
Application.EnableEvents = False '--Event ausschalten wegen Endlosschleife
Cells(Target.Row, 6).Resize(1, 2).ClearContents '--loescht beide Zellen
Target = "X" '--traegt X ein
End If
End If
Application.EnableEvents = True '--Event einschalten
End Sub

gruss hary
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge