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

Problem mit Worksheet_Change Code

Problem mit Worksheet_Change Code
09.01.2013 09:16:13
Riccardo
Hallo Leute,
folgendes Problem:
Ich habe einen Code, der so arbeiten soll, dass Feld I35 nur bestimmte Werte, in abhängigkeit von Feld I34, annehmen kann. Das sieht dann etwa so aus:
I34 - I35
0 - ausgeblendet
8 - 0
16 - 1
32 - 2,3
64 - 4,5,6,7
128 - 8,9,10
I35 ist eine Liste mit den Werten 0-10 und I34 eine Liste mit den Werten, die oben angegeben sind.
Mein Code sieht folgender Maßen aus:
Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$I$34"
Application.EnableEvents = False
If (Target.Value = 0) Then
Rows("35").Hidden = True
End If
If (Target.Value = 8) Then
Rows("35").Hidden = False
Range("I35") = 0
End If
If (Target.Value = 16 And Range("I35").Value > 1) Then
Rows("35").Hidden = False
Range("I35") = 1
End If
If (Target.Value = 32 And Range("I35").Value > 3) Then
Rows("35").Hidden = False
Range("I35") = 3
End If
If (Target.Value = 64 And Range("I35").Value > 7) Then
Rows("35").Hidden = False
Range("I35") = 7
End If
If (Target.Value = 128 And Range("I35").Value > 10) Then
Rows("35").Hidden = False
Range("I35") = 10
End If
Application.EnableEvents = True
Case "$I$35"
Application.EnableEvents = False
If (Range("I34").Value = 8) Then
Rows("35").Hidden = False
Target.Value = 0
End If
If (Range("I34").Value = 16 And Range("I35").Value > 1) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 1)
End If
If (Range("I34").Value = 32 And Range("I35").Value > 3) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 3)
End If
If (Range("I34").Value = 64 And Range("I35").Value > 7) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 7)
End If
If (Range("I34").Value = 128 And Range("I35").Value > 10) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 10)
End If
Application.EnableEvents = True
End Select
Dieser Code sollte halt arbeiten, sobald eine Eingabe getätig wird, macht er aber nicht. Er arbeitet erst, wenn ich nach der Änderung noch einmal in das entsprechende Feld klicke und ich versteh nicht ganz, warum das so ist. Bei einem anderen Code, der nur geringfügig anders ist, klappt es einwandfrei :(
Vielen Dank schon mal im Vorraus :)
LG
Riccardo

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Worksheet_Change Code
09.01.2013 09:52:40
Hajo_Zi
Hallo Riccardo,
macht man einen kompletten Code draus ist der Code korrekt.

