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

problem mit End(xlUp).Row und set ActiveWorkbook

problem mit End(xlUp).Row und set ActiveWorkbook
27.02.2007 08:25:49
chris b
Hallo Profis,
ich bin am verzweifeln.
wäre der meinung gestern hätte der code noch funktioniert und heute geht nix mehr :(
Bekomme einen fehler bei dieser zeile.
lz = priotabelle.Worksheets("BaP").Cells(Rows.Count, 3).End(xlUp).Row
Weiß aber nicht warum ??
lasse ich das
"priotabelle.Worksheets("BaP")."
weg funktioniert es wieder.Aber warum ???
Danke für eure Hilfe gruß Chris
Type prios
nr As String
prio As Integer
End Type
Public Const priodatei = "\\NUEFIL09\IPN_NOZZLE\Zeichnungswesen\04.Prioritätenliste\Prioritätenliste.xls"
'Vorhandene Module
'Sub prio_proz_bap
'Sub prio_proz_rbtr
'Sub prio_proz_CtP
'Sub prio_proz_RzP
'Sub prio_proz_RBCD
'Sub prio_proz_JD
'Sub prio_proz_MICO
Sub prio_proz()
Dim lz As Integer
Dim i As Integer
Dim y As Integer
Dim x As Integer
Dim xx As Integer
Dim aktnr As String
Dim opendatei
Dim aktaenderbuch
Dim priotabelle As Workbook
Dim such As String
Dim test
Dim daten() As prios
Set aktaenderbuch = ActiveWorkbook
Application.EnableEvents = False
'bereits vorhandenen Prios löschen
Range("CK6:CK50000").ClearContents
Application.EnableEvents = True
'öffnen Datei mit Prios für BaP
Workbooks.Open (priodatei), True, True
Set priotabelle = ActiveWorkbook
'zeile letzte Änderungsnummer
lz = priotabelle.Worksheets("BaP").Cells(Rows.Count, 3).End(xlUp).Row

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Problem mit Befehl...
27.02.2007 08:45:49
EtoPHG
Hallo Chris,
Entschuldigung, aber dieser Befehl:
lz = priotabelle.Worksheets("BaP").Cells(Rows.Count, 3).End(xlUp).Row
ist völlig hirnrissig. Wie kommst Du auf Level VBA gut ?
Der Rows.Count kommt aus der aktiven Tabelle und hat vermutlich gar nix mit der Tabelle in der Du suchst zu tun. Probier mal:
lz = priotabelle.Worksheets("BaP").Range("C65536").End(xlUp).Row
Gruss Hansueli
@ EtoPHG
27.02.2007 09:03:58
Erich G.
Hi Hansueli,
sorry, aber Chris' Zeile halte ich für sinnvoller als die, die du gepostet hast:
Rows.Count ist - solange die Excelversion sich nicht ändert - konstant und unabhängig vom Tabellenblatt.
(Wert in Excel 97: 16384, bis Excel 2003: 65536, in Version 2007: 1048576)
Der Unterschied zwischen deiner und Chris' Zeile ist lediglich, dass deine Zeile nur in einigen Excelversionen funzt.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: @ EtoPHG
27.02.2007 09:19:38
EtoPHG
Hallo Erich,
OK ich geb zu, ich hab ein bisschen hart reagiert.
Mich macht einfach das VBA gut stutzig. Da müsste man doch in der Lage sein einen solchen Fehler zu analysieren, lokalisieren und beheben. Du erwähnst ja in Deinem 2ten Post die fehlende Fehlermeldung....
Mit Deiner Kritik bin ich nur z.T. einverstanden, nämllich mit der neuen Anzahl rows in 2007.
Andererseits, wenn ich den Code aus einem Tabellenblatt laufen lasse, kein Problem.
Ist aber ein Sheet vom Typ Diagramm (Chart, bzw. ActiveSheet.Type = 3) aktiv funktioniert der Code mit Rows.Count mit Sicherheit nicht!
Da zumindest, ist meiner zu bevorzugen.
Gruss Hansueli
Anzeige
AW: @ EtoPHG
27.02.2007 09:39:29
Erich G.
Hallo Hansueli,
in der Zeile stand nicht Sheets(..), sondern Worksheets(...). Für Worksheets läuft der Code immer.
Was macht denn dein Code, wenn das Sheet ein Chart ist? Kann dann auf C65536 zugegriffen werden?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: @ EtoPHG
27.02.2007 09:51:34
EtoPHG
Hallo Erich,
Ich bin wirklich erstaunt über Eure Ausführungen.
Die Hilfe sagt doch klipp und klar.

Anmerkungen
Die Verwendung dieser Eigenschaft ohne einen Objektkennzeichner hat die gleiche Funktion wie ActiveSheet.Rows.

... und da kannst Du Sheets , Worksheets oder was auch immer voransetzen. Tatsache ist:
Rows ohne Objektbezeicher bezieht sich auf das aktive Blatt.

Was macht denn dein Code, wenn das Sheet ein Chart ist? Kann dann auf C65536 zugegriffen _
werden?

Ja, denn die Range referenziert ja auch nicht das Chart-Sheet....
Mir ist diese Diskussion ehrlich gesagt zu blöd... Jeder darf's ausprobieren... und glücklich werden mit seinem Code, solange er einigermassen läuft!
Gruss Hansueli
Anzeige
AW: @ EtoPHG
27.02.2007 10:14:27
Erich G.
Hi Hansueli,
jetzt muss ich Abbitte leisten - nachdem ich kapiert habe, was du meinst:

Sub tst()
Dim ws As Worksheet
Sheets("Diagramm1").Activate ' kann auch schon nach dem Öffnen aktiv sein
Set ws = Worksheets("Tabelle1")
MsgBox "A: " & ws.Range("C65536").End(xlUp).Row
MsgBox "B: " & ws.Cells(ws.Rows.Count, 3).End(xlUp).Row
MsgBox "C: " & ws.Cells(Rows.Count, 3).End(xlUp).Row      ' funzt nicht, Fehler 1004
End Sub
Sorry! Vielleicht hilft diese Diskussion ja doch jemandem...
Grüße von Erich aus Kamp-Lintfort
AW: @ Erich
27.02.2007 10:22:05
EtoPHG
Hallo Erich,
Alles klar.
Genau das hab ich gemeint.
Ich war vielleicht ein bisschen voreilig mit meiner Vermutung das es daran liegen könnte, aber aus Chris Code ging nur hervor, das er ganz sicher nicht in dem Sheet läuft, aus dem die letzte Zelle ermittelt wird und dann ist das eben eine sehr tückische Falle.
Hier eine kleine Beispielmappe: was passiert wen.... (ähnlich Deinem Beispiel!)
https://www.herber.de/bbs/user/40716.xls
Gruss Hansueli
Anzeige
AW: Problem mit End(xlUp).Row
27.02.2007 09:08:37
Erich G.
Hallo Chris,
da die gefragte Mappe aktiv ist, reicht
lz = Worksheets("BaP").Cells(Rows.Count, 1).End(xlUp).Row
Gibt es einen Fehler 9 - Index außerhalb...? (Das hast du nicht verraten...)
Dann stellt sich die Frage: Gibt es in der Mappe ein Tabellenblatt BaP ?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Problem mit End(xlUp).Row
27.02.2007 09:19:48
chris b
Danke noch mal allen für Ihre Hilfe auser Hansueli.
VBA Level gut.... bla bla bla..
ich weiß zwar nicht genau wo das problem war aber jetzt funzt auch meine zeile.
habe einfach den Wert noch einmal gesetzt.Dim priotabelle As Workbook
lz = priotabelle.Worksheets("BaP").Cells(Rows.Count, 3).End(xlUp).Row 'funzt jetzt auch so wie gewünscht.
Weiß nicht wo Hansueli das Problem sieht.
Danke
Anzeige
AW: Problem mit End(xlUp).Row
27.02.2007 09:23:50
EtoPHG
Hallo Chris,
Das Problem sehe ich ganz einfach dort, dass man Objekte benutzt und nicht weiss woher sie stammen.
Siehe meine Antwort an Erich oben.
Denn Dein Code funktioniert immer noch rein zufällig.
Teste in doch mal, aus einem Diagramm-Sheet.
Viel Vergnügen beim weiter-wursteln.
Gruss Hansueli

35 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige