Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1160to1164
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zellen verschieben

zellen verschieben
Tom
Hallo
ich als VBA Frischling habe mir folgendes vorgestellt, ich weiß allerdings nicht ob es überhaupt realisierbar ist.
Zelle wird beschrieben
Wird in Spalte B oder C (ab Zeile 6) etwas eingetragen so soll nachfolgendes (im Bereich Spalte B bis AAA) um 1 zeile weiter nach unter verschoben werden.
Zellinhalt wird gelöscht
Wird in Spalte B oder C (ab Zeile 6) der Zellinhalt gelöscht, so soll nachfolgendes (im Bereich Spalte B bis AAA) um 1 Zeile nach oben verschoben werden.
Bei dem verschieben der Zellinhalte sollen auch die jeweiligen farblichen Hinterlegungen und Rahmen der Zellen im Verschiebebereich mit verschoben werden.
Das ganze sollte immer aktiv sein.
Ist soetwas überhaupt machbar?
Gruß Tom

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zellen verschieben
16.06.2010 13:09:49
fcs
Hallo Tom,
man kann mit Ereignismakros einiges realisieren. Ich bin aber nicht sicher, ob ich dich zu 100% verstanden habe.
Die nachfolgende Prozedur fügst du im VBA-Editor unter der Tabelle ein, in der die Aktionen stattfinden sollen. Die 255 im Code muss du die an die gewünschte Spaltenzahl anpassen. Habe hier Excel 2003, da ist die max. Spalte "nur" IV.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row >= 6 And Target.Cells.Count = 1 Then
Select Case Target.Column
Case 2, 3
If IsEmpty(Target) Then
Range(Cells(Target.Row, 2), Cells(Target.Row, 255)).Delete shift:=xlShiftUp
Else
Range(Cells(Target.Row, 2), Cells(Target.Row, 255)).Insert shift:=xlShiftDown
End If
Case Else
'do nothing
End Select
End If
End Sub

Gruß
Franz
Anzeige
AW: zellen verschieben
17.06.2010 09:59:18
Tom
Hallo Franz,
ich denke du hast mich richtig verstanden. Nur funktioniert der Code bei mir nicht
Anbei mein Code:
ich schreib mal dazu was ich glaube was es bedeutet
Private Sub worksheet_change_zeilen_schieben(ByVal target As Range)
If target.Row >= 6 And target.Cells.Count = 1 Then
> wenn zeilennummer größer gleich 6 dann ist der code aktiv
> target.Cells.Count = 1 Then  Spalte B oder C gewählt
If IsEmpty(target) Then
> ist zelle in spalte b oder c von zeile ... leer dann mache nachfolgendes sonst siehe bei else
Range(Cells(target.Row, 2), Cells(target.Row, 16000)).Delete shift:=xlShiftUp
>bereich aktuelle zeile von spalte 2(b) bis 16000 lösche ?
Else
Range(Cells(target.Row, 2), Cells(target.Row, 16000)).Insert shift:=xlShiftDown
> bereich siehe oben einfügen
End If
Case Else
'do nothing
End Select
End If
End Sub
shift:=xlShift wenn ich den code ausführe bleibt alles gleich als wenn der code nicht vorhanden ist . Also es werden keine zellen nach oben oder unten verschoben oder eingefügt
Gruß Tom
Anzeige
AW: zellen verschieben
17.06.2010 11:58:46
fcs
Hallo Tom,
ich weiss jetzt nicht was du verkehrt gemacht hast.
Hier ein unter Excel 2003 erstelltes Beispiel. Unter 2007 muss du die Datei dann im Format mit Makros (xlsm) speichern.
https://www.herber.de/bbs/user/70115.xls
Ansonsten funktioniert das Makro so wie von dir beschrieben. Der Shift-Parameter sorgt dafür, dass Excel beim Löschen/Einfügen von Zellen die vorhandenen Zellen in die gewünschte Richtung verschiebt.
Gruß
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige