per klick ergebnis von einer Zelle in jeweils eine Zeile tiefer schreiben
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 schreiben
Antwort 1 von Proggi vom 08.08.2019, 12:20 Options
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 vom 08.08.2019, 12:51 Options
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 vom 08.08.2019, 12:58 Options
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 vom 08.08.2019, 14:44 Options
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 vom 08.08.2019, 15:34 Options
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 vom 08.08.2019, 15:42 Options
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