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