Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
964to968
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
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeile verschieben

Zeile verschieben
06.04.2008 17:45:00
Horst
Hallo,
ich habe mir eine kleine Routine geschrieben, welche eine angewählte Zeile
nach unten verschiebt.
Ich denke mal das ganze müsste noch einfacher gehen, aber es funktioniert.
Allerdings möchte ich dass immer die Zelle angewählt bleibt, welche auch verschoben wird.
Das mache ich am Ende mit Cells(ActiveCell.Row - 1, 1).Select
Das geht jedoch nur, wenn ich vorher eine Zeitverzögrung von einer Sekunde einbaue ?
Kann mir einer erklären was da faul ist ?
Vielen Dank im Voraus

Private Sub SpinButton1_SpinDown()
If Cells(ActiveCell.Row, 1) = "" Then
MsgBox "Bitte zuerst einen ausgefüllte Zeile markieren", vbInformation, "Information"
Exit Sub
End If
Application.ScreenUpdating = False
'Unter der aktuellenZeile eine neue Zeile einfügen
Cells(ActiveCell.Row + 2, 1).Select
Selection.EntireRow.Insert
'Die Quellzeile in die neue leere Zeile einfügen
With Worksheets("Test")
.Range(.Cells(ActiveCell.Row - 2, 1), .Cells(ActiveCell.Row - 2, 2)). _
Copy Worksheets("Test").Cells(ActiveCell.Row, 1)
End With
'Die Quellzeile löschen
Cells(ActiveCell.Row - 2, 1).EntireRow.Delete Shift:=xlUp
Application.ScreenUpdating = True
Verzögerung (1)
Cells(ActiveCell.Row - 1, 1).Select
End Sub


9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile verschieben
06.04.2008 19:47:00
Ramses
Hallo
Irgendwie werde ich aus deinem Code nicht schlau

Sub Cut_Row()
'Verschiebt die aktuelle Zeile um eine Zeile nach unten
Rows(ActiveCell.Row).Cut
Rows(ActiveCell.Row + 2).Insert
End Sub



Sub Insert_Row()
'Fügt vor der activen Zeile eine neue ein
'und verschiebt damit die aktuelle um eine nach unten
Rows(ActiveCell.Row).Insert
End Sub


Das sollte doch reichen ?
Dein Komfortzeug kannst du ja drumherum bauen,.... aber der Rest ist dann wirklich nicht nötig
Gruss Rainer

Anzeige
AW: Zeile verschieben
06.04.2008 20:11:00
Horst
Hallo Rainer
vielen Dank für Deine Antwort.
Ja Dein Code ist kürzer und verständlicher als mein Gewurschtel.
Hat aber auch funktioniert.
Aber auch bei Deinem Code bekomme ich es nicht hin, dass danach die
verschobene Zelle markiert ist.
Nicht einmal Range("A2").Select führt zu einem Rahmen um die Zelle A2
Vielen Dank im Voraus
Gruß Horst
'Verschiebt die aktuelle Zeile um eine Zeile nach unten
Rows(ActiveCell.Row).Cut
Rows(ActiveCell.Row + 2).Insert
Range("A2").Select

AW: Zeile verschieben
06.04.2008 20:18:00
Ramses
Hallo

Sub Cut_Row()
'Verschiebt die aktuelle Zeile um eine Zeile nach unten
Rows(ActiveCell.Row).Cut
Rows(ActiveCell.Row + 2).Insert
Cells(ActiveCell.Row + 1, 1).Select
End Sub


Gruss Rainer

Anzeige
AW: Zeile verschieben
06.04.2008 20:24:00
Horst
Hallo Rainer,
vielen Dank.
Warum auch immer, ich brauche noch den Code
ActiveSheet.Select
Auf jeden Fall gehts jetzt.
Schönen Abend noch und vielen Dank
Gruß Horst
Application.ScreenUpdating = False
'Verschiebt die aktuelle Zeile um eine Zeile nach unten
Rows(ActiveCell.Row).Cut
Rows(ActiveCell.Row + 2).Insert
Cells(ActiveCell.Row + 1, 1).Select
ActiveSheet.Select
Application.ScreenUpdating = True

AW: Zeile verschieben
06.04.2008 20:04:58
Erich
Hallo Horst,
probier mal das:

Option Explicit
Private Sub SpinButton1_SpinDown()
Dim lngZ As Long
lngZ = ActiveCell.Row
If Cells(lngZ, 1) = "" Then
MsgBox "Bitte zuerst eine ausgefüllte Zeile markieren", vbInformation, "Information"
Else
'     Application.ScreenUpdating = False  ' nach dem Testen aktivieren?
Rows(lngZ).Cut
Rows(lngZ + 2).Insert
ActiveSheet.Select
Cells(lngZ + 1, 1).Select
Application.ScreenUpdating = true
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Zeile verschieben
06.04.2008 20:18:49
Horst
Hallo Erich,
ja Dein Code geht. Vielen Dank
Ich denke, der entscheidende Code ist
ActiveSheet.Select
Warum das nötig ist, verstehe ich zwar nicht, aber hauptsache es klappt.
Nochmals vielen Dank
Gruß Horst

AW: Zeile verschieben
06.04.2008 20:21:00
Ramses
Hallo
"...ActiveSheet.Select..."
Ist mit Verlaub,... (Sorry Erich das ist dir sicher nur so reingerutscht),.. der grösste Quatsch :-)
Warum soll das aktive Blatt, das sowieso "selektiert" ist nochmal ausgewählt werden soll, dürfte nur sehr schwer zu erklären sein :-)
Gruss Rainer

AW: @Ramses
07.04.2008 11:39:00
Erich
Hallo Rainer,
hast du's einfach mal ausprobiert - mit und ohne "ActiveSheet.Select"?
Es sieht wirklich bescheuert aus, aber:
Ohne das behält das Steuerelement den Focus, und das ist nicht gewünscht.
TakeFocusOnKlick=False gibts halt nur für Schaltflächen.
Wenn du eine bessere Möglichkeit kennst, wäre ich dir für Aufklärung dankbar.
Zum Spielen: https://www.herber.de/bbs/user/51309.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
Mea Culpa...
07.04.2008 14:05:04
Ramses
Hallo Erich
Für mich war der Spinbutton in einer Userform,... aber offensichtlich nicht :-)
Dann geht es tatsächlich nur so, da hast du recht.
Gruss Rainer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige