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

Zelle füllen

Zelle füllen
27.02.2004 21:35:35
Kai
Guten Abend,
ich möchte in Tabelle1 E4, wenn der Wert <>0 ist, dann soll in Tabelle2 C19 die Zahl 0 automatisch eingetragen werden.
Nun habe ich das Problem, dass ich in Tabelle1 schon folgenden Code stehen habe.

Private Sub Worksheet_Change(ByVal Target As Range)
'Automatisch Doppelpunkt erzeugen!
Dim Zeit$
If Intersect(Target, Range("C7:D16,C23")) Is Nothing Or Target.Count > 1 Then Exit Sub
If Trim(Target) = "" Or Not IsNumeric(Target) Then Exit Sub
ActiveSheet.Unprotect Password:="*****"
Target.NumberFormat = "hh:mm:ss"
Zeit = Trim(Str(Target))
Zeit = Format(Zeit, "00:00:00")
Application.EnableEvents = False
Target = Zeit
Application.EnableEvents = True
ActiveSheet.Protect Password:="*****"
'End Sub

Wenn ich jetzt den Code:
' Wenn in Tabelle1 C7 oder C8 <>0, dann 0 in Tabelle2 C19
If Intersect(Target, Range("C7:C8")) Is Nothing Then Exit Sub
If Target.Value <> 0 Then
Sheets("Tabelle2").Select
Range("C19").Value = 0
End If
End Sub

noch zusätzlich eintrage, so wird durch ---If Intersect(Target, Range("C7:D16,C23")) Is Nothing Or Target.Count > 1 Then Exit Sub--- es nicht möglich, den unteren Code richtig auszuführen. Nun kann ich auch nicht einfach E4 mit in die Klammerwerte (Bezugszellen für autom. Doppelpunkt) eintragen, da es mir sonst auch in E4 den Doppelpunkt erzeugen will, was aber nur eine Zelle wäre, welche mit Zahl formatiert ist.
Das zweite Problem lässt auch nicht auf sich lange warten ;-),
wenn ich den oberen Code -mit dem ‚Automatischen Doppelpunkt erzeugen“- schon mal probeweise entferne, dann erhält die Tabelle2 nicht den Eintrag in C19=0 (WENN Tabelle1 E4<>0), weil offensichtlich der Code nicht die Zelle in Tabelle2 findet!? Und ich den Fehler nicht...!
Für eine Lösung bedanke ich mich im Voraus.
Viele Grüße
Kai
PS: Der Wert in Tabelle2 C19 soll anschließend noch zu überschreiben gehen (da weiterrechnen mit anderer Zahl).

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle füllen
27.02.2004 21:58:36
PeterW
Hallo Kai,
ohne den gesamten Code durchgegangen zu sein versuch es mal so:
If Not Intersect(Target, Range("C7:D16,C23")) Is Nothing Then
(also doppelte Verneinung, also wenn Target im Bereich Range liegt dann..)
Gruß
Peter
AW: Zelle füllen
27.02.2004 23:28:37
Kai
Hallo Peter,
danke für deine Antwort!
Kann sein, dass ich das jetzt nicht richtig verstanden habe. (siehe Level)
Wenn ich die Zeile:
If Intersect(Target, Range("C7:D16,C23")) Is Nothing Or Target.Count > 1 Then Exit Sub
durch diese ersetze:
If Not Intersect(Target, Range("C7:D16,C23")) Is Nothing Then Exit Sub

So erscheinen nur noch Nullen in den Zelle (C7:D16,C23), wenn ich da eine Zahl eingebe.
Gebe ich in E4 eine Zahl ein, so wird daraus ein Zeitformat. Es wird zwar die Zahl in C19 mit 0 eingetragen (weil E4 <>0), aber dann auch noch im Zeitformat hh:mm:ss!
Leider fehlen mir die VBA-Kenntnisse, um daraus den richtigen Zusammenhang zu erkennen.
Sorry, mir ist gerade aufgefallen, dass es in dem Eingangs meiner Frage aufgeführten Code, nicht heißen sollte:
' Wenn in Tabelle1 C7 oder C8 <>0, dann 0 in Tabelle2 C19
If Intersect(Target, Range("C7:C8")) Is Nothing Then Exit Sub
If Target.Value <> 0 Then
Sheets("Tabelle2").Select
Range("C19").Value = 0
End If
End Sub

sondern:
' Wenn in Tabelle1 E4 <>0, dann 0 in Tabelle2 C19
If Intersect(Target, Range("E4")) Is Nothing Then Exit Sub
If Target.Value <> 0 Then
Sheets("Tabelle2").Select
Range("C19").Value = 0
End If
End Sub
(jetzt passend zur Frage)
Grüße
Kai
Anzeige
AW: Zelle füllen
27.02.2004 23:43:20
PeterW
Hallop Kai,
den Level hab ich schon gesehen - aber mit "Kaum Excel/VBA-Kenntnisse" und Ereigniscode ging ich davon aus, dass du untertrieben hattest. :-)
Versuch mal diesen Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeit$
If Not Intersect(Target, Range("C7:D16,C23")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
If Trim(Target) = "" Or Not IsNumeric(Target) Then Exit Sub
ActiveSheet.Unprotect Password:="*****"
Target.NumberFormat = "hh:mm:ss"
Zeit = Trim(str(Target))
Zeit = Format(Zeit, "00:00:00")
Application.EnableEvents = False
Target = Zeit
Application.EnableEvents = True
ActiveSheet.Protect Password:="*****"
End If
If Not Intersect(Target, Range("C7:C8")) Is Nothing Then
If Target.Value <> 0 Then
Sheets("Tabelle2").Range("C19").Value = 0
End If
End If
End Sub

Gruß
Peter
Anzeige
AW: Zelle füllen
28.02.2004 15:06:58
Kai
Hallo Peter,
danke noch mal für Deine Lösung.
Den Code konnte ich nur Dank Unterstützung der Foren - www.herber.de und www.excelabc.de erstellen/ergänzen bzw. wurde mir erstellt!
Hier noch mal der fertige Code, nur der Vollständigkeit halber:

Private Sub Worksheet_Change(ByVal Target As Range)
'Automatisch Doppelpunkt erzeugen!
Dim Zeit$
If Not Intersect(Target, Range("C7:D16,C23")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
If Trim(Target) = "" Or Not IsNumeric(Target) Then Exit Sub
ActiveSheet.Unprotect Password:="*****"
Target.NumberFormat = "hh:mm:ss"
Zeit = Trim(Str(Target))
Zeit = Format(Zeit, "00:00:00")
Application.EnableEvents = False
Target = Zeit
Application.EnableEvents = True
ActiveSheet.Protect Password:="*****"
End If
' Wenn in E4 <>0 dann 0 in Tabelle2 C19
If Not Intersect(Target, Range("E4")) Is Nothing Then
If Target.Value <> 0 Then
Sheets("Tabelle2").Range("C19").Value = 0
End If
End If
End Sub

Viele Grüße
Kai
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige