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.

Teil einer Tabelle um eine Zeile nach unten verschieben
#1
Hallo allerseits
 
Ich bin immer noch Excel-Neuling und hoffe ihr könnt mir helfen :17:
 
 
Ich möchte in einer Tabelle mit 3 Spalten und fester Länge, die Daten aller 3 Spalten inklusive der aktiven Zelle um eine Zeile nach unten verschieben.
 
 
Also nur wenn die aktive Zelle in Spalte 1 liegt sollen, nach Klick auf einen Button, alle Daten in dieser Zeile und alle darunter um eine Zeile nach unten verschoben werden. Nach Möglichkeit zuerst Prüfung ob die Tabelle schon voll ist, wenn ja mit Abbruch und Meldung das die Tabelle voll ist.
 
Siehe auch Beispieltabelle im Anhang.


.xlsm   Verschieben-Test.xlsm (Größe: 32,14 KB / Downloads: 6)
Antworten Top
#2
Also genau das, was mit Rechtsklick auf die Zeilennummer und dann "Zellen einfügen" passiert?

Zeichne das doch mal auf! Und weise das dann einem Commandbutton zu.
Antworten Top
#3
Hallo lupo1

Ist leider nicht so einfach. In der Endversion befinden sich neben der Tabelle noch weitere Tabellen und die sollen so bleiben wie sie sind.

Gruß Sagulum
Antworten Top
#4
Das nennt man dann einen Designfehler. Aber:

Sub Makro1()
   If ActiveCell.Column = 1 Then Cells(ActiveCell.Row, 1).Resize(, 3).Insert xlDown
End Sub
Antworten Top
#5
Hallo lupo1

Deine Lösung haut bei mir nicht so richtig hin. Habe mir mal was ausgedacht, das klappt aber nur im ersten Schritt und auch nur zum Teil.
1. Die unteren Werte rutschen bis ans Ende der Tabelle.
2. Ich habe keine Idee, die restlichen Zeilen bis zur aktiven Zelle, auch eine Zeile runter zu kopieren.

Gruß Sagulum


.xlsm   Verschieben-Test.xlsm (Größe: 34,34 KB / Downloads: 4)
Antworten Top
#6
Hallo,

hast du es schon einmal damit versucht:

Code:
Sub Zeilen_verschieben()
    Range("C11:E11").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

(Bereich, der verschoben werden soll, gegebenenfalls anpassen!)
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#7
Hallo,

teste mal folgendes:


Code:
Private Sub CommandButton1_Click()
  Dim i
  Dim lngZ As Long
  If Not Intersect(Selection, Range("berErsteSpalte")) Is Nothing Then 'Wenn ausgewählte Zelle im Bereich
    lngZ = Cells(Range("berErsteSpalte").Rows.Count + Range("berErsteSpalte").Row, Range("berErsteSpalte").Column).End(xlUp).Row
    If lngZ - Range("berErsteSpalte").Row + 1 < Range("berErsteSpalte").Rows.Count Then
      If Selection <> "" Then
        i = Selection.Row
        Range(Cells(i + 2, 3), Cells(lngZ + 1, 5)).Value = Range(Cells(i + 1, 3), Cells(lngZ, 5)).Value
        Range(Cells(i + 1, 3), Cells(i + 1, 5)).ClearContents
      End If
    Else
      MsgBox "Daten können nicht weiter nach unten geschoben werden"
    End If
  Else
    MsgBox "Auswahl liegt nicht im definierten Bereich!"
  End If
End Sub




Und Deine Prüfung mit Worksheet_SelectionChange geht einfacher und ohne Schleife:


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

   'Prüfen ob der Klick im Bereich "berFilter" liegt, wenn nicht wird die Sub beendet
   If Not Intersect(Target, Range("berErsteSpalte")) Is Nothing Then
     If Application.CountA(Range("berErsteSpalte")) = Range("berErsteSpalte").Cells.Count Then
       MsgBox "Die Tabelle ist voll"
'        Exit Sub
     End If
   End If

End Sub
Gruß Atilla
Antworten Top
#8
Hallo atilla

Vielen Dank für deine Hilfe. Deine Lösung des Problems macht genau, dass was ich wollte. :18:

Auch den anderen möchte ich für ihre Hilfe danken.

Viele Grüße Sagulum
Antworten Top


Gehe zu:


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