Excel 2003, eingebene Werte festhalten und automatisch ein tiefer rutschen

Rollensatz

Admiral
Registriert
Jan. 2006
Beiträge
8.819
Hallo,

ich möchte eine Tabelle anfertigen die die Werte speichert die ich eingebe (feststellt); und dann automatisch eine Zeile weiter nach unter rutscht für den nächsten wert.

Also zb.

ich gebe in A1 den 10 ein, dann soll in C1 der eingebene Wer von 10 erscheinen und gleichzeitig festgestellt sein und automatisch mit C2 beginnen.

Wenn ich dann in A1 den Wert 10 lösche und den Wert 12 eingebe, soll in C1 der Wert 10 erhalten bleiben und in C2 der Wert 12 Stehen und ebenfall festgestellt sein und wieder eins automatisch tiefer rutschen.. und immer so weiter.

Am ende Soll die tabelle so aussehen:

A1
(vorher eingegeben;10;12;14;20) C1 10
C2 12
Ist das mit excel überhaupt möglich? C3 14
C4 20

hoffe mal ihr wißt was ich meine, danke
 
Hallo Rollensatz,

ich kenne da keine direkte Funktion, mit der man so etwas in Excel umsetzen könnte. Aber ich bin ziemlich sicher, dass da ein VBA Makro mit ein wenig Event Handling (On Change Ereignis bezogen auf A1, OnKey Ereignis) und anschließender kurzer Routine, die einfach alle Werte in Spalte C um eine Zeile nach unten verschiebt, da ganze Arbeit leisten könnte.

Gruß

Maaspuck
 
ich habe irgendwie schon mit solch einer Antwort gerechnet, hmm naja muss ich mich dann eben nochmal mit VBA beschäftigen.

Gibt es im Inet ne gute Site wo viele Funktionen für VBA beschrieben sind?

dank dir, ansonsten wenn jemand ne schnelle Lösung ohne VBA hat, immer her damit!
 
Moin Rollensatz,

... es gibt keine (schnelle) Lösung ohne VBA!

Ansonsten: Einfach einmal aufzeichnen und schau die die verwendeten Funktionen in der Hilfe an, die ist wirklich recht gut!
 
Hi Rollensatz,

aufzeichnen ist gut zum lernen, allerdings kommt man meines Erachtens nicht um Schleifentechnik drumrum (nicht aufzeichenbar)

Anbei mal mein Entwurf...

und der Code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Zeilenzaehler As Long
    Dim Zielzelle As Range
    If Target.Row = 1 And Target.Column = 1 Then  ' Erkennung ob Zelle A1 geändert
        For Each Zielzelle In Range("C1:C50000")   ' Ermittlung der nächsten freien Zeile in Spalte C
            If Zielzelle = "" Then
                Zielzelle = Range("A1")            ' Wert hineinschreiben
                Exit For
            End If
        Next Zielzelle
    End If
End Sub

Gruß Georg
 

Anhänge

Zuletzt bearbeitet:
danke für die Mühe, hatte bis jetzt noch keine Zeit mich darum zu kümmern, bin aber für Vorschläge auch weiterhin offen :).

Sobald dieses "Projekt" weitergeht werde ich es schreiben.

Aber dennoch wer Vorschläge hat, immer her damit.

Und noch was, ich habe noch MS Works 9.0 vielleicht gehts damit ja besser - kennt sich da jemand aus?
 
Hallo Rollensatz,

Rollensatz schrieb:
danke für die Mühe, hatte bis jetzt noch keine Zeit mich darum zu kümmern, bin aber für Vorschläge auch weiterhin offen :).

Aber dennoch wer Vorschläge hat, immer her damit.

...da gibt man sich Mühe, liefert eine (meiner Meinung nach) funktionierende Lösung, und bekommt eine solchen Spruch geliefert. Hat man sich denn mal die 'Mühe' gemacht die Excel-Datei zu testen ???

Die fertige Excel-Datei war Post #5 angehängt, wäre in einer Minute getestet...

Nicht gerade motivierend...

Georg
 
Zuletzt bearbeitet:
Sorry, hast recht wenn du dir die mühe gemacht hast, dann werde ich mir die Zeit nehmen und das Ergebnis posten, gleich morgen früh werde ich es testen.


EDIT:

@ Hackl-Schorsch

Klasse vielen dank genau sowas habe ich gebraucht.
 
Zuletzt bearbeitet:
@ Hackl-Schorsch

bin gerade wieder dabei und versuche eine zweite Bedingung in die VBA einzufügen, quasi das selbe nochmal komme aber nicht drauf.

