Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1584to1588
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
Inhaltsverzeichnis

Select-Methode erzeugt Fehlermeldung

Select-Methode erzeugt Fehlermeldung
16.10.2017 20:56:32
Dominik
Hallo an alle,
ich weiß momentan leider nicht weiter. Ich habe mittlerweile einen recht komplexen VBA-Code der auch weitestgehend durch Hilfe aus dem Forum ohne Probleme läuft. Nun gibt es aber noch ein Problem welches an unterschiedlichen Stellen auftritt und ich mir dieses einfach nicht erklären kann.
Es geht um den Befehl:
...
Tabelle1.Select
Tabelle1.Range(p_cstrZelleSpeicherort).Select
...
Beim ausführen bekomme ich die Meldung
Fehlermeldung:
"Laufzeitfehler '1004': Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
in der Zeile "Tabelle1.Range(p_cstrZelleSpeicherort).Select". Zur Information Tabelle1= CodeName des Tabellenblattes.
Was mich so verwirrt, dass es wenn ich die Sub in der die Anweisung seht einzeln durchlaufen lasse, dann funktioniert alles wunderbar. Der Fehler scheint erst beim Starten des Befehles aus einer übergeordneten Sub diesen Fehler zu "produzieren". Zusätzlich noch die Information alle Tabellenblätte sind standardmäßig per Blattschutz geschützt. Den Schutz hebe ich aber vor der Select-Anweisung auf. Außerdem ist die selectierte Zelle im nicht geschützten Bereich.
Was kann ich hier machen? Ich will durch die Select-Methode am Ende immer eine definierte Zelle "aktiviert" haben.
Ich kann die Excel-Datei leider nicht hier hochladen, da diese sensible Informationen enthält. Ich hoffe aber Ihr könnt mir trotzdem helfen.
Ich wünsche Euch einen schönen Abend.
Gruß
Dominik

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

Betreff
Datum
Anwender
Anzeige
AW: Select-Methode erzeugt Fehlermeldung
16.10.2017 21:07:21
Sepp
Hallo Dominik,
.Select und .Activate sind in VBA zu 99,9% unnötig und kontraproduktiv.
Gruß Sepp

AW: Select-Methode erzeugt Fehlermeldung
16.10.2017 21:08:24
onur
Tabelle1 ist schon selektiert, also nur noch Range(p_cstrZelleSpeicherort).Select.
Was für eine Variable ist denn p_cstrZelleSpeicherort genau und was ist drin?
Oder ist das ein Bereichsname?
AW: Select-Methode erzeugt Fehlermeldung
16.10.2017 23:17:17
Daniel
Hi
Wie schon erwähnt, das Select braucht man für die VBA-Programmierung sehr selten, in der Regel kann man den Befehl immer direkt an den Zellbereich anhängen (anstelle des Selects).
Wenn du trotzdem eine Zelle auf einem bestimmten Blatt geziel anspringen willst, nimm
Application.Goto Tabelle1.Range(p_cstrZelleSpeicherort)
Damit kannst du die Zelle direkt anspringen, ohne vorher das Blatt selektieren zu müssen.
Eine weitere Fehlerquelle könnte das p_cstrZelleSpeicherort sein.
Diese Variable muss eine korrekte Zell-Adresse oder einen Namen enthalten.
Gruß Daniel
Anzeige
AW: Select-Methode erzeugt Fehlermeldung
17.10.2017 10:49:18
Dominik
Ich werde es jetzt mal mit
Application.Goto Tabelle1.Range(p_cstrZelleSpeicherort) versuchen und hoffe, dass ich dann keine Fehlermeldung mehr erhalte. Ich brauche diese eben um nach dem Makro wieder in einer definierten Zelle zulade.
In der Variablen bzw. Konstanten p_cstrZelleSpeicherort steht "D7". Ich habe dies so gelöst um bei einer Änderung alle Bereiche die darauf zugreifen schnell abändern zu können.
Wie kann ich nur auf ein Blattwechseln ohne eine Zelle zu markieren?
Gruß
Dominik
AW: Select-Methode erzeugt Fehlermeldung
17.10.2017 18:35:26
Sepp
Hallo Dominik,
ich bin mir ziemlich sicher, das du .Select, .Activate und auch .GoTo absolut nicht brauchst!
Kannst du nicht den Code zeigen?
Gruß Sepp

