Aktualisieren eines Excelsheets

09/03/2008 - 11:00 von Jörg Klein | Report spam
Hallo,

ich habe wieder ein kleines Problem mit einem Makro

Ich möchte folgendes:
1. Die Tabelle fàngt in Zeile 6 an.

C
I J K L M
N O P Q R
09.03.2008 1,5347 1,5343 1,5427 07.03.2008 1,44 22.01.2008 1,5427
07.03.2008 1,31 09.03.2007


Wenn Spalte K < I then K & L = I & C
Wenn Spalte M > I then M & N = I & C
Wenn Spalte O < K then O & P = K & L
Wenn Spalte Q > M then Q & R = M & N


So sieht mein VBA Code aus:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim IngLRow As Long
Dim IngI As Long
IngLRow = Range("B" & Rows.Count).End(xlUp).Row
For IngI = 6 To IngLRow
If Range("K" & IngI).Value < Range("I" & IngI).Value Then
Range("K" & IngI & ":L" & IngI).Value = Range("I" & IngI & ":C"
& IngI).Value

ElseIf Range("M" & IngI).Value > Range("I" & IngI).Value Then
Range("M" & IngI & ":N" & IngI).Value = Range("I" & IngI &
":C" & IngI).Value

ElseIf Range("O" & IngI).Value < Range("K" & IngI).Value Then
Range("O" & IngI & ":P" & IngI).Value = Range("K" & IngI &
":L" & IngI).Value

ElseIf Range("Q" & IngI).Value > Range("M" & IngI).Value Then
Range("Q" & IngI & ":R" & IngI).Value = Range("M" & IngI &
":N" & IngI).Value
End If
Next
End Sub

Leider funktioniert der VBA Code nicht. In Zeile 21 werden plötzlich in
Spaltze K ein Datum, in Spalte L das Datum 00.01.1900, in Spalte O ####, in
Spalte P 6:00:26 PM ausgegeben. Wenn ih den Code mit F5 ausführen möchte, so
kommt immer das Fenster Makro hoch. Keine Ahnung warum.

Was habe ich falsch gemacht. Vielleicht kann man ja auch eine Case Anweisung
verwenden?
Aber wie?

Vielen Dank für die Hilfe

Jörg
 

Lesen sie die antworten

#1 Robert Jakob
09/03/2008 - 12:35 | Warnen spam
Am Sun, 9 Mar 2008 11:00:00 +0100 schriebst du in
microsoft.public.de.excel:

Hallo,

ich habe wieder ein kleines Problem mit einem Makro

Ich möchte folgendes:
1. Die Tabelle fàngt in Zeile 6 an.

C
I J K L M
N O P Q R
09.03.2008 1,5347 1,5343 1,5427 07.03.2008 1,44 22.01.2008 1,5427
07.03.2008 1,31 09.03.2007


Wenn Spalte K < I then K & L = I & C
Wenn Spalte M > I then M & N = I & C
Wenn Spalte O < K then O & P = K & L
Wenn Spalte Q > M then Q & R = M & N


So sieht mein VBA Code aus:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim IngLRow As Long
Dim IngI As Long
IngLRow = Range("B" & Rows.Count).End(xlUp).Row
For IngI = 6 To IngLRow
If Range("K" & IngI).Value < Range("I" & IngI).Value Then
Range("K" & IngI & ":L" & IngI).Value = Range("I" & IngI & ":C"
& IngI).Value

ElseIf Range("M" & IngI).Value > Range("I" & IngI).Value Then
Range("M" & IngI & ":N" & IngI).Value = Range("I" & IngI &
":C" & IngI).Value

ElseIf Range("O" & IngI).Value < Range("K" & IngI).Value Then
Range("O" & IngI & ":P" & IngI).Value = Range("K" & IngI &
":L" & IngI).Value

ElseIf Range("Q" & IngI).Value > Range("M" & IngI).Value Then
Range("Q" & IngI & ":R" & IngI).Value = Range("M" & IngI &
":N" & IngI).Value
End If
Next
End Sub

Leider funktioniert der VBA Code nicht. In Zeile 21 werden plötzlich in
Spaltze K ein Datum, in Spalte L das Datum 00.01.1900, in Spalte O ####, in
Spalte P 6:00:26 PM ausgegeben. Wenn ih den Code mit F5 ausführen möchte, so
kommt immer das Fenster Makro hoch. Keine Ahnung warum.

Was habe ich falsch gemacht. Vielleicht kann man ja auch eine Case Anweisung
verwenden?
Aber wie?

Vielen Dank für die Hilfe

Jörg



Hallo Jörg,

Deine WennAbfragen sind mir offen gesagt zu nervös oder anders gesagt
zu unübersichtlich.

Ich würde Dir vorschlagen versuche es mal so:

IF Bedingung u.s.w. then

Anweisung u.s.w.
goto Schluss
End if

Auf diese Weise kannst Du viele Bedingungen definieren und làufts
nicht Gefahr, dass durch zu viele Elseif die Bedingung und Anweisung
von vorher wieder rückgàngig gemacht werden.

Wenn Du nach erfolgreichem IF die Sprunganweisung zum Schluss:
gibst, dann sind alle anderen If-Anfragen nicht mehr im Weg.

Sodann ist es natürlich innerhalb von Deinem Modul am Schluß
erforderlich die Sprungmarke

Schluss:

einzubauen.

Deinen Code selbst habe ich mir nicht weiter angesehen weil
er mir zu unübersichtlich ist und ich auch nicht weiß was Du
eigentlich machen willst.

MfG
Robert

Ähnliche fragen