AW: Problem mit Worksheet_Change Code
09.01.2013 10:06:58
Riccardo
Hallo Hajo,
Wenn du das fehlende End Sub mit "kompletter Code" meinst, dann habe ich lediglich vergessen es mit hier hinein zu kopieren.
Allerdings funktioniert der Code trotzdem nur, wenn ich nach einer Änderung wieder in das Feld klicke. Das ist mir gänzlich unverständlich :(
VG
Riccardo

AW: Problem mit Worksheet_Change Code
09.01.2013 10:08:00
Hajo_Zi
Hallo Riccardo,
in meiner Datei geht es, Deine sehe ich nicht.
Gruß Hajo

Anzeige
AW: Problem mit Worksheet_Change Code
09.01.2013 10:14:30
Riccardo
Hmm.. Das ist seltsam =/

AW: Problem mit Worksheet_Change Code
09.01.2013 10:08:52
Marc
Moin!
Schau dir mal an, WANN das Ereignis Change ausgelöst wird und was zu DEM Zeitpunkt target.address ist.
Ich denk, da kommst du weiter.
Gruß, MCO

AW: Problem mit Worksheet_Change Code
09.01.2013 10:13:22
Riccardo
Das Modul wird folgender Maßen aufgerufen:
If (Target.Address = "$H$36" Or Target.Address = "$H$55" Or Target.Address = "$H$110" Or _
Target.Address = "$I$59" Or Target.Address = "$I$60" Or Target.Address = "$I$34" Or_
Target.Address = "$I$35") Then
Call Worksheet_Change(Target)
End If

AW: Problem mit Worksheet_Change Code
09.01.2013 10:17:54
Hajo_Zi
es ist ein Ereignismakro kein Modul. Warum nicht den gesamten Code im Ereignismakro? Hast Du das Ereignismakro vielleicht an der falschen Stelle?
Gruß Hajo

Anzeige
AW: Problem mit Worksheet_Change Code
09.01.2013 10:26:26
Riccardo
Ja, stimmt sry, kein Modul :)
Naja, also beim Debuggen komme ich auf jeden Fall in das Ereignismakro, sobald ich eine der angegebenen Zellen anwähle. An und für sich nicht schlecht, aber wenn ich dann den Wert in dem Feld veränder, passiert nichts weiter.
Also denke ich nicht, dass es an einer falschen Stelle steht :(

AW: Problem mit Worksheet_Change Code
09.01.2013 10:33:31
Hajo_Zi
der Code wird nicht ausgeführt bei der Anwahl einer Zelle. Man könnte vermuten Du hast anderen Code als hier gepostet der komplett anders aussieht. Ich sehe das aber nicht, wie schon mitgeteilt.
Gruß Hajo

Anzeige
AW: Problem mit Worksheet_Change Code
09.01.2013 10:46:14
Riccardo
Ich habe mal die Datei hochgeladen. Es ist recht viel, solltest du Zeit und Muße haben, kannst du gern mal reinschauen ( https://www.herber.de/bbs/user/83303.xlsm )
Der Aufruf erfolgt in Tabelle 5(NovaBox Kalkulation) und das Makro an sich nennt sich ChangeAnweisungen unter dem Ordner Module.
VG
Riccardo

AW: Problem mit Worksheet_Change Code
09.01.2013 10:54:40
Hajo_Zi
man sollte schon den Original Code in Auszügen kopieren.
Du benutzt
Sub WorkSheet_SelectionChange(ByVal Target As Range)
nicht
Sub WorkSheet_Change(ByVal Target As Range)
Gruß Hajo

Anzeige
AW: Problem mit Worksheet_Change Code
09.01.2013 10:58:31
Riccardo
Richtig, der größte Teil ist SelectionChange, deswegen ist das Ereignismakro abgegrenzt.
Wenn du mal in den Code von "NovaAlert Kalkulation" reinschaust, ist das dort gleich gehändelt und dort funktioniert es. Der einzige unterschied ist dort, dass das Ereignismakro direkt unter das eigentliche geschrieben wurde.
Aber ich bin gern für Beratung offen, wenn du sagst, es liegt daran, wie kann ich es dann funktionstüchtig machen?
Danke,
Riccardo

AW: Problem mit Worksheet_Change Code
09.01.2013 11:03:27
Hajo_Zi
ich habe unter der aktuellen Tabelle nachgeschaut und da ist mir der Fehler sofort aufgefallen.
Das ist ein Grund um nicht weiter zu schauen.
Gruß Hajo

Anzeige
AW: Problem mit Worksheet_Change Code
09.01.2013 11:09:06
Riccardo
Und was wäre nun dein Rat um das Problem zu lösen?
Das SelectionChange kann ich nicht ändern, dann funktioniert Rest des Codes nicht mehr :(
Ich bin ratlos :(
VG
Riccardo

AW: Problem mit Worksheet_Change Code
09.01.2013 11:20:08
Riccardo
Ok, warum auch immer:
wenn ich das Worksheet_Change direkt unter dem SelcetionChange schreibe, dann funktioniert es, lager ich es weiter aus, dann nicht.
Problem hat sich damit erledigt, danke ;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige