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

Variable verändert Wert

Variable verändert Wert
13.10.2003 18:00:49
Franz W.
Hallo Forum,

ich kämpfe mit einer Variablen, die verändert im Laufe des Makros ihren Wert und ich weiß nicht warum.

In der Spalte C steht eine Nummer, in der Spalte D ein Name und dazu ein Kommentar. Hier der Code:


Private Sub Worksheet_Change(ByVal Target As Range)
r = Target.Row
c = Target.Column
If Not c = 3 Then Exit Sub
Worksheets("Ablesungen").Unprotect
myStart = Target.Address
If c = 3 And Cells(r, c).Value = "" Then
Cells(r, c + 1).Value = ""
If Not Cells(r, c + 1).Comment Is Nothing Then Cells(r, c + 1).Comment.Delete
GoTo weiter
End If
End Sub


Wenn ich nun in Spalte C die Nummer lösche, wird in Spalte D der Name gelöscht, ABER DER KOMMENTAR NICHT!

Wenn ich vor die Zeilen 7, 8 und 9 einen Haltepunkt setze, so ist zunächst c immer = 3, bis zum letzten Stopp, da ist dann r = 4. Das heißt also, nach der Zeile...

Cells(r, c + 1).Value = ""

... wird r auf 4 erhöht.

Kann mir das bitte jemand erklären?

Vielen Dank schon mal für Eure Hilfe

Grüße
Franz

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
hab ne Lösung
13.10.2003 19:13:16
Franz W.
Hallo Forum,

hab zwar noch nicht rausgefunden, warum das passiert, hab's aber jetzt durch eine Umgehung gelöst:


Private Sub Worksheet_Change(ByVal Target As Range)
Application.Calculation = xlCalculationAutomatic
r = Target.Row
c = Target.Column
If Not c = 3 Then Exit Sub
Worksheets("Ablesungen").Unprotect
myStart = Target.Address
Range(myStart).Select
If Range(myStart).Column = 3 And Range(myStart).Value = "" Then
Range(myStart).Offset(0, 1).Value = ""
If Not Range(myStart).Offset(0, 1).Comment Is Nothing Then Range(myStart).Offset(0, 1).Comment.Delete
GoTo weiter
End If
End Sub


Damit haut's hin.

Grüße
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige