Registriert seit: 01.04.2017
Version(en): 2010
Hallo und schöne Ostern zusammen,
per Button möchte ich einen Wert (der später für eine Diagrammabfrage genutzt wird) in eine Tabelle mit maximal zehn Einträgen schreiben. Das er sich immer die nächste freie Zelle nimmt,
bekomme ich auch noch hin. Nun ist meine Frage:
Wie (oder geht das überhaupt) kann ich ihm sagen, dass er, sobald die Zelle voll ist, er den ersten Wert löscht, die verbliebenen neun Einträge noch oben verschiebt und somit quasi die letzte
der zehn Zellen mit dem aktuellsten Wert beschreibt?
Vielen Dank und freundlichen Gruß
Bookshelf3011
Registriert seit: 13.04.2014
Version(en): 365
Hi,
Zitat:Das er sich immer die nächste freie Zelle nimmt,
bekomme ich auch noch hin.
Dann zeig das mal, dann kann man den Rest dazubasteln.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 01.04.2017
Version(en): 2010
Hallo BoskoBiati,
das ist der bislang von mir verwendete Code:
Code:
Option Explicit
Public Sub EintragfuerDiagramm()
Dim strDatum As String
Dim strWert As String
Dim strInbox As String
strDatum = InputBox("Bitte aktuelles Datum eingeben" & vbCrLf & "Format: dd.mm.yyyy")
strWert = InputBox("Bitte Wert eingeben")
If strDatum = "" Or strWert = "" Then
MsgBox "Es wurde kein Datum oder Wert eingegeben, bitte Vorgang wiederholen!"
Exit Sub
End If
Range("C" & Range("C10").End(xlUp).Row + 1).Value = strDatum
Range("D" & Range("D10").End(xlUp).Row + 1).Value = strWert
End Sub
Gruß Bookshelf3011
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
wenn da steht: "...aktuelles Datum...", ist es das heutige Datum?
Hat jetzt nichts mit dem eigentlichen Problem zu tun, aber das kann man bei der Gelegenheit auch mit berücksichtigen.
Gruß Atilla
Registriert seit: 13.04.2014
Version(en): 365
Hi,
ungetestet:
Code:
Option Explicit
Public Sub EintragfuerDiagramm()
Dim strDatum As String
Dim strWert As String
Dim strInbox As String
dim loLetzte as long
strDatum = InputBox("Bitte aktuelles Datum eingeben" & vbCrLf & "Format: dd.mm.yyyy")
strWert = InputBox("Bitte Wert eingeben")
loLetzte=cells(rows.count,3).end(xlup).row
If strDatum = "" Or strWert = "" Then
MsgBox "Es wurde kein Datum oder Wert eingegeben, bitte Vorgang wiederholen!"
Exit Sub
End If
if loletzte=10 then
rows(1).entirerow.delete
loletzte=9
end if
cells(loletzte+1,3)+1 = strDatum
cells(loletzte+1,3)+1 = strWert
End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
16.04.2017, 20:55
(Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2017, 20:56 von atilla.)
Hallo,
von mir eine Lösung ohne Löschen von Zeilen/Zellen:
Code:
Public Sub EintragfuerDiagramm()
Dim lngZ As Long
Dim strDatum As String
Dim strWert As String
Dim strInbox As String
lngZ = Range("C10").End(xlUp).Row
strDatum = InputBox("Bitte aktuelles Datum eingeben" & vbCrLf & "Format: dd.mm.yyyy")
strWert = InputBox("Bitte Wert eingeben")
If strDatum = "" Or strWert = "" Then
MsgBox "Es wurde kein Datum oder Wert eingegeben, bitte Vorgang wiederholen!"
Exit Sub
End If
If lngZ > 1 Then
Range("C" & lngZ + 1).Value = strDatum
Range("D" & lngZ + 1).Value = strWert
Else
Range("C2:D9").Value = Range("C3:D10").Value
Range("C10").Value = strDatum
Range("D10").Value = strWert
End If
End Sub
Ich gehe davon aus, dass Deine Daten ab Zeile 1 in Spalte C stehen und in Zeile 1 Überschriften sind.
Mit dem Datum musst Du Dich äußern.
Gruß Atilla
Registriert seit: 01.04.2017
Version(en): 2010
Hallo atilla,
mit dem Datumsfeld hast du recht, hier soll das aktuelle Datum stehen. Wenn ich deinen Code verwende, trägt mir Excel die Daten zuerst in "C10-D10" ein und bei
erneutem Eintrag verschiebt er diese in "C9-D9". Soweit genau das was ich gesucht habe...
Trage ich jetzt nun allerdings einen dritten Wert ein, überschreibt er mir die beiden vorhandenen, lässt also nie mehr als zwei Einträge zu. Kann es sein, dass ich irgendetwas
im Code berücksichtigen muss?
Vielen Dank und freundlichen Gruß
Bookshelf3011
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo,
Hast Du meine Vorgaben beachtet, welche am Ende meines Beitrags stehen?
Sonst, bitte ein Beispiel einstellen.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• Bookshelf3011
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
wenn das "aktuelle Datum" das heutige Datum ist, kannst Du auch einfach ohne Inputbox schreiben:
strDatum = Date
Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
• Bookshelf3011
Registriert seit: 01.04.2017
Version(en): 2010
Hallo atilla,
jetzt funktioniert es. Ich musste nur folgendes anpassen (wahrscheinlich meintest du das auch...!?), damit es wie gewünscht funktioniert.
Vorher:
Code:
Public Sub EintragfuerDiagramm()
Dim lngZ As Long
Dim strDatum As String
Dim strWert As String
Dim strInbox As String
lngZ = Range("C10").End(xlUp).Row
Nachher:
Code:
Public Sub EintragfuerDiagramm()
Dim lngZ As Long
Dim strDatum As String
Dim strWert As String
Dim strInbox As String
lngZ = Range("C1:C10").End(xlUp).Row
Vielen Dank und einen schönen Abend euch allen.
Gruß Bookshelf3011