Wie kann ich mithilfe eine Excel Buttons einen Zellinhalt im aktuellen Feld löschen und automatisch ein Feld nach Rechts verschieben?
Wenn ich Quasi eine spalte mit offenen Rechnungen habe und eine Spalte rechts daneben eine spalte mit bezahlt.
Wie genau wäre hier der Makro befehl um per klick das feld aus den offenen Rechnungen zu löschen und ein Feld nach Rechts in bezahlt zu schieben ?
Vielen vielen dank für die Hilfe !
1 Antwort
Angenommen die Spalte B wäre dies mit Offenen Rechnungen und C bezahlt
Range("C1").Value = Range("B1").Value 'Zunächst den Wert nach rechts kopieren.
Range("B1").Value "" 'dann anschließend die Zelle löschen.
Das Gleichheitszeichen war wohl 'untergegangen'.
Range("G1").Value = ""
Man kann auch die ganze Spalte zuweisen:
ALLES was in Spalte H steht wird nun nach Spalte G geschrieben. ABER es MÜSSEN die beiden gleich viele Anzahl zellen haben. KEIN (oder NUR identische) "Merge" von Zellen.
Range("G:G").Value = Range("H:H").Value
ich habe es wohl etwas ungünstig formuliert.
Ich glaube warum es aktuell nicht funktioniert ist, da es um die aktive Zelle geht die ein Feld nach Rechts geschoben werden soll.
In meinem Fall einzelne Zellen aus G nach H.
Das Problem ist ja aber das es bei G1 nach H1 ja auch nur speziell auf diese Zellen ausgelegt ist. Wie genau bekomme ich es hin, dass es um die Aktive Zelle bzw markierte Zelle geht, die einfach ein Feld nach rechts geschoben werden soll ?
Tut mir leid für die Mühe bzw meine ungünstige Fomulierung.
hier habe ich es Makro aufzeichen lassen, was die Zelle erst kopiert, dann rechts daneben einfügt und dann die erste Zelle löscht.
Range("G40:G41").Select
Application.CutCopyMode = False
Selection.Copy
Range("H40:H41").Select
ActiveSheet.Paste
Range("G40:G41").Select
Application.CutCopyMode = False
Selection.ClearContents
das ganze müsste jetzt nur irgendwie unabhängig von der jeweiligen Zelle anwendbar sein. Sprich auf der Aktiven Zelle (irgendeine Zelle aus G) eine Zelle rechts daneben nach H
In
Selection.Address
steht die einzelne Zelle (Adresse) $B$1 oder auch der Bereich. $B$1:$B$10
je nach dem wieviel markiert wurde.
ACHTUNG: Man muss aber das Sheet auf dem man sich befindet "aktive" haben.
Ggf Worksheets("Tabelle1").Activate
voranstellen.
Wenn man es mit Copy löst dann kann man auch bei Bereichen lediglich das Ziel anwählen und Pasten
Range("G40:G41").Copy
Range("H40").Pastespecial
Application.CutCopyMode = False
"Select" im Besten Fall vermeiden, da dies "lange" dauert.
Range(Selection.address).Copy
Range("H40").Pastespecial
Application.CutCopyMode = False
ich bin was das Makro Coden angeht leider ein blutiger anfänger, alles was ich eigentlich nur brauche ist ein funktionierender Code der eine von mir manuell markierte Zelle automatisch eine Zelle nach rechts verschiebt.
Leider bin ich nach deinem Text jetzt ganz raus und bekomme nichts funktionierendes hin :-(
Wenn du so einen funktionierenden Code hier einfügen würdest, wäre ich wirklich sehr dankbar da es mir viel Arbeit ersparen würde.
Dieser Code hier von dir :
Range("C1").Value = Range("B1").Value '
Range("B1"). = Value ""
funktioniert ja zum Beispiel nur für die Zelle C1 nach B1. Perfekt wäre allerdings wenn es nicht um eine Bestimmte Zelle geht, sondern um eine manuell markierte Zelle.
Natürlich kann IM MOMENT wo man eine Zelle anklickt das "Select_Event" dazu nutzen sofort den Code ausführen zu lassen. Dies ist aber 'gefährlich', da dies sichlich nur auf bestimmte Zellen anzuwenden ist und nicht auf alle die man per Spaß ankllickt. Die Event Implementierung muss sehr sorgfältig verwendet werden, da man auch rekursives Verhalten produzieren kann, welches dann im Zweifel 'ewig' läuft. Es ist nötig, dass die Implementierung "genau" verstanden wird bevor man dies verwendet. ..Ergo, erst mal die VBA Kenntnisse von Anfänger auf "geübter" Anfänger verbessern. Den Code den ich posten könnte würde weitere Fragen nach sich ziehen. Dann wird es ein VBA Lehrgang. Also, alles gibt es bereits als Tutorials auf Youtube.
Erstmal vielen dank für die Hilfe, und das scheint auch alles ziemlich schlüssig.
Wenn ich es jedoch als Makro erstelle, in meinem Fall auf Zelle G nach H, sagt er mit folgendes :
Sub Schaltfläche8_Klicken()
Range("G1").Value = Range("H1").Value
Range("G1").Value ""
End Sub
"Fehler beim Komilieren :
Unzulässige Verwendung einer Eigenschaft.
:(