Anzeige
AW: Select-Methode erzeugt Fehlermeldung
17.10.2017 18:50:13
onur
Kann es sein, dass Tabelle1 nur der Name der Tabelle ist?
Wenn ja, versuchs mal mit Sheets("Tabelle1").Range(p_cstrZelleSpeicherort).Select.
Ist die Variable "p_cstrZelleSpeicherort" public deklariert? Setze doch mal ein "Stop" oder Haltepunkt vor der Problem-Zeile und schau dir im Debugger/Lokalfenster an, was die Variable enthält und ob sie wirklich ein String ist.
AW: Select-Methode erzeugt Fehlermeldung
19.10.2017 12:20:19
Dominik
Hallo,
wie gesagt. Irgendwie scheint die Select-Anweisung nicht zu funktionieren sobald der Code verschachtelt ausgeführt wird.
Dann geschieht z. B. bei Tabelle1.Select nichts was wiederum dazu führt, dass die nächste Zeile des Codes den Laufzeitfehler bringt (vermute) ich zumindest. Tabelle1 ist nicht der Name (der ist Hauptfenster) sondern der Codename (dieser ist unveränderlich egal was der Benutzer ändert).
p_cstrZelleSpeicherort ist eine public variabele welche sich mit vielen anderen in einem eigenen Modul befindet. Diese hat momentan z. B. den Wert "D7".
Gibt es noch eine andere Anweisung mit der ich gezielt auf ein Blatt (mit Codename z. B. Tabelle2) "springen" kann?
Gruß
Dominik
Anzeige
AW: Select-Methode erzeugt Fehlermeldung
19.10.2017 13:32:04
onur
Baue mal vor die problemzeile diese ein:
Debug.print activesheet.name
Stop
Wenn er stoppt, schaue im Direkt-Fenster nach, wie der name lautet.
Du kannst auch mal tabelle1.Activate vor tabelle1.select setzen und testen, obs klappt.
AW: Select-Methode erzeugt Fehlermeldung
19.10.2017 18:25:10
Dominik
Hi onur,
das klappt ja auch soweit nur eben nicht wenn die Select-Anweisung nach vielen andern Anweisungen durchlaufen soll. Dann passiert einfach nichts. Wenn ich also ein bestimmtes Blatt öffnen möchte dann muss es mit Select oder Activate gehen richtig? Ich weiß nun auch dass Select nicht in einem Code verwendet werden sollte wenn es sich vermeiden lässt. Mir geht es nur darum egal wie bzw. egal in welchem Blatt der Benutzer die Excel-Datei abspeichert. Beim nächsten Öffnen soll das Blatt (Codename: Tabelle1) wieder als erstes angezeigt werden (gezwungenes Zurücksetzten). Dafür brauche ich aber eben eine Anweisung die mir dies ermöglicht. Natürlich kann ich dann auch noch in eine Zelle springen aber wichtiger ist eben auf das Blatt zu wechseln.
Hilft alles nichts mit
Application.Goto ...
Funktioniert es dann brauche ich eben immer eine Zelle die keinen Blattschutz hat für den Wechsel.
Gruß
Dominik
Anzeige
AW: Select-Methode erzeugt Fehlermeldung
19.10.2017 18:30:55
onur
Einfach in Workbook_open:

Tabelle1.Activate
Tabelle1.select
Cells(7,7).select'Nur als Beispiel - ggf andere Zelle eingeben

eingeben.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige