Herbers Excel-Forum - das Archiv

Per Formel oder VBA Bedingung schaffen.


Betrifft: Per Formel oder VBA Bedingung schaffen.
von: Micha

Geschrieben am: 16.09.2019 17:33:20
Hallo,
habe eine kleine Beispieldatei beigefügt.Dort ist hoffentlich alles klar erklärt.
Alle Werte werden per Doppelklick eingetragen.
Grundsätzlich möchte ich, wenn in Spalte "B" einen Wert erhalten hat, kann in der danebenliegende Zelle in Spalte "C" kein Wert mehr eingegeben werden.
Beispiel: in Zelle B5 steht ein Wert, dann kann in Zelle C5 kein Wert eingetragen werden.
Steht in Zelle C5 ein Wert, kann in Zelle B5 nichts eingetragen werden.
Das gilt für die gesamte Spalte "B" und "C".
(Also: entweder oder!; jedoch nicht Beides)
Kann ich das per Formel lösen oder muss ein VBA Code her?
Ich bitte um Unterstützung und bedanke mich im Voraus
Gruß
Micha
https://www.herber.de/bbs/user/132057.xlsm

Betrifft: AW: Per Formel oder VBA Bedingung schaffen.
von: 1713356.html

Geschrieben am: 16.09.2019 18:05:04
Hi Micha
Es geht darum in deinem Code Range("B5") und Range("C5") durch eine variable Zeile zu ersetzen.
Alternative zu Range ist Cells:
Cells(Zeilennummer, Spaltennummer)
Zum Beispiel Range("B5") ist das Gleiche wie:
Cells(5, 2)
Dito aber mit variabler Zeilennummer:
Cells(Target.Row, 2)
Müsste die Auswahl nicht Y-Chromosom WAHR/FALSCH lauten? :)
cu
Chris
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Intersect(Target, Range("B5:B391")) Is Nothing Then
Target = IIf(Target = "Y", "", "Y")
Cancel = True
End If
'Hier wird die Eingabe "Y" verhindert
If Range("C5") = "X" Then
Range("B5").ClearContents
End If
' Per Doppelklick wird in Spalte "B" ein "X" (weiblich) geschrieben
If Not Intersect(Target, Range("C5:C391")) Is Nothing Then
Target = IIf(Target = "X", "", "X")
Cancel = True
End If
'Hier wird die Eingabe "X" verhindert
If Range("B5") = "Y" Then
Range("C5").ClearContents
End If
End Sub

Betrifft: AW: Per Formel oder VBA Bedingung schaffen.
von: 1713369.html

Geschrieben am: 16.09.2019 19:26:47
Hallo Chris,
leider habe ich nicht viel Ahnung von VBA.
Könntest Du mir bitte den Code zusenden? Habe versucht
Deinen Vorschlag zu realisieren, jedoch ohne Erfolg.
Bitte nicht an B5 oder C5 orientieren.
Entweder ist in Spalte B irgendwo ein "Y" oder in Spalte C ein "X".
Beides nebeneinander soll nicht funktionieren.
Ps. Es handelt sich um eine Mitgliederliste in der ich über X bzw. Y
anzeigen möchte, ob das Mitglied weiblich (X) oder männlich (Y) ist.
Gruß
Micha

Betrifft: AW: Per Formel oder VBA Bedingung schaffen.
von: 1713370.html

Geschrieben am: 16.09.2019 19:33:21
Hi Micha
Keine Angst, der Code explodiert nicht, wenn du was änderst. ;)
Probiere mal...
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Intersect(Target, Range("B5:B391")) Is Nothing Then
Target = IIf(Target = "Y", "", "Y")
Cancel = True
End If
'Hier wird die Eingabe "Y" verhindert
If Cells(Target.Row, 3) = "X" Then
Cells(Target.Row, 2).ClearContents
End If
' Per Doppelklick wird in Spalte "B" ein "X" (weiblich) geschrieben
If Not Intersect(Target, Range("C5:C391")) Is Nothing Then
Target = IIf(Target = "X", "", "X")
Cancel = True
End If
'Hier wird die Eingabe "X" verhindert
If Cells(Target.Row, 2) = "Y" Then
Cells(Target.Row, 3).ClearContents
End If
End Sub

cu
Chris

Betrifft: AW: Per Formel oder VBA Bedingung schaffen.
von: 1713379.html
Geschrieben am: 16.09.2019 23:40:00
Hi Chris,
vielen Dank für die Hilfe.
Es funktioniert so wie ich es mir vorgestellt habe.
Prima!
Gruß
Micha

Excel-Beispiele zum Thema "Per Formel oder VBA Bedingung schaffen."
Anzeigen von Werten und Formeln Zeile einfügen und Formeln und Werte übernehmen
Formeln mit Zelladressen speichern Zeilenumbruch in Formel erzwingen
Aktueller Arbeitsblattname in Formel Variable in Formel einbauen
Ein Zeichen in einer Formel suchen Variable in Excel-Formel einbauen.
Summenformel unter Zahlenreihe eintragen Arbeitszeittabelle und SVERWEIS-Formel
Bewerten Sie hier bitte das Excel-Portal