Letzte (gefüllte) Spalte finden
#1
Hallo Excel-Freunde,

ich erhalte nach einer einfachen Funktion/Anweisung "letztespalte  =  Activesheet.Cells(1, Columns.Count).End(xlToLeft).Column" die Fehlermeldung "424 - Object erforderlich".  22
Ich bin mir faast sicher, dass ich solch eine Zeile in anderen Makros bisher genutzt habe. Wieso macht Excel nun Probleme?

Viele Grüße
Antworten Top
#2
Hallo,

an der geposteten Codezeile liegt es nicht.

Gruß Uwe
Antworten Top
#3
Hallo Uwe,

das gesamte Makro (nicht benötigte Zeilen herausgelöscht) sieht folgendermaßen aus:

Sub Ermittler()
Dim LetzteSpalte As Integer
letztespalte  =  Activesheet.Cells(1, Columns.Count).End(xlToLeft).Column 'Activesheet.Cells(1, Columns.Count).End(xlToLeft).Column
End Sub

Wie gesagt, bisher lief es auch. Merkwürdig ist, dass auch die Variable von der Schreibweise NICHT automatisch angepasst wird (Groß-und Kleinschreibung).

VG
Walter
Antworten Top
#4
Und wie sah es aus, als Du es erfolgreich benutztest - und unter welcher Excel-Version?

Integer erlaubt nur Werte bis 32767.

Und eine ganze Spalte speichert man in einem Variant.

Oder meinst Du mit der Zuweisung die Spaltennummer? Müsste es dann nicht .Column(s).Count heißen?

Wenn ein Objekt vermisst wird: Set-Anweisung? Auch als Grund für die Nichtanpassung des V-Namens?
Wehrdienst für nach 31.12.2007 geborene Männer. Freiwilligkeit wird nicht ausreichen; also gibt es das Losverfahren mit daraus mehr als 50% Dienstverpflichteten. Herzlichen Glückwunsch. (Ich habe 15 Monate in der Lw gedient). Weiße Jahrgänge der Bw also ca. -1937 und 1994-2007. Alternativen wie Zivildienst/Verweigerung/Soziales Jahr noch nicht besprochen.
Antworten Top
#5
Ich meine tatsächlich eine Spaltennummer. Die Syntax ist auch bei der Suche unter Google immer:
            Activesheet.Cells(1, Columns.Count).End(xlToLeft).Column

Was geht ist:   LetzteSpalte = Range("xx2").End(xlToLeft).Select

Komischerweise wird dann "letztespalte" auch automatisch zu "LetzteSpalte" nach dem Drücken der Return-Taste!

Auch die gewünschten Zuweisungen:
letztezeile  =  Activesheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
letztezeile  =  Activesheet.Cells(Rows.Count,  1).End(xlUp).Row
führen zum Laufzeitfehler "424 - Objekt erforderlich"

Ich nutze "Microsoft 365 Apps for Enterprise".
Antworten Top
#6
Hallo,

hast Du einmal versucht das betreffende Tabellenblatt direkt anzusprechen? Also anstelle von Activesheet - Tabelle1.blabla oder Sheets("Tabellexy") oder mit With Tabellexy .....End With
Ich hatte das Problem mit mehreren Tabellen in einer Arbeitsmaoppe ebenfalls und konnte durch Zuordnung das Problem lösen.

Grüße

Norbert
Antworten Top
#7
Hallo Norbert,

es lag tatsächlich daran.  28
Nachdem ich also "Acitvesheet" mit dem tatsächlichen Blattnamen austauschte, brachte Excel keine Fehlermeldung mehr und die Variablen hatten die korrekten Zuweisungen erhalten!

DANKE!

VG und ein entspanntes Weichnachtsfest
Walter
Antworten Top


Gehe zu:


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