Hätte gerne eine Maske:

Wenn ich eine "1" z.b. in Zelle "A1" eintippe soll die Zahl die in Zelle "A4" steht in Der Zelle "D4" nochmals erscheinen und automatisch festgestellt werden und eine Zelle tiefer rutschen.

(so ähnlich wie jetzt)

Wenn ich aber in der Zelle "A1" eine "0" eintippe soll dann die Zahl in der Zelle "A4" in der Zelle "E4" erscheinen und automatisch festgestellt werden und eine Zelle tiefer rutschen.

irgendwie verstehe ich das nicht, kannst du mir da nochmal helfen... danke :)

oder kennst du eine gute Inet Seite wo ich sowas im Eigenstudium herausfinden kann, ohne mich Wochenlang einarbeiten zu müssen? (Dazu fehlt mir einfach die Zeit)
 
Hi Rollensatz

Rollensatz schrieb:
@ Hackl-Schorsch

bin gerade wieder dabei und versuche eine zweite Bedingung in die VBA einzufügen, quasi das selbe nochmal komme aber nicht drauf.

Hätte gerne eine Maske:

Wenn ich eine "1" z.b. in Zelle "A1" eintippe soll die Zahl die in Zelle "A4" steht in Der Zelle "D4" nochmals erscheinen und automatisch festgestellt werden und eine Zelle tiefer rutschen.

(so ähnlich wie jetzt)

Wenn ich aber in der Zelle "A1" eine "0" eintippe soll dann die Zahl in der Zelle "A4" in der Zelle "E4" erscheinen und automatisch festgestellt werden und eine Zelle tiefer rutschen.

Du machst ja seltsame Sachen... ;-)

Hm, so gemeint wie in der Anlage ?

Ansonsten: VBA lässt sich ohne wochenlange Arbeit leider nicht lernen (Zumindest nicht so weit, um für fast alle Problemstellungen eine schnelle Lösung zu haben). Aber das Ergebnis lohnt - man kann fast alles machen...

Gruß GEorg

Gruß Georg
 

Anhänge

uiuiui :)

haste echt gemacht? habe es mir schon angeschaut, tausend dank.

Klasse, nur schade das ich im moment keine Zeit dafür habe, habe zurzeit ein 12-16 std. Tag.

Werde eventuell wieder auf dich zukommen (wenn ich darf :)),wenn ich ein erneutes Problem habe, versuche es aber immer erst im Eigenstudium schaffen und mir logisch zu erschließen.


EDIT:
Hallo, Hackl-Schorsch

ich hätte gerne noch eine Abängerung komme aber wiedermal nicht weiter :(,(ein paar Abänderung habe ich gemacht):
wenn ich in der Zelle "B10" eine "1" eintippe, erscheint in der Zelle "H6" die Zahl, die ich zuvor in der Zelle "B8" eingetippt habe.
wenn ich in der Zelle "B10" eine "0" eintippe, erscheint in der Zelle "I6" die Zahl, die ich zuvor in der Zelle "B8" eingetippt habe.

Diese Zahl in der Zelle "H6" wird ja festgestellt und beim nachsten eintippen einer "1" wird wird ja die Zelle "H7" angesprochen.

Abänderung:

Wenn ich in der Zelle "B10" die "1" eintippe und in der Zelle "B8" die Zahl, die in "H6" erscheinen soll, soll in der Zelle ""I6" eine "0,00" erscheinen. Das Feld soll dann nicht mehr benutzbar sein, auch wenn ich im nächsten Vorgang in der Zelle "B10" eine "0" eintippe.

also: Zelle "H6" eine "zb. 7" dann soll in der Zelle "I6" eine "0,00" stehen.

hoffe ich habe es relativ eindeutig beschrieben.

Ich habe so eine kleine Maske erstellt, ist es eigentlich auch möglich einen Button in der Zelle "B14" einzufügen, die sobald ich diese betätige erst dann die ganzen Aktualisierungen in den Zellen "H6" und "I6" und die weiter laufenden Zellen "H7" und "I7" usw. durchführt?

Bis jetzt ist es ja so das sobald ich in der Zelle eine Zahl eintippe, wird diese ja sofort in der zuvor definierten Zelle eingefügt.

Da ich wenig Ahnung habe wie lange sowas alles dauert, kannste ruhig schreiben das du im Moment dafür keine Lust oder Zeit hast da es zu aufwenig ist.

Wenn du es schaffen könntest wäre es natürlich super :)
 
Zuletzt bearbeitet:
Zurück
Oben