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

warum bekomme ich die falsche Zeile?

warum bekomme ich die falsche Zeile?
31.05.2013 12:14:36
Thorsten_Z
Moin liebes Forum,
mit unten stehendem Code füge ich Zeiten in Zellen ein. Geht auch wunderbar, bis auf die im Code markierten Stellen. Egal was ich dort eingebe, irow -3, irow -4,..., an der Zeile ändert sich nichts!!!
Was mache ich da falsch?
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim irow, icol As Long
Dim Bereich As Range
If Intersect(Target, Range("P6:P44,AH6:AH44, BS6:BS44, CK6:CK44, DV6:DV44, EN6:EN44,FY6:FY44,   _
_
GQ6:GQ44, IB6:IB44, IT6:IT44, KG6:KG44, KY6:KY44, ML6:ML44, ND6:ND44,OQ6:OQ44,PI6:PI44")) Is  _
Nothing Then Exit Sub
Application.EnableEvents = False
irow = ActiveCell.Row
icol = ActiveCell.Column
If Cells(irow - 1, icol) = "" Then
Application.EnableEvents = True
Dim zellinhalt As String
Dim i As Long
For i = 6 To 44
zellinhalt = Range("YA" & i).Value
If zellinhalt  "" Then
With Range("H" & i)
.ClearComments
.AddComment
.Comment.Text Text:=zellinhalt
.Comment.Shape.TextFrame.AutoSize = True
End With
Else
End If
Next i
Exit Sub
End If
If Cells(irow - 1, icol).Value = Worksheets("Tabelle11").Cells(15, 1).Value Then
Cells(irow - 1, icol).Value = Worksheets("Tabelle11").Cells(15, 5).Value
Cells(irow - 1, icol + 1).Value = Worksheets("Tabelle11").Cells(15, 7).Value
Cells(irow, icol).Value = Worksheets("Tabelle11").Cells(15, 10).Value
Cells(irow, icol + 1).Value = Worksheets("Tabelle11").Cells(15, 11).Value
Cells(irow - 1, icol + 18).Value = Worksheets("Tabelle11").Cells(15, 12).Value 'richtige  _
Spalte, falsche Zeile
Cells(irow - 1, icol + 19).Value = Worksheets("Tabelle11").Cells(15, 13).Value 'richtige  _
Spalte, falsche Zeile
End If
... 'noch mehr Code
Application.EnableEvents = True
End Sub

Besten Gruß
Thorsten

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bahnhof?
31.05.2013 16:14:56
Sheldon
Hi Thorsten,
ich bin mir durchaus nicht sicher, ob ich alles richtig verstanden habe in dem Code. Wieso speicherst Du Activecell.Row und Activecell.Column als iRow und iCol? Nimm da mal lieber Target.Row und Target.Column dafür.
Und dann weiter: Im ersten If-Then-Block setzt Du EnableEvents wieder auf true, obwohl gerade erst zuvor auf false gesetzt. Sinn?
Und dann im If-Then-Block mit dem Fehler: Die ganzen Aktionen sollen also jedesmal ausgeführt werden, wenn die Zelle direkt oberhalb der veränderten Zelle der ominösen Zelle A15 auf Tabelle11 entspricht… Wenn das zutrifft, soll die Eingabezelle z. B. mit dem Wert aus Zelle J15 von Tabelle11 überschrieben werden?
Ich versteh nichtmal ansatzweise, wozu das gut sein soll. Mglw. liegt das daran, das EnableEvents schon wieder auf true gesetzt ist, während die Aktionen im zweiten If-Then-Block ausgeführt werden, wodurch die erwarteten Änderungen einfach jedesmal wieder zurückgenommen werden. Aber wenn eh immer die gleichen Zahlen eingetragen werden sollen, geht das nicht einfacher mit Copy & Paste?
Gruß
Sheldon

Anzeige
AW: Bahnhof?
31.05.2013 20:26:51
Thorsten_Z
nabend Sheldon,
...Hast du also auch keine konkrete Idee, Warum nur die beiden letzten Codezeilen in dem If-Block nicht funktionieren (bez. irow)?
Ja, die Frage nach dem Sinn wie du so schön formuliert hast, stelle ich mir auch ganz oft. Als VBA Level gibt es leider nicht die Option "Bastler mit ca. 15% Schnall von VBA" :-) .
Ich gebe in einer Liste "Kürzel" ein, die dann in Tabelle 11 verglichen werden und mir bei Übereinstimmung, Uhrzeiten zurückschreibt (schreiben sollte). Das eingegebene Kürzel wird dabei überschrieben. Ich hoffe jetzt ist es etwas eindeutiger, wozu der Code gut sein soll.
bez. EnableEvents: die sind ja erst dann wieder True, wenn die If-Abfrage zutrifft. Sonst funktioniert der folgende Code, mit dem ich ja Kommentare in Zellen schreibe, nicht.
Ich werde deinen Ratschlag mit Copy und Paste morgen ausprobieren können. Danke für diesen Tipp.
Gruß
Thorsten

Anzeige
konkreter(er) Verdacht…
31.05.2013 22:56:39
Sheldon
Hi Thorsten,
…den will ich in diesem Fall nochmal etwas beleuchten: Ich will das ganze Konstrukt natürlich nicht nachbauen, der Code alleine wird dazu ja auch kaum genügen. Hochladen kannst Du Dein Werk vermutlich auch nicht ohne Umbau, denn persbezogene Daten und umfangreiche Datensatzsammlungen wollen wir hier ja eh nicht sehen! Vielleicht würde sich ein solcher Upload dennoch lohnen in Deinem Fall!
So, nun aber zu meinen Ansätzen, bzw. Verdachtsmomenten. Ich kann mir ganz gut vorstellen, dass das Eintragen in die betreffenden Zellen wiederum einen Prozeduraufruf auslöst, weil ja EnableEvents auf True gesetzt sein könnte. Dadurch könnte zunächst der korrekte Eintrag hineingelangen und dann durch den selbst ausgelösten zweiten Durchlauf wieder überschrieben werden. Es kann aber auch an ganz was anderem liegen, z.B. Zellenformat, falscher Bezug, evtl. auch ActiveCell vs. Target - auch das hatte och ja aber schon beschrieben.
Hast Du mal einen Haltepunkt möglichst am Anfang des Codes irgendwo gesetzt, so dass Du dann nach dem Auslösen der Routine mal mit F8 jeden einzelnen Schritt durchgehst und genau beobachtest, was auf dem Excelblatt dabei passiert? Das hilft bei solchen Angelegenheiten sicher weiter!
Also dann, für Deine Jagd auf den Fehler: Weidmanns Heil!
Gruß
Sheldon

Anzeige
Asche auf mein Haupt!!!
01.06.2013 10:26:41
Thorsten_Z
Hi Sheldon,
Alles völliger Käse... also ICH jetzt. Manchmal hilft es schon sehr etwas weniger deppert zu sein :-)!!!
Ich habe beim bearbeiten der Datei, um sie hier hoch zu laden, festgestellt, dass ich in der Tabelle 11 die Falsche Zeile angesprochen habe und zwar mit einem Codeteil vor dem, um den es mir ging! SORRY!!!
Jetzt funktioniert es wie es soll. Hab die Datei trotzdem angehängt, damit du es nun auch sehen kannst wie es sein sollte.
https://www.herber.de/bbs/user/85604.xlsm
Auf jeden Fall vielen vielen Dank, dass du dich trotzdem der Sache angenommen hast und mir versucht hast Klarheit zu verschaffen.
Schönes Wochenende dir
Besten Gruß
Thorsten

Anzeige
Danke für die RM! owT
01.06.2013 10:55:26
Sheldon
Gruß
Shelson

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige