Supportnet / Forum / Tabellenkalkulation
Zeile auschneiden - unten einfügen - zurück zur Ausgangsposition!
Frage
Hallo Zusammen
Wenn ich mit einem Makro die aktivierte Zeile ausschneide und danach unten in der 1. Leerzeile (so ca. im 1000er Bereich) einfügen lasse - fällt immer diese lästige Scrollerei an - um auf die Ausgangsposition zurückzukehren.
Gibt es eine Makrolösung die sich die Ausgangsposition merkt und darauf zurückkehrt.
Vielen Dank für Eure Bemühungen.
Lusso
Antwort 1 von powder
Hallo,
du musst ja die Ausgangsposition nicht verlassen du kannst doch mit
Actviecell.offset(zeile,spalte)
dich relativ bewegen.
Oder hab ich noch was überlesen.
Sonst poste mal den betreffenden code
Grüße
Tino
du musst ja die Ausgangsposition nicht verlassen du kannst doch mit
Actviecell.offset(zeile,spalte)
dich relativ bewegen.
Oder hab ich noch was überlesen.
Sonst poste mal den betreffenden code
Grüße
Tino
Antwort 2 von Lusso
Hallo Tino
Also: ich möchte dass die aktivierte Zeile ausgeschnitten und unten in der Position der ersten Leerzeile wieder eingefügt wird - anschliessend wieder nach oben an die Ausgangsposition.
Was mein Makro jetzt macht: kopieren unten einfügen - die Schrift (zu meiner Kontrolle) rot einfärben - dann ist Schluss. Was es weiter tun sollte wäre: nach dem "einfügen/einfärben" - wieder an die Ausgangsposition gehen um die anfänglich kopierte Zeile auszuschneiden.
Wäre natürlich super wenn du mir helfen könntest!
Der betreffende Code sieht so aus:
Sub Zeile_Auschneiden_Einfügen()
ActiveCell.EntireRow.Copy
ActiveCell.End(xlDown).Offset(1, 0).Select
ActiveCell.EntireRow.Insert
ActiveCell.EntireRow.Font.ColorIndex = 3
End Sub
Gruss und vielen Dank
Lusso
Also: ich möchte dass die aktivierte Zeile ausgeschnitten und unten in der Position der ersten Leerzeile wieder eingefügt wird - anschliessend wieder nach oben an die Ausgangsposition.
Was mein Makro jetzt macht: kopieren unten einfügen - die Schrift (zu meiner Kontrolle) rot einfärben - dann ist Schluss. Was es weiter tun sollte wäre: nach dem "einfügen/einfärben" - wieder an die Ausgangsposition gehen um die anfänglich kopierte Zeile auszuschneiden.
Wäre natürlich super wenn du mir helfen könntest!
Der betreffende Code sieht so aus:
Sub Zeile_Auschneiden_Einfügen()
ActiveCell.EntireRow.Copy
ActiveCell.End(xlDown).Offset(1, 0).Select
ActiveCell.EntireRow.Insert
ActiveCell.EntireRow.Font.ColorIndex = 3
End Sub
Gruss und vielen Dank
Lusso
Antwort 3 von coros
Hi Lusso,
nachfolgendes Makro kopiert die aktive Zeile in die erste freie Zelle in Spalte A und färbt die Schrift der eingefügten Zeile rot.
Soll die Schriftfarbe der Zeile, die gerade kopiert wurde, eingefärbt werden, dann lautet das Makro folgendermaßen:
Ich hoffe, Du kommst klar. Bei Problemen oder Fargen melde Dich noch mal.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgendes Makro kopiert die aktive Zeile in die erste freie Zelle in Spalte A und färbt die Schrift der eingefügten Zeile rot.
Sub Zeile_Auschneiden_Einfügen()
Dim Zeile As Long
Zeile = Range("A65536").End(xlUp).Offset(1, 0).Row
ActiveCell.EntireRow.Copy Cells(Zeile, 1)
Cells(Zeile, 1).EntireRow.Font.ColorIndex = 3
End SubSoll die Schriftfarbe der Zeile, die gerade kopiert wurde, eingefärbt werden, dann lautet das Makro folgendermaßen:
Sub Zeile_Auschneiden_Einfügen()
Dim Zeile As Long
Zeile = Range("A65536").End(xlUp).Offset(1, 0).Row
ActiveCell.EntireRow.Copy Cells(Zeile, 1)
ActiveCell.EntireRow.Font.ColorIndex = 3
End Sub
Ich hoffe, Du kommst klar. Bei Problemen oder Fargen melde Dich noch mal.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von powder
Kein Problem das Makro ist ja ok.
Du solltest eben nur die Aktion des Einfügens nicht über activecell machen da mann die Zelle ja so markieren würde sondern üebr den indirekten Bezug.
Für die Bewegung habe ich Ausgangspunkt Cells(65536,1) gewählt und bin nach oben gegangen um wirklich die letzte leere Zelle zu erreichen.
Geprüft wird wegen der 1 in der ersten Spatlte, dies kannst du narürlich beliebig ändern.
Aussehen tut das dann so:
Alternativ könntest du auch dein altes Makro weiter verwenden und die Bildschirmaktualisierung während der Durchführung verstecken. (Die frage habe ich hier nähmlich auch schon mal gestellt) lohnt sich aber eher bei längeren Prozessen.
Die Variante mit dem indirekten Bezug sollte auch schneller sein.
Du solltest eben nur die Aktion des Einfügens nicht über activecell machen da mann die Zelle ja so markieren würde sondern üebr den indirekten Bezug.
Für die Bewegung habe ich Ausgangspunkt Cells(65536,1) gewählt und bin nach oben gegangen um wirklich die letzte leere Zelle zu erreichen.
Geprüft wird wegen der 1 in der ersten Spatlte, dies kannst du narürlich beliebig ändern.
Aussehen tut das dann so:
Sub Zeile_Auschneiden_Einfügen()
ActiveCell.EntireRow.Copy
Cells(65536, 1).End(xlUp).Offset(1, 0).EntireRow.Insert
Cells(65536, 1).End(xlUp).EntireRow.Font.ColorIndex = 3
End Sub
Alternativ könntest du auch dein altes Makro weiter verwenden und die Bildschirmaktualisierung während der Durchführung verstecken. (Die frage habe ich hier nähmlich auch schon mal gestellt) lohnt sich aber eher bei längeren Prozessen.
Die Variante mit dem indirekten Bezug sollte auch schneller sein.
Antwort 5 von nighty
hi alle :)
noch eine variante :)
nur eine zeile :))
gruss nighty
die selectierte zeile wird an das ende eingefuegt :)
Sub kopie()
[Selection].Copy Range("A" & Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
End Sub
noch eine variante :)
nur eine zeile :))
gruss nighty
die selectierte zeile wird an das ende eingefuegt :)
Sub kopie()
[Selection].Copy Range("A" & Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
End Sub
Antwort 6 von powder
Ja,
aber bei der Lösung wird der Text nicht eingefärbt, oder sollte ich das übersehen haben?
HMM, und als ich das ncoh mal schnell getestet habe ging es auch nicht. Warum :(
Grüße
Tino
aber bei der Lösung wird der Text nicht eingefärbt, oder sollte ich das übersehen haben?
HMM, und als ich das ncoh mal schnell getestet habe ging es auch nicht. Warum :(
Grüße
Tino
Antwort 7 von Lusso
An Coros und Tino
Ihr seid super!
Was ich jetzt jedoch feststelle - und was sehr wichtig zu sein scheint: meine Tabelle umfasst mehrere Rubriken!
Als Beispiel in Kurzform:
Titel Rubrik A
1 1 1
2 2 2
3 4 5
Leerzeile zu Rubrik A
Titel Rubrik B
1 1 1
2 2 2
3 4 5
Leerzeile zu Rubrik B
Titel Rubrik C
etc.
Wenn ich in Rubrik A eine Zeile kopiere sollte das Makro die Leerzeile A erkennen und die kopierte Zeile dort einfügen!
etc.
Vielleicht habt ihr auch dazu eine Lösung. Erst einmal vielen Dank.
ich grüsse euch
Lusso
Ihr seid super!
Was ich jetzt jedoch feststelle - und was sehr wichtig zu sein scheint: meine Tabelle umfasst mehrere Rubriken!
Als Beispiel in Kurzform:
Titel Rubrik A
1 1 1
2 2 2
3 4 5
Leerzeile zu Rubrik A
Titel Rubrik B
1 1 1
2 2 2
3 4 5
Leerzeile zu Rubrik B
Titel Rubrik C
etc.
Wenn ich in Rubrik A eine Zeile kopiere sollte das Makro die Leerzeile A erkennen und die kopierte Zeile dort einfügen!
etc.
Vielleicht habt ihr auch dazu eine Lösung. Erst einmal vielen Dank.
ich grüsse euch
Lusso
Antwort 8 von powder
Kein Problem.
Wie schon bwschrieben durchlaufe ich die Zelle bewußt vom Ende nach oben um eben andere Leere Zeilen zu umgehen. Wenn diese aber bewußt da sind udn den Eindrag aufnehmen sollen dann nimm doch folgende Variante.
Wie Du siehst ist hier auch deine Bewegung End (xlDown) wieder enthalten.
Grüße
Tino
Wie schon bwschrieben durchlaufe ich die Zelle bewußt vom Ende nach oben um eben andere Leere Zeilen zu umgehen. Wenn diese aber bewußt da sind udn den Eindrag aufnehmen sollen dann nimm doch folgende Variante.
Sub Zeile_Auschneiden_Einfügen()
ActiveCell.EntireRow.Copy
ActiveCell.End(xlDown).Offset(1, 0).EntireRow.Insert
ActiveCell.End(xlDown).EntireRow.Font.ColorIndex = 3
End Sub
Wie Du siehst ist hier auch deine Bewegung End (xlDown) wieder enthalten.
Grüße
Tino
Antwort 9 von powder
Sorry für die vielen Tippfehler,
ich habe so viele andere Dinge zu tun, so dass ich nicht korrektur lese :)
ich habe so viele andere Dinge zu tun, so dass ich nicht korrektur lese :)
Antwort 10 von Lusso
Hallo Tino
da scheint mir dann eben doch zu gelten: Wer etwas zu sagen hat - kann sich die durchaus amüsanten Tippfehler leisten!
Ein Problem habe ich noch festgestellt: wenn ich die letzte Zeile von Rubrik A bearbeite zwängt "die" sich in Rubrik B zwischen die Zeilen 1 und 2 !?!?
Kennst du dieses Problem?.
Vielen Dank und Grüsse
Lusso
da scheint mir dann eben doch zu gelten: Wer etwas zu sagen hat - kann sich die durchaus amüsanten Tippfehler leisten!
Ein Problem habe ich noch festgestellt: wenn ich die letzte Zeile von Rubrik A bearbeite zwängt "die" sich in Rubrik B zwischen die Zeilen 1 und 2 !?!?
Kennst du dieses Problem?.
Vielen Dank und Grüsse
Lusso
Antwort 11 von powder
Nein,
das kann ich mir leider in keinster weise erklären.
Ich kann mir aber auch nicht ganz vorstellen wie du das meinst.
Wenn du magst, und die Datei keine brisanten Daten enthält kannst Du sie ja mal schicken wenn ich Zeit habe schaue ich dann rein.
Vielleicht kann ich dir ja Helfe.
Und danke für Dein Verständnis die Tippfehler betreffend.
Grüße
Tino
p o w d e r 1 5 2 'at' h o t m a i l 'dot' c o m
das kann ich mir leider in keinster weise erklären.
Ich kann mir aber auch nicht ganz vorstellen wie du das meinst.
Wenn du magst, und die Datei keine brisanten Daten enthält kannst Du sie ja mal schicken wenn ich Zeit habe schaue ich dann rein.
Vielleicht kann ich dir ja Helfe.
Und danke für Dein Verständnis die Tippfehler betreffend.
Grüße
Tino
p o w d e r 1 5 2 'at' h o t m a i l 'dot' c o m
Antwort 12 von Lusso
Also Tino
Zum Verständnis: dass Problem wirst du feststellen wenn du untenstehende Tabelle ins Excel kopierst und dann unter Rubrik A die Ziffer 3 markierst und das Makro ausführst!
-----------------
Titel Rubrik A
1
2
3
Titel Rubrik B
4
5
6
Titel Rubrik C
etc.
----------------
Vielleicht kannst du mir helfen - jedenfalls schon mal vielen Dank für bisheriges!.
Grüsse
Lusso
Zum Verständnis: dass Problem wirst du feststellen wenn du untenstehende Tabelle ins Excel kopierst und dann unter Rubrik A die Ziffer 3 markierst und das Makro ausführst!
-----------------
Titel Rubrik A
1
2
3
Titel Rubrik B
4
5
6
Titel Rubrik C
etc.
----------------
Vielleicht kannst du mir helfen - jedenfalls schon mal vielen Dank für bisheriges!.
Grüsse
Lusso
Antwort 13 von powder
ach so alles klar.
Logisch die Bewegung mit END(xl..) entspricht dem Betätigen von END+Richtungstaste
und wenn du nun schon am Ende bist dann springt er zur nächsten Überschrift, geht eins nach Unten und macht da den Eintrag.
das kannst du mit noch ner IF Schleife umgehen
Ich hoffe es funktioniert da ich den code nicht erst getestet habe
Grüße
Tino
Logisch die Bewegung mit END(xl..) entspricht dem Betätigen von END+Richtungstaste
und wenn du nun schon am Ende bist dann springt er zur nächsten Überschrift, geht eins nach Unten und macht da den Eintrag.
das kannst du mit noch ner IF Schleife umgehen
Sub Zeile_Auschneiden_Einfügen()
ActiveCell.EntireRow.Copy
IF ActiveCell.Offset(1,0).Value = "" Then
ActiveCell.Offset(1, 0).EntireRow.Insert
ActiveCell.Offset(1, 0).EntireRow.Font.Colorindex.3
Else: ActiveCell.End(xlDown).Offset(1, 0).EntireRow.Insert
ActiveCell.End(xlDown).EntireRow.Font.ColorIndex = 3
End If
End Sub
Ich hoffe es funktioniert da ich den code nicht erst getestet habe
Grüße
Tino
Antwort 14 von Lusso
Tino !!! Sensationell !!! Vielen Dank !!!
Grüsse
Lusso
Grüsse
Lusso
Antwort 15 von powder
Kein Problem,
gern geschehen.
gern geschehen.
Antwort 16 von powder
Kein Problem,
gern geschehen.
gern geschehen.

