Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
460to464
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
460to464
460to464
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Change-Ereignis, Dropdown oder Return

Change-Ereignis, Dropdown oder Return
30.07.2004 15:47:41
Kerstin
Ich habe folgendes Problem:
in Spalte 3 können über eine Gültigkeitsliste Werte eingegeben werden, durch Dropdown oder manuelle Eingabe und Return.
Wenn hier "0" eingegeben wird, soll in der gleichen Zeile in Spalte 4 auch "0" eingetragen werden.
Mein Lösungsansatz setzte voraus, dass die Zeile der markierten Zelle als Variable (r) ermittelt wird.
Wenn der Wert manuell eingegeben wurde, ist nach dem Return die aktuelle Zeile allerdings eine Zeile tiefer als meine Ausgangszelle. Beim Eingeben über Dropdown ändert sich die Zeile nicht.
Ich habe eine Abfangung versucht, bin mit der aber nicht glücklich, weil sie nicht funktioniert, wenn in der nächsten Zeile schon Werte stehen (was zwar meistens nicht der Fall ist, aber im Fall der Fälle zu Problemen führen wird).
Hat jemand eine bessere Idee? Hier mein Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
If Target.Column <> 3 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If IsEmpty(ActiveCell) Then
'Anwender hat manuell eingegeben und RETURN gedrückt, die Markierung ist eine
'Zeile tiefer gerückt
r = ActiveCell.Row - 1
Else
'Anwender hat aus Dropdownliste gewählt ohne RETURN, die Markierung
'ist an ursprünglicher Stelle
r = ActiveCell.Row
End If
If Cells(r, 3).Value = 0 Then
Cells(r, 4).Value = 0
End If
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change-Ereignis, Dropdown oder Return
Frank
Hallo Kerstin,
evtl. wäre es ein Lösungsansatz, wenn Du die OnKey-Methode verwendest. Eine global gültige boolsche Variable definieren die True wird, wenn in Spalte 3 die Return-Taste gedrückt wurde. Diese Variable dann in Deinem Code abfragen und vor dem Verlassen der SUB wieder auf False setzen. Was hälst Du von dem Vorschlag?
Gruß Frank
AW: Change-Ereignis, Dropdown oder Return
30.07.2004 16:54:44
Kerstin
Danke für den Ansatz. Ich weiß aber nicht, wie eine Methode True oder False sein kann. Vielleicht habe ich auch eine Denkblockade. Kannst Du mir eventuell mal auf die Sprünge helfen?
AW: Change-Ereignis, Dropdown oder Return
Birkel
Hallo,
geh doch einfach über Excel und nicht über VBA.
Mit einer wenn-Funktion geht das ganz einfach:
wenn(C3=0;D3=0;"")
also, wenn in Spalte C, Zeile 3 eine 0 eingegeben wird, erscheint auch eine 0 in Spalte D, Zeile 3, wenn Spalte C, Zeile 3 ungleich 0, dann steht in Spalte D, Zeile 3 nichts.
MfG
Birkel
Anzeige
AW: Change-Ereignis, Dropdown oder Return
30.07.2004 17:29:05
Kerstin
Hallo Birkel,
leider sollen in Spalte D auch noch jede Menge andere Eingaben möglich sein, wenn C nicht 0 ist, und nur bei 0 gibt es eine Abhängigkeit. Deshalb hilft die Wenn-Abfrage nicht weiter. Trotzdem danke für die Idee.
AW: Change-Ereignis, Dropdown oder Return
PeterW
Hallo Kerstin,
warum benutzt du nicht statt ActiveCell die Variable Target?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
If Target <> "" And Target = 0 Then
Cells(Target.Row, 4) = 0
Else
Cells(Target.Row, 4) = ""
End If
End If
End Sub

Gruß
Peter
AW: Change-Ereignis, Dropdown oder Return
30.07.2004 19:45:47
Kerstin
Wow, die ELSE-Verzweigung ist zwar für meine Zwecke ungeeignet, aber der Rest bringt es total!
Gute Idee! Danke!!!
Anzeige
AW: Change-Ereignis, Dropdown oder Return
PeterW
Hallo Kerstin,
der Else-Zweig dient lediglich dazu, beim Löschen eines Eintrages in Spalte C die 0 aus Spalte D zu entfernen. Wenn du das nicht brauchst... :-)
Gruß
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige