Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Selbst anpassende Tabelle
#1
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
Antworten Top
#2
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.
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
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.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Bookshelf3011
Antworten Top
#6
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
Antworten Top
#7
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
Antworten Top
#8
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:
  • Bookshelf3011
Antworten Top
#9
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:
  • Bookshelf3011
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste