Aktienkurse mit Excel

Dieses Thema im Forum "Office-Programme" wurde erstellt von franke, 7. April 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. franke

    franke Byte

    Registriert seit:
    1. April 2002
    Beiträge:
    12
    Frage zu Excel 97
    Ein Freund von mir hat folgendes Problem.

    Ich habe mir eine Tabelle erstellt in dem ich meine Aktien verwalte.
    Die Tabelle ist wie folgt aufgebaut. Als Zeilenüberschrift steht der jeweilige Aktientitel,
    in der ganz linken Spalte (A2 – A27) befinden sich fest definierte Werte von 1-26.
    Diese Werte entsprechen die jeweiligen Wochen.
    Mein Problem ist nun, daß ich jede Woche einen neuen Wert eingebe (Aktienkurs) und dieser
    Wert soll auf einem anderen Blatt in einem fest definierten Feld erscheinen.
    Dieser Vorgang ist kein Problem, aber wie erreicht man ohne das ich eine Formel ändere, dass ich bei meinen Aktienkursen einen weiteren Wert eingebe (neue Woche) und dieser aktuelle Wert auf dem anderen Blatt in der selben Zelle erscheinen soll, anstatt des Vorgängerkurses.
    Ich habe nach einem Befehl „letzter Wert in Spalte“ oder ähnliches gesucht bin aber nicht
    fündig geworden.
    Kann mir jemand bei diesem Problem helfen
    Besten Dank für die Mühe.
    Franz
     
  2. excelerator

    excelerator Byte

    Registriert seit:
    13. Februar 2002
    Beiträge:
    32
    Hi,
    leider ist deine e-Mail-Adresse versteckt. Sonst hätte ich dir dahin geschrieben. Meine kennst du ja jetzt.
    Buttons für die Druckerauswahl? Mir würde da, ohne deine Version zu kennen und kritisieren zu wollen, warscheinlich was besseres einfallen (z.B.geänderte Drucksteuerung per Add-In).
    Aber mach ruhig weiter und lass dich nicht verschrecken.

    Udo
     
  3. iCebird

    iCebird Kbyte

    Registriert seit:
    20. November 2001
    Beiträge:
    316
    Hi,

    alles klar, ich werd mich mit der Geschichte am Wochenende mal näher beschäftigen.
    Bisher hab ich nur kleinere Makros geschrieben.
    Z.B. die Auswahl der verschiedenen Drucker und deren Papierfächer, hier bei uns, über Buttons geregelt, usw.
    Es kam nämlich ständig vor das Briefe auf dem A3-Inkjet anstatt im Laser landeten und wenn Sie dann im Laser ankamen wurde das falsche Papierfach gewählt.
    Unwillige, eigensinnige und starrköpfige Anwender halt, die einfach nicht lesen wollen sondern nur klicken.
    Dafür muß man nicht so tief in der Materie stecken.
    Allerdings reizt es mich tiefer einzudringen, doch die Zeit ist mein Feind.
    Ich bin hier Techniker und EDV-Mensch in Personalunion und die GL legt leider nicht so viel Wert auf die EDV.
    Deshlab gibts öfter mal \'n Rüffel wenn ich grad wieder an einem Problem rumfeile.
    So bleibt mir meißtens nur das Wochenende.

    Ich wünsch Dir ein schönes und noch mal vielen Dank

    Gruß Ralf
     
  4. excelerator

    excelerator Byte

    Registriert seit:
    13. Februar 2002
    Beiträge:
    32
    Hallo,
    das Entscheidende ist, das Argument für die Funktion (den auszuwertenden Bereich) als Range-Objekt zu übergeben. Dann wird das von Excel ständig überwacht.

    Gruss Udo
     
  5. iCebird

    iCebird Kbyte

    Registriert seit:
    20. November 2001
    Beiträge:
    316
    Hallo,

    wieder was gelernt.
    Ich stehe mit der VBA-Programmierung noch relativ am Anfang,
    Hab mir zwar gedacht das es doch irgendwie gehen muß aber nichts gefunden.
    Na ja, vielen Dank für den Tip, und den Link.

    Gruß Ralf
     
  6. excelerator

    excelerator Byte

    Registriert seit:
    13. Februar 2002
    Beiträge:
    32
    Hallo,
    Klar geht das auch über eine Funktion. Die Zelle wird bei jeder Änderung der Quelle aktualisiert. Das mach Excel schon.

    Im Visual Basic Editor ein Modul einfügen und folgende Funktion abtippen:
    Function LetzterWert(Bereich As Range)
    Dim S, N, C
    S = Bereich.Worksheet.Name
    C = Bereich.Column
    N = Sheets(S).Cells(65536, C).End(xlUp).Row
    LetzterWert = Sheets(S).Cells(N, C)
    End Function

    Jetzt in Blatt 2 die Formel eintragen:
    =LetzterWert(Tabelle1!A:A)
    holt immer den letzten in Spalte A von Tabelle1 eingetragenen Wert.
    Geht auch mit Markieren wie bei jeder anderen Formel, die sich auf Bereiche bezieht.

    Beispiel siehe www.excelerator.de Basteleien
    Viel Spaß
    Udo
    [Diese Nachricht wurde von excelerator am 10.04.2002 | 12:28 geändert.]
     
  7. iCebird

    iCebird Kbyte

    Registriert seit:
    20. November 2001
    Beiträge:
    316
    Am Schluß wird die Markierung eine Zelle nach unten verschoben,
    \'also auf die nächste freie Zelle.

    If ActiveCell.Value = (0) Then
    Selection.End(xlUp).Select
    Selection.Copy
    Sheets("Tabelle2").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Application.CutCopyMode = False
    ActiveCell.Offset(1, 0).Range("A1").Select
    Else
    Cells.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Activate
    ActiveCell.Offset(-1, 0).Range("A1").Select
    Selection.Copy
    Sheets("Tabelle2").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("Tabelle1").Select
    Application.CutCopyMode = False
    ActiveCell.Offset(1, 0).Range("A1").Select
    End If

    End Sub

    Den Ausgabeort kannst Du hier ändern

    Sheets("Tabelle2").Select
    Range("B2").Select

    Einfach die Werte in den Klammern den eigenen Bedürfnissen anpassen.

    Eine Variante als Funktion wird wohl nicht machbar sein, da die Funktion ständig den Zustand der Spalte X beobachten müßte, aus der die Werte kopiert werden sollen.

    Mit diesem Makro ist es egal wo man sich in der Spalte befindet, es kopiert immer den letzten Wert.

    Gruß Ralf
     
  8. iCebird

    iCebird Kbyte

    Registriert seit:
    20. November 2001
    Beiträge:
    316
    Nimmt Wert aus der aktiven Zelle in Tabelle XY und
    \' schreibt ihn in Tabelle 2 Zelle B2.

    ActiveCell.Copy ([Tabelle2!B2])

    End Sub

    !!!! Schlechte Variante, im nächsten Post eine bessere.

    Jetzt mußt Du nur noch ein Tastenkürzel vergeben oder ein Button erstellen.
    Anschließend Wert eingeben, Makro ausführen und der neue Wert wird in die Zelle B2 auf Tabellenblatt 2 geschrieben.
    Soll es Blatt 3 und Zelle C4 sein mußt Du im Makro nur folgendes ändern.

    ActiveCell.Copy ([Tabelle2!B2])->ActiveCell.Copy ([Tabelle3!C4])

    So ersparst Du Dir den Blatt und Wochenwechsel zum Anpassen des SVERWEIS.

    Vielleicht finde ich ja noch eine Lösung (Funktion) die den letzten Wert einer auszuwählenden Spalte in eine andere Zelle schreibt.

    Gruß Ralf
    [Diese Nachricht wurde von iCebird am 08.04.2002 | 14:38 geändert.]
    [Diese Nachricht wurde von iCebird am 08.04.2002 | 16:25 geändert.]
     
  9. excelerator

    excelerator Byte

    Registriert seit:
    13. Februar 2002
    Beiträge:
    32
    Matrixfunktionen\' in der Excel-Hilfe.

    Gruss
    Udo
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen