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.

Inhalte nach oben verschieben
#1
Hallo zusammen,

ich hänge mal wieder fest Google und die Sufu waren auch keine Hilfe, vllt auch weil ich mit den falschen Fachbegriffen suche.

Zu meinem Problem ich hab eine Tabelle(Ereignisprotokoll) die ich während einer Schicht mit Ereignissen fülle. Sobald ein Ereignis abgeschlossen ist, kann ich die Zeile per Button löschen.
Mein Wunsch ist das nach dem Löschen der Inhalt der nächsten tieferen Zeilen eins nach oben Verschoben werden .z.B. Zeile A4 bis I4 wird gelöscht, A5 bis I5 soll nach oben rutschen, A6 bis I6 rutscht auf A5 bis I5, etc.
Habe es mit ISTLEER versucht aber da wird nur die Zelle jeweils nach oben kopiert und die Ursprungszeile nicht geleert so das die Nächste nachrückt. Ist das mit ISTLEER so realisierbar oder ist mein Lösungsansatz schon der falsche Weg? Bin für Denkanstösse dankbar.

einen schönen Sonntag
Gruß Micha
Antworten Top
#2
Hallo Micha,
Range("A4:I4").Delete xlUp
Gruß Uwe
Antworten Top
#3
Moin!
Da es ja um die jeweilige Zeile geht, spare ich noch ein paar Bytes Speicherplatz:
Rows(4).Delete

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Hallo Ralf,

so sicher wäre ich mir da nicht. In der ausführlicheren Beschreibung geht es ja immer nur um die Bereiche in A:I.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo zusammen,

erst mal vielen dank für die schnelle Reaktion. Ich denke ich hab mich da verworren ausgedrückt. die Tabelle als solche soll unangetastet bleiben ich habe neben jeder zeile einen
commandbutton der die Zellen leert:

Private Sub Zeile4_Click()
Range("A4:I4").ClearContents
End Sub

jetzt fehlt mir halt die Verschiebung der Inhalte der Zellen A5:I5 in die Zellen A4:I4 und halt der darunterliegend Reihen auch jeweils eine Reihe hoch. Habe gerade mal versucht x1UP von Uwe irgendwie unterzubringen aber will nicht so recht gelingen.
Delete Befehle nutzen mir leider nicht da sie ja alles löschen nicht nur die Inhalte.

Gruß Micha
Antworten Top
#6
Hallo Micha,

nicht x1UP, sondern xlUP. Wink

Aber teste mal so:
Private Sub CommandButton1_Click()
 Dim lngEnde As Long
 Dim varBereich As Variant
 lngEnde = UsedRange.Rows.Count + UsedRange.Row - 1
 varBereich = Range("A5:I" & lngEnde).Value
 Range("A4").Resize(UBound(varBereich, 1), UBound(varBereich, 2)).Value = varBereich
 Cells(lngEnde, 1).Resize(, UBound(varBereich, 2)) = ""
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • kraehenseele
Antworten Top
#7
Hallo Uwe,

sehr geil auf die ersten paar klicks genau das was ich wollte :28: wird es aber nochmal ausführlich testen, vielen Dank erst Mal.

Könntest du mir noch kurz und knapp für einen bemühte Laien erklären was da genau passiert? Versuche aus meinen selbst auferlegten Projekten immer auch einen kleinen Lernerfolg zu ziehen.
Find ich spaßiger als diverse Schulungen (Firmen intern und VHS) Wo nur bereits bekanntes wiederholt oder an Praxis fremden Bespielen gebastelt wird. :76:

Gruß Micha
Antworten Top
#8
Hallo Micha,

ich bin zwar nicht Uwe, aber mal in aller Kürze eine Erklärung.

Die Daten ab A5 werden eine Zeile nach oben platziert und anschließend das Ende geleert.

Nimm mal in die Überwachung z.B.
varBereich
Range("A5:I" & lngEnde).Address
Cells(lngEnde, 1).Resize(, UBound(varBereich, 2)).Address
lasse den Code mit F8 schrittweise durchlaufen und schaue Dir die Überwachungsergebnisse an.
.      \\\|///      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:
  • kraehenseele
Antworten Top
#9
danke schauan werd ich machen an die Funktion hat ich ja noch gar nicht gedacht.
Dann kann der Beitrag von mir aus gerne geschlossen werden

Gruß Micha
Antworten Top


Gehe zu:


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