Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Application.Goto Reference:="letzte"





Frage

Grüezi Miteinander Nachdem mein Makro eine Zeile eingefügt hat, durch sortieren die neue leere Zeile ans untere Ende gestellt hat, sollte der Cursor in dieser letzten neuen Zelle stehen. Kann mir jemand helfen? Besten Dank. Arthur Mein Makro: ActiveSheet.Unprotect Rows("4:6").Select Selection.EntireRow.Hidden = False Range("B6:E6").Select Selection.Insert Shift:=xlDown Range("B5:E5").Select Selection.AutoFill Destination:=Range("B5:E6"), Type:=xlFillDefault Range("B5:E6").Select Rows("5:5").Select Selection.EntireRow.Hidden = True Range("B6:E60").Select Selection.sort Key1:=Range("B6"), Order1:=xlAscending, Key2:=Range("C6") _ , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom Range("B11").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

Antwort 1 von schnallgonz

Salve Arthur,

Range("B11").Select

wählt in Deinem Listing B11 aus. Lösch´ diese Zeile und schreib:
Rows.SpecialCells(xlCellTypeLastCell).Rows.Select

Damit gehts in die letzte Zeile der Tabelle.

Ansonsten kannst Du mit
Rows("5").EntireRow.Hidden = False

die Zeile 5 auch direkt einblenden, das dauernde Select bremst.
Wenn das Makro so kurz bleibt, ist das aber egal.

Mit
Application.Goto Reference:="letzte"

wird eine zuvor mit "letzte" benannte Zelle ausgewählt, hat nichts mit der letzten Zeile zu tun.

mfg
schnallgonz

Ich stimme mit der Mathematik nicht überein.
Ich meine, dass die Summe von Nullen eine gefährliche Zahl ist. (S.J. Lec)

Signatur und Textformatierungen wurden mit SNTool V1.2.13 erstellt


Antwort 2 von schnallgonz

Nachtrag:
sehe ich gerade, Dein Makro fügt keine ganze Zeile ein, sondern nur in den Spalten B:E und leer sind die auch nicht, sondern werden mit den Werten aus den darüberliegenden Zellen überschrieben.
Damit kann also keine neue leere Zeile ans Ende sortiert werden.
MfG
schnallgonz

Antwort 3 von Arthur

Halli Hallo schnallgonz
Besten Dank für Deine "Mitarbeit" ich habe Deinen Vorschlag sofort eingefügt. hat aber leider nicht geklappt, d.h. es hat schon geklappt, aber der Cursor stand dann irgendwo in Zelle "AC:2857"
Ich hab unten meine Tabelle eingefügt, so siehst Du was ich machen will. Ich füge in Zeile 5, Zellen von B5-E5 ein, dann kopiere ich die versteckten leeren aber formatierten Zellen von B:5 - E:5, somit habe ich zuoberst eine leere Linie, dann sortiere ich die Tabelle, dann ist die neue leere Linie für den neuen Eintrag als unterste letzte Linie, dorthin sollte dann der cursor springen.
Tanks und Gruss
Arthur


April Std Total 33:50

Tag Arbeitsbeginn Arbeitsende Arbeitszeit
1. 06:00 07:00 01:00
1. 07:00 12:00 05:00
2. 13:45 17:50 04:05
3. 10:00 18:00 08:00
4. 12:00 17:45 05:45
5. 17:30 02:30 09:00
6. 12:00 13:00 01:00
Hier wird die neue Zeile eingefügt und hier sollte auch der Cursor hinspringen.

Antwort 4 von schnallgonz

Hallo Arthur,
dann scheint die Zelle AC2857 mal irgendwann verwendet worden zu sein,
es ist also keine "jungfräuliche Tabelle".
Abhilfe gibts trotzdem:

Range("A65536").End(xlUp).Select


Springt zur letzten Zeile in Spalte A
Soll der Cursor in der letzten Zeile einer anderen Spalte stehen, einfach "A65536" durch "B65536" oder "C65536" usw. ersetzen.
MfG
schnallgonz

Antwort 5 von Arthur

Lieber/Liebe schnallgonz

Vielen herzlichen Dank für Deine Anteilnahme, leider hat es nicht funktioniert, vermutlich weil ich alles was man/frau nicht sehen soll, hinter ein wunderschönes hellgrau versteckt habe, darum ist die Tabelle auch sehr gross.
Mein Sohn hat mir noch folgenden Tip gegeben, dieser hat vermutlich aus den gleichen Gründen nicht zum Erfolg geführt.

- ActiveSheet.UsedRange.End(xlDown).Offset(1, 0).Activate

Der Befehl tut folgendes:

ActiveSheet: Aktives Blatt
UsedRange: Gibt den benutzen Bereich zurück (z.B. "A1:F32")
End(xlDown): Im Bereich den Cursor in die unterste Zelle setzen (= "A32")
Offset(1, 0): Den Cursor um eine Zelle nach unten verschieben (= "A33")
Activate: Die Zelle markieren

Ich hab mir jetzt mit folgendem "Krampf" geholfen. Das Makro habe ich in zwei Button´s geteilt, 1. Button = Zeilen einfügen. 2. Button = sortieren. Basta, so geht es auch, nicht so komfortabel wie ich gewollt habe, aber mann muss ja nicht immer die Taube auf dem Dach haben wollen. Oder ?
Nochmals besten Dank für Alles und schöne Ostern mit viel Sonnenschein und Schoggihasen.
Arthur

Antwort 6 von schnallgonz

Hi Arthur,
warum schon aufgeben?
Mit UsedRange gibts immer Probleme, wenn die Datei nicht frisch ist, aber mit
Range("A65536").End(xlUp).Select 
funzt es!
Siehe meine letzte Antwort.

Nachfolgend Dein Code mit meinem Vorschlag in Fett anstelle
Range("B11").Select 



ActiveSheet.Unprotect
Rows("4:6").Select
Selection.EntireRow.Hidden = False
Range("B6:E6").Select
Selection.Insert Shift:=xlDown
Range("B5:E5").Select
Selection.AutoFill Destination:=Range("B5:E6"), Type:=xlFillDefault
Range("B5:E6").Select
Rows("5:5").Select
Selection.EntireRow.Hidden = True
Range("B6:E60").Select
Selection.sort Key1:=Range("B6"), Order1:=xlAscending, Key2:=Range("C6") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Range("A65536").End(xlUp).Select 
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


MfG
schnallgonz

Antwort 7 von schnallgonz

Oh
habe nicht genau gelesen, Du willst in die erste freie Zelle, dann nimm:
Range("A65536").End(xlUp).Offset(1, 0).Select

also:
ActiveSheet.Unprotect
Rows("4:6").Select
Selection.EntireRow.Hidden = False
Range("B6:E6").Select
Selection.Insert Shift:=xlDown
Range("B5:E5").Select
Selection.AutoFill Destination:=Range("B5:E6"), Type:=xlFillDefault
Range("B5:E6").Select
Rows("5:5").Select
Selection.EntireRow.Hidden = True
Range("B6:E60").Select
Selection.sort Key1:=Range("B6"), Order1:=xlAscending, Key2:=Range("C6") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub 

Gruß
schnallgonz

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: