Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

per klick ergebnis von einer Zelle in jeweils eine Zeile tiefer schreiben





Frage

Hallo Excel-Profies, Gestern wurde mir schonmal wunderbar hier geholfen, heute habe ich ein neues Problem. Durch mehrere Optionsfelder habe ich ein sich änderndes Ergebnis in Feld B4. Wenn es geht hätte ich gerne das ergebnis per klick auf einer Befehlsschaltfläche in eine "Ergebnisliste" übertragen. Beispiel. Ergebnis in B4 ist 100€ und soll per klick in Feld B20 übertragen werden. Ändere ich jetzt die optionsfelder ist mein neues Ergebnis in B4 z. B. 200€ was dann per klick ein Feld tiefer in B21 eingefügt werden soll. Und das ganze am liebsten endlos so, dass sich die Summe der Ergebnis-Liste mit nach unten verschiebt, je nachdem wieviel einzelergebnisse man eingibt.

Antwort 1 von Proggi

du kannst eine Macroaufzeichnung starten, dann klicke mit rechts auf die Zelle, wähle kopieren, markiere die erste Zelle wo der neue Wert vor eingefügt werden soll. Wähle dann "kopierte Zellen einfügen" und nach "unten verschieben"

beende die Macroaufzeichnung, du kannst das Macro mal testweise ausführen und schauen obs so geht, ggfs kannst du einen Button einfügen und von diesem das Macro ausführen lassen (Ansicht > Symbolleisten > Steuerelementtoolbox einblenden)

Antwort 2 von nighty

hi all :-)

ein beispiel fuer eine schaltflaeche

der aufruf innerhalb der schaltflaeche koennte so lauten

Call Makroname

gruss nighty

Option Explicit
Sub Ranhaengen()
Dim zeile As Long
zeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
If zeile < 20 Then zeile = 20
If zeile = Rows.Count - 1 Then
MsgBox ("Das Zeilenende wurde erreicht,die Daten wurden nicht kopiert !")
Else
ActiveSheet.Cells(zeile, 2) = ""
ActiveSheet.Cells(zeile, 2) = ActiveSheet.Cells(4, 2)
ActiveSheet.Cells(zeile + 1, 2) = Application.WorksheetFunction.Sum(Range("B20:B" & zeile))
End If
End Sub


Antwort 3 von nighty

hi all :-)

noch ein wenig korrigiert :-))

gruss nighty

Option Explicit
Sub Ranhaengen()
Dim zeile As Long
With ThisWorkbook.ActiveSheet
zeile = .Cells(.Rows.Count, 2).End(xlUp).Row
If zeile < 20 Then zeile = 20
If zeile = .Rows.Count - 1 Then
MsgBox ("Das Zeilenende wurde erreicht,die Daten wurden nicht kopiert !")
Else
.Cells(zeile, 2) = .Cells(4, 2)
.Cells(zeile + 1, 2) = Application.WorksheetFunction.Sum(.Range("B20:B" & zeile))
End If
End With
End Sub


Antwort 4 von bokap1975

Hallo,

danke für die schnelle antwort. Hat allerdings nicht geklappt mit code da ich mich nicht gut genug auskenne wo der genau reinkommt und wie ich genau die schaltfläche dazu bringe den befehl auszuführen. Ich hab das jetzt mal wie folgt reinkopiert aber läuft nicht. Vielleicht könntet Ihr mir den (oder die) Fehler zeigen. Vielen, vielen, vielen dank.
grüße boris

Objekt Allgemein prozedur Ranhaengen

Option Explicit
Sub Ranhaengen()
Dim zeile As Long
With ThisWorkbook.ActiveSheet
zeile = .Cells(.Rows.Count, 2).End(xlUp).Row
If zeile < 20 Then zeile = 20
If zeile = .Rows.Count - 1 Then
MsgBox ("Das Zeilenende wurde erreicht,die Daten wurden nicht kopiert !")
Else
.Cells(zeile, 2) = .Cells(4, 2)
.Cells(zeile + 1, 2) = Application.WorksheetFunction.Sum(.Range("B20:B" & zeile))
End If
End With
End Sub

Private Sub CommandButton1_Click()
Call Ranhaengen
End Sub

Antwort 5 von nighty

hi boris :-)

eigentlich ist nichts falsch :-(

ist einzufuegen

alt+f11/einfuegen modul

commandbutten zuweisung ist auch ok

was passiert denn so :-))

wenn es excel 7 sein sollte bin ich ueberfragt,zuviele aenderungen und nicht abwaertskompatible

gruss nighty

Antwort 6 von bokap1975

hi nighty,

ich war so doof und habe versehentlich falsche Zellbezüge genannt. Kann ja dann nicht klappen. Hab das umgeändert und jetzt läufts.

Vielen Dank. Super von Dir!!!

grüße Boris

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: