2007 VBA: Problem mit der Zuordnung von Kursen zu WKNs

13/04/2010 - 01:06 von Andreas Schneider | Report spam
Hallo,

ich habe mir eine eigene Aktienverwaltung gebastelt, die div.
Gewinn/verlustrechungen, Renditeberechnungen etc. vornimmt.

Es gibt u.a. eine Tabelle "Aktiendepot" auf der die Aktienwerte in
Spalte A mit Bezeichnung und in Spalte B mit WKN vorhanden sind (Spalte
B ist mit Format Standard formatiert).

Die aktuellen Kurse, die ich als xls von meiner Bank bekomme, lade ich
als neue Tabelle "Aktien" in die Mappe. Soweit so gut.

Mit folgendem Code ordne ich nun die aktuellen Kurse zu:

Sub Kurse_updaten()

For i = 5 To 60 'Zeilen der Spalte in dem die WKN in "Aktien" steht
For Z = 8 To 60 'Zeilen der Spalte in dem die WKN in "Aktiendepot" steht


If Worksheets("Aktiendepot").Cells(Z, 3).Value =
Worksheets("Aktien").Cells(i, 2).Value Then
Worksheets("Aktiendepot").Cells(Z, 8).Value =
Worksheets("Aktien").Cells(i, 5).Value

End If
Next Z
Next i

End Sub


Das funktioniert auch, allerdings nur mit WKN die z.b. so aussehen: A0WMPJ

WKNs die aus 6Zahlen z.b. 123456 bestehen sind auf dem Blatt Aktien
schon mit so einer grünen Ecke markiert (als Text gespeciherte Zahlen).

Von diesen WKNs mit 6 Zahlen werden die Kurse nicht auf "Aktiendepot"
übernommen.

Kann mir jemand einen Tipp geben, wie ich entweder die WKNs auf "Aktien"
oder die auf Aktiendepot" zu umwaneln kann, dass das makro beim
Vergleich die die WKNs als identisch ansieht?

Ich hoffe, ich konnte das Problem erklàren...:)



Danke

Andreas
 

Lesen sie die antworten

#1 Peter Schleif
13/04/2010 - 06:13 | Warnen spam
Andreas Schneider schrieb am 13.Apr.2010 01:06 Uhr:

WKNs die aus 6Zahlen z.b. 123456 bestehen sind auf dem Blatt Aktien
schon mit so einer grünen Ecke markiert (als Text gespeciherte Zahlen).

Von diesen WKNs mit 6 Zahlen werden die Kurse nicht auf "Aktiendepot"
übernommen.



Die echten Zahlen in Aktiendepot ergeben in VBA den Datentyp Double. Die
Text-Zahlen in Aktien ergeben dagegen den Datentyp String.

Für den If-Vergleich konvertiert VBA den numerischen Typ automatisch in
einen String. Dabei wird der Zahl ein Leerzeichen vorangestellt und der
Vergleich passt nicht: " 123456" <> "123456"

Lösung: Entferne das Leerzeichen mit Trim()

If Trim(Worksheets("Aktiendepot").Cells(z, 3).Value) = _
Trim(Worksheets("Aktien").Cells(i, 2).Value) Then

Peter

Ähnliche fragen