also eine Leerzeile einfügen oder wie ist das zu verstehen? Oder die Die gerade in Zeile 4 vorgenommenen Änderungen auch mit nach unten kopieren?
Gruß Ich
Und noch was... Wird der Bereich unter dem "Eingabebereich" immer länger? Müssen also auch die alten Einträge noch verfügbar sein oder sind nur die jeweils letzten 10/11 Einträge interessant?
Hallo danke Danke erstmal für die Interesse. Die eingegebe Zahl soll/muss auch nach untenspringen. So wie alle anderen dadrunter. Mir sind immer die letzten 10 zahlen wichtig.
C4= 4 Dann kommt in C5 = 5 und der Wert 5 (von A5) wird in A6 verschoben, und so geht das die ganze Tabelle entlang nach unten.
[quote pid='49569' dateline='1471354570'] Hallo luffy, Ich habe mal versucht mit hilfe von Tabellen darzustellen wie ich es mir vorstelle. Ich hoffe es ist deutlich genug. Ansonsten könnteich es telefonisch erklären.
ich hab schon verstanden wie du das möchtest, ich kann es dir aber nicht realisieren da ich, wie schon gesagt mich nicht gut mit VBA auskenne, dafür bin ich hier noch zu kurz dabei :S Tut mir leid, einfach bisschen Geduld hier sind Helfer die haben das bestimmt bald :)
eventuell geht es mit diesem Code. Die Daten werden um 1 nach unten geschoben, die Eingabe steht dann in Zeile 5. Eine Zahl in Zeile 14 wird dabei überschrieben.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn der Eintrag in genau eine Zelle in Zeile 4 erfolgt, dann If Target.Row = 4 And Target.Cells.Count = 1 Then 'Eintraege dieser Spalte zeile 4 bis 13 kopieren Range(Cells(4, Target.Column), Cells(13, Target.Column)).Copy 'kopierte Werte in Zeile 5 bis 14 einfuegen Range(Cells(5, Target.Column), Cells(14, Target.Column)).PasteSpecial Paste:=xlValues 'Ende Wenn der Eintrag in genau eine Zelle in Zeile 4 erfolgt, dann End If End Sub
Der Code gehört in das Codemodul der Tabelle.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • SimbaTonic
eventuell geht es mit diesem Code. Die Daten werden um 1 nach unten geschoben, die Eingabe steht dann in Zeile 5. Eine Zahl in Zeile 14 wird dabei überschrieben.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn der Eintrag in genau eine Zelle in Zeile 4 erfolgt, dann If Target.Row = 4 And Target.Cells.Count = 1 Then 'Eintraege dieser Spalte zeile 4 bis 13 kopieren Range(Cells(4, Target.Column), Cells(13, Target.Column)).Copy 'kopierte Werte in Zeile 5 bis 14 einfuegen Range(Cells(5, Target.Column), Cells(14, Target.Column)).PasteSpecial Paste:=xlValues 'Ende Wenn der Eintrag in genau eine Zelle in Zeile 4 erfolgt, dann End If End Sub
Der Code gehört in das Codemodul der Tabelle.
Hallo, Ich habe davon keine Ahnung, wie und wo ich diesen Code eingeben soll. Ich habe sogut wie keine ahnung von excel . Es wäre super nett wenn du mir diesen Code in die tabel einsetzt. mit der Hoffnung das es endlich klappt. Darüber würde ich micht sehr freuen.
17.08.2016, 23:59 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2016, 00:01 von Ego.)
Hallo Simba,
so wie in der Anlage?
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn der Eintrag in genau eine Zelle im Bereich A3:B3 erfolgt und eine Zahl ist, dann If Not Intersect(Target, Range("A3:C3")) Is Nothing Then If Intersect(Target, Range("A3:C3")).Cells.Count = 1 Then If IsNumeric(Intersect(Target, Range("A3:C3")).Value) Then 'kopiere Werte aus Zeile 4 bis 13 Range(Cells(4, 1), Cells(13, 3)).Copy 'kopierte Werte in Zeile 5 bis 14 einfuegen Range(Cells(5, 1), Cells(14, 3)).PasteSpecial Paste:=xlValues 'Werte in zeile 4 löschen Range(Cells(4, 1), Cells(4, 3)).Value = "" 'den eingegebenen wert nach unten kopieren Intersect(Target, Range("A3:C3")).Cells.Offset(1, 0) = Intersect(Target, Range("A3:C3")).Value 'den Text "Eingabe" in die Zelle schreiben Intersect(Target, Range("A3:C3")).Value = "Eingabe" End If End If End If End Sub
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:1 Nutzer sagt Danke an Ego für diesen Beitrag 28 • SimbaTonic
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn der Eintrag in genau eine Zelle im Bereich A3:B3 erfolgt und eine Zahl ist, dann If Not Intersect(Target, Range("A3:C3")) Is Nothing Then If Intersect(Target, Range("A3:C3")).Cells.Count = 1 Then If IsNumeric(Intersect(Target, Range("A3:C3")).Value) Then 'kopiere Werte aus Zeile 4 bis 13 Range(Cells(4, 1), Cells(13, 3)).Copy 'kopierte Werte in Zeile 5 bis 14 einfuegen Range(Cells(5, 1), Cells(14, 3)).PasteSpecial Paste:=xlValues 'Werte in zeile 4 löschen Range(Cells(4, 1), Cells(4, 3)).Value = "" 'den eingegebenen wert nach unten kopieren Intersect(Target, Range("A3:C3")).Cells.Offset(1, 0) = Intersect(Target, Range("A3:C3")).Value 'den Text "Eingabe" in die Zelle schreiben Intersect(Target, Range("A3:C3")).Value = "Eingabe" End If End If End If End Sub
Hallo Ego, Es funktioniert einwandfrei. 1000 Dank für die hilfe. Wäre es möglich das die zahlen einfach weiter runter springen. Ohne das sie ab der Zeile 14 verschwinden.
In einem Beitrag hattest du geschrieben, dass dich nur die 10 letzten Werte interessieren daher der Vorschlag.
Wenn du den zu kopierenden Bereich nur erweitern willst, kannst du das selbst im Programm machen: Alle Stellen, an denen im Programm 13 oder 14 steht, die Ziffer um den gewünschten Wert erhöhen.
Ansonsten benötigen wir noch Vorgaben wie mit den hinteren Zellen umzugehen ist.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.