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

change ereignis funktioniert nicht

change ereignis funktioniert nicht
28.05.2004 11:21:53
maggie
hallo,
habe da ein problem.
arbeite mit vb und excel application.
schreibe in die excel tabelle meine werte aus meinem array rein und dann möchte ich das alle spalten aufeinander reagieren.
natürlich kommt dann ein zirkelbezug.
ein guter mensch hat mir dann ein code geschrieben der das tut was ich möchte und kein zirkelbezug auftritt.
leider kann ich es nicht in meinen code einbinden.
es sieht ungefähr so aus:
Dim EA As excel.Application
Dim WB As excel.Workbook

Private Sub WB_SheetChange(ByVal Sh As Object, ByVal Target As Range)
End Sub

leider wird der code nicht berücksichtigt, der compiler meldet aber auch kein fehler!!!
weiss vielleicht jemand wo der fehler ist?
oder was man da versuchen könnte?
mfg
maggie

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: change ereignis funktioniert nicht
28.05.2004 13:31:14
Sven
Hi maggie,
die VBA-Hilfe sagt:
Private Sub object_SheetChange(ByVal Sh As Object, ByVal Source As Range)
also Source statt Target.
Hast Du da inhaltlich was falsch gemacht?
Gruß, Sven.
AW: change ereignis funktioniert nicht
harry
hallo maggie,
deine angaben sind sehr spärlich, aber schau dir die datei mal an. so in der art müsste das ganze organisiert sein.
liebe grüße,
harry
https://www.herber.de/bbs/user/6866.xls
AW: change ereignis funktioniert nicht
28.05.2004 15:03:40
maggie
hallo,
also,
das ist ein vba das ich bekommen habe und ich arbeite mit vb.
kann man den code für vb ändern?
und wie?
ich verzweifel schon!
das ist der vba code:
Dim myTabelle As Object 'Excel.Worksheet '

Private Sub Chart1_SheetChange(ByVal Sh As OWC10.Worksheet, ByVal Target As OWC10.Range)
Dim AktProz As Double, Gesamt As Double, Groesser As Double, Kleiner As Double, Zeilen As Long
'Prüfen ob richtige Tabelle
If Sh.Name <> "Tabelle1" Then Exit Sub
'Anzahl Datenzeilen
Zeilen = (Sh.Range("ProzKumX").Row + Sh.Range("ProzKumX").Rows.Count - 1)
'Prüfen ob veränderte Zelle eine Kumulierte Prozenzahl ist
If (Target.Column <> Sh.Range("ProzKumX").Column) Or (Target.Row = 1) Or (Target.Row > Zeilen) Then Exit Sub
On Error GoTo Ende
'Events ausschalten, damit diese Procedure sich nicht selbst aufruft
Target.Application.EnableEvents = False
'eingebenen Wert merken
AktProz = Target.Value
'Formel wiederherstellen
Target.Formula = "=(C" & Target.Row & "*100/E1)"
' Prüfen, ob 1. Zeile < 100
If AktProz <= 0 Or AktProz > 100 Then
MsgBox "0 <= Prozente < 100 !"
GoTo Ende
ElseIf Target.Row = 2 And AktProz = 100 Then
MsgBox "In der 1. Zeile können nicht 100 Prozent erreicht werden !"
GoTo Ende
' Prüfen, ob letzte Zeile = 100
ElseIf Target.Row = Zeilen Then
MsgBox "In der letzten Zeile müssen 100 Prozent erreicht werden !"
GoTo Ende
End If
'Zielwertberechnung
Groesser = Target.Application.Evaluate("Sum(A" & Target.Row + 1 & ":A" & Zeilen & ")")
Kleiner = Target.Application.Evaluate("Sum(A1:A" & Target.Row - 1 & ")")
Gesamt = Groesser / (1 - (AktProz / 100))
Target.Offset(0, -2).Value = Gesamt * (AktProz / 100) - Kleiner
Ende:
'Events einschalten
Target.Application.EnableEvents = True
End Sub


Private Sub UserForm_Initialize()
Dim i As Long
Set myTabelle = Me.Controls("Chart1").object.Sheets(1)
myTabelle.Application.EnableEvents = False
With myTabelle
.Cells(1, 1).Value = "Delta X"
.Cells(1, 2).Value = "Y-Wert"
.Cells(1, 3).Value = "Kum X"
.Cells(1, 4).Value = "KumXProz"
.Cells(1, 5).Formula = "=Sum(A:A)"
For i = 2 To 10
.Cells(i, 1) = Rnd() * 100 - 30
.Cells(i, 2) = Rnd() * 100
.Cells(i, 3).Formula = "=Sum(A2:A" & i & ")"
.Cells(i, 4).Formula = "=(C" & i & "*100/E1)"
Next
End With
myTabelle.Parent.Names.Add Name:="Tabelle1!ProzKumX", RefersToR1C1:="=OFFSET(Tabelle1!R1C4,1,,COUNTA(Tabelle1!C1)-1,)"
myTabelle.Application.EnableEvents = True
End Sub

mfg
maggie
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige