Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1160to1164
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

Private Sub Worksheet_Change(ByVal Target As Range

Private Sub Worksheet_Change(ByVal Target As Range
ing.grohn
Hallo Forum,
Worksheet_Change ist eine wunderbare Sache! (wenn sie funktioniert)
Also:
ich arbeite in einem Blatt mit: Private Sub Worksheet_Change(ByVal Target As Range)
funktioniert alles super. Nur manchmal tut das nicht!!!!
Excel beenden, neu starten, alles klar und funktioniert!!
Aber warum passiert das?
Hat jemand ne Antwort
Sonnige Grüße aus dem Nord-Westen
Albrecht
(toll mit der Schweiz! oder)
AW: Private Sub Worksheet_Change(ByVal Target As Range
17.06.2010 09:43:52
ChrisL
Hi Albrecht
Kann es sein dein Code eine Endlosschleife produziert d.h. Change verursacht wieder Change usw.?
cu
Chris
AW: Private Sub Worksheet_Change(ByVal Target As Range
17.06.2010 10:02:27
ing.grohn
Hallo,
hier der komplette Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Hoehe As Double
With Target
If .Row > 20 And .Row """",texte(RC[-1]),"""")"
Target.Offset(0, -1).Formula = "=IF(OR(RC[1]="""",RC[1]=""t""),"""", _
IF(Gebuehrensatz(RC[1])0,Gebuehrensatz(RC[1]),1))"
Target.Offset(0, 5).Formula = "=IF(OR(RC[-6]="""",RC[-5]=""""),"""", _
IF(Betrag(RC[-5])0,Betrag(RC[-5])*RC[-6],IF(R17C7"""", _
RC[-6]*R17C7,"""")))"
Target.Offset(0, 6).Formula = "=IF(RC[-6]"""",Steuer(RC[-6]),"""")"
End If
Hoehe = Zeilenhoehe(wks:=Me, Zeile:=Target.Row, Spalte_A:=3, Spalte_E:=6)
End If
End With
End Sub

Mit freundlichen Grüßen
Albrecht
Anzeige
AW: Private Sub Worksheet_Change(ByVal Target As Range
17.06.2010 10:13:06
ChrisL
Hi Albrecht
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False
' 

cu
Chris
AW: Private Sub Worksheet_Change(ByVal Target As Range
17.06.2010 10:35:46
ing.grohn
Hallo Chris,
werd ich probieren, vielen Dank!
Zu bedenken geb ich aber noch, dass das Arbeitsblatt beim "ersten" Aufruf nichts macht.
Also es ist noch nichts ausgelöst, um eine Endlosschleife anzuregen und läßt sich auch beenden (also scheint nicht aktiiv zu sein)
Mit freundlichen Grüßen
Albrecht
(kann mich erst später darum kümmern, melde mich heute abend noch mal)
AW: Private Sub Worksheet_Change(ByVal Target As Range
17.06.2010 11:31:24
ing.grohn
Hallo Chris,
das geht ja gar nicht!
MfG
Albrecht
Anzeige
AW: Private Sub Worksheet_Change(ByVal Target As Range
17.06.2010 11:57:04
ChrisL
Hi Albrecht
Geht nicht... geht doch... so kommen wir nicht weiter ;)
In deinem Change Ereignis fügst du Daten in die Tabelle ein, was wiederum zu einem weiteren Change Ereignis führt usw. Sowas verhindert man mit EnableEvents. Zur Sicherheit sollte man in diesem Zusammenhang immer noch eine kleine Fehlerbehandlung verwenden.
cu
Chris
AW:geht nicht gibs nicht
17.06.2010 12:26:34
ing.grohn
Hallo Chris,
nachdem ich meinen Code in deinen Rahmen eingefügt habe,
passiert tätsächlich nichts!
(möglich, dass das der Ausgangspunkt für meine Frage ist)
Deine Bemerkung (ruft wieder ein Changeereignis auf...) sage ich trotzdem , mein Code funktioniert (meistens). Und von Endlosschleifen ist auch nichts zu merken Sagen wir mal; 4 Tage passiert nichts (nein, es geschieht, was geschehen soll). Am 5. Tag gehts dann plötzlich nicht mehr.
Die Tabelle wurde in der Zwischenzeit mehrfach geschlossen und wieder geöffnet.
Zugegeben, Deine Anmerkung stimmt mich nachdenklich.
Aber dein Code läuft im Moment bei mir nicht.
Allerdings hab ich auch schon erlebt, dass die VBA Umgebung machmal Fehler meldet, obwohls keine gibt. Ich schliesse alles und starte neu und dann gehts. K.A. was da passiert.
Mit freundlichen Grüßen
Albrecht
Anzeige
AW: AW:geht nicht gibs nicht
17.06.2010 12:45:43
ChrisL
Hi Albrecht
Weil mir die Datei-Struktur fehlt, musste ich ein paar Zeilen auskommentieren, aber scheint zu funktionieren...
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
Application.EnableEvents = False
Dim Hoehe As Double
With Target
'           If .Row > 20 And .Row """",texte(RC[-1]),"""")"
Target.Offset(0, -1).Formula = "=IF(OR(RC[1]="""",RC[1]=""t""),"""",IF( _
Gebuehrensatz(RC[1])0,Gebuehrensatz(RC[1]),1))"
Target.Offset(0, 5).Formula = "=IF(OR(RC[-6]="""",RC[-5]=""""),"""",IF( _
Betrag(RC[-5])0,Betrag(RC[-5])*RC[-6],IF(R17C7"""",RC[-6]*R17C7,"""")))"
Target.Offset(0, 6).Formula = "=IF(RC[-6]"""",Steuer(RC[-6]),"""")"
End If
'              Hoehe = Zeilenhoehe(wks:=Me, Zeile:=Target.Row, Spalte_A:=3, Spalte_E:=6)
'          End If
End With
Application.EnableEvents = True
Exit Sub
ErrorHandler:
MsgBox "Fehler"
Application.EnableEvents = True
End Sub
cu
Chris
Anzeige
AW: AW:geht nicht gibs nicht
17.06.2010 13:24:02
ing.grohn
Hallo Chris,
Ruhe bewahren, das tun was man geschrieben hat und dann gehts:
ich hab Deinen Code eingefügt, die Datei gespeichert und neu gestartet und jetzt gehts.
Vielen Dank!!
Ich werd die Geschichte weiter beobachten.
(ist das aber normal?)
Mit freundlichen Grüßen
Albrecht
AW: AW:geht nicht gibs nicht
17.06.2010 13:34:00
ChrisL
Hi Albrecht
Danke für die Rückmeldung, ich hoffe es hilft.
Wenn der Fehler total zufällig auftritt, dann ist dies sicher nicht normal. Dann müsste man evtl. mal versuchen Excel neu zu installieren usw.
Ich vermute aber schon eher, dass das Problem in einer gewissen Konstellation auftritt; eine Konstellation, die vielleicht nicht jeden Tag vorkommt. Durch deine If/Wenn-Abfrage, wird eine Endlosschleife verhindert (hab ich vielleicht leicht übertrieben), dennoch wird das Ereignis mehrmals (bei jedem Formel-Eintrag einzeln) angesprochen, was sicherlich nicht förderlich für die "Stabilität" des Codes ist. Ich bin daher zuversichtlich, dass die Änderung den gewünschten Effekt bringt.
cu
Chris
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige