es wird noch ein wenig verrückter. Ich habe mal mit zwei verschiedenen Buttons gespielt.
Doch zuerst einmal die Maske manuell:
Hier ist alles in Ordnung - Buchungen wie gewohnt
Dann mit einem Button aus den Formularsteuerelementen:
Hier die Fehlermeldung 400
Ich hab's dann mit einem Button aus den ActiveX-Steuerelementen probiert:
Jetzt meckert XL über einen Laufzeitfehler
Den Code habe ich hinter das Tabellenblatt eingetragen. Versuche mit Code in einem Modul und Button aus Formularsteuerelementen brachten den gleichen Laufzeitfehler.
Und nu guck ich noch dümmer aus der Wäsche :05:
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
nachdem ich diesen Thread komplett aus den Augen verloren hatte (danke Sabina für die nette Erinnerung), habe heute zum einen die von euch gemachten Vorschläge ausprobiert: sie arbeiten einwandfrei. Aber auch mir ließ es keine Ruhe, warum mein aufgezeichneter Code, der identisch mit Sabinas zuerst gepostetem ist, diese Fehlermeldungen produziert hat.
Hier mein Ergebnis: die Datei, die ich heruntergeladen hatte, muss wohl daran schuld gewesen sein. Auch beim erneuten Nachstellen der Situation mit der geposteten Datei kamen die Meldungen. Danach habe ich das kleine Daten-Beispiel in eine neue Mappe kopiert und die Makros der Reihe nach getestet: alles lief fehlerfrei.
Danke für eure Tipps. Zudem werde ich wohl zukünftig in derartigen Situationen zuerst mit neuer Datei testen.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
12.01.2019, 10:34 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2019, 10:36 von Storax.)
Ich kann die Datenmaske auch bei leerem Blatt starten :05:
Am sichersten ist es, wenn man einen Bereich im aktiven Blatt hat, der Datenbank heißt. Dann funktioniert das ohne Murren.
Falls man das nicht hat, versucht die Datenmaske "intelligent" zu sein und das geht schon mal schief. Da ist es am besten, der Cursor befindet sich im Bereich der Daten. Aber das ist auch keine Garantie für den Erfolg.
Excel hat in der geposteten Datei ein Problemmit dem Listobject, wenn man per VBA die Datenmaske aufrufen will. Wenn man vor dem Aufruf eine Zelle im Object markiert, kommt trotzdem ein Fehler. Wenn man ein neues Blatt anlegt und dort ohne Listobject mt einer Maske Daten eingeben will, kommt auch ein Fehler. Manuell kann man die Datenmaske aufrufen.
Löscht man das Blatt mit dem Listobject, funktioniert der VBA - Code.
Was ist nun das besondere an dem Listobject? Es fängt nicht in A1 an. Hat man die Tabelle in A1 beginnend, funktioniert der Code.
Noch ein anderer Versuch:
Ich lege zwei Listobjects auf dem Tabellenblatt an, das erste ab A1, das zweite irgendwo. Den Cursor stelle ich in das zweite. Der Aufruf der Maske funktioniert. Allerdings wird mir, obwohl ich im zweiten Object bin, die Maske auf das erste gerichtet. Manuell funktioniert es korrekt.
Ich markiere daraufhin das zweite object und gebe den Namen Datenmaske ein. Es kommt wieder ein Fehler 1004. Manuell funktioniert es korrekt.
Ich Lösche den Namen Datenmaske und benenne das zweite Object in Datenmaske um. Der Aufruf der Maske funktioniert. Allerdings wird mir, obwohl ich im zweiten Object bin, die Maske auf das erste gerichtet. Manuell funktioniert es korrekt.
Resümee: Entweder man hat das Listobject ab A1 und kann VBA verwenden oder man startet die Maske manuell …
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Markiere ich das zweite Listobjekt und benenne den Bereich in Datenbank um (nicht das Object), funktioniert die Datenmaske und ich komme auf dem aktiven Blatt immer auf den entsprechend benannten Bereich.
Benenne ich stattdessen das zweite Listobjekt in Datenbank um, bekomme ich einen Fehler 1004
Versuche ich dann, auf einem weiteren Tabellenblatt eine Datenmaske mit VBA zu verwenden, bekomme ich dort den Fehler 1004.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)