Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Makro in Konstruktionstabelle - Methode fehlgeschlagen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Makro in Konstruktionstabelle - Methode fehlgeschlagen (3979 mal gelesen)
Scoopa
Mitglied
MB Techniker


Sehen Sie sich das Profil von Scoopa an!   Senden Sie eine Private Message an Scoopa  Schreiben Sie einen Gästebucheintrag für Scoopa

Beiträge: 224
Registriert: 26.04.2006

erstellt am: 03. Jun. 2010 11:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo
versuche gerade eine Konstruktionstabelle über eine Eingabeform zu steuern.
Habe alles zuerst nur in Excel programmiert. Dort funktioniert es ohne weiteres.

Nach dem Einfügen als Konstruktionstabelle in ein Bauteil in SW kommt im Modul an folgender Stelle:

    Dim sheet As Worksheet
    Dim lookupTable As Dictionary
   
    Set sheet = Sheets("Tabelle1") 'hier bleibt der Debugger immer hängen und bringt

immer folgenden fehler:

Die Methode 'Sheets' für das Objekt '_Global' ist fehlgeschlagen

Mir ist aufgefallen, dass beim Bearbeiten der Tabelle anscheinend immer eine neue Tabelle angelegt wird in der vermutlich der Code nicht mehr vorhanden ist?
Leider komme ich nicht weiter und weiss nicht wie ich den Fehler beheben oder umgehen kann.

Würde mich freuen, wenn vielleicht jemand einen Tip oder besser eine Lösung hätte.

Schon mal vorab vielen Dank für jede Hilfe!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 03. Jun. 2010 21:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Scoopa 10 Unities + Antwort hilfreich

Hi,

diese Meldung sagt m.W. aus, dass das Objekt - also das Tabellenblatt - nicht gefunden wird. Ist in der Mappe immer nur 1 Tabellenblatt vorhanden, dann kannst du es mit Worksheets(1) ansprechen. Wird immer ein weiteres Tabellenblatt angelegt und ans Ende der Mappe positioniert, kannst du es mit Worksheets(Worksheets.Count) ansprechen.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 04. Jun. 2010 09:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Scoopa 10 Unities + Antwort hilfreich

Hallo Scoopa,

wie Beverly schon schreibt, nur noch zur Verdeutlichung: Gibt es in Deiner Mappe ein Register namens "Tabelle1"? Ich meine nicht die Sheets-Bezeichnung in VBA, sondern die tatsächliche Bezeichnung des Registers in Excel?

Es besteht immer ein Risiko, wenn Du die Register über ihren Namen ansprichst - z. B. wenn das Register umbenannt werden soll, ist die ganze Programmiererei für die Katz'! Besser: Die echte Nummer verwenden (also z. B. Set sheet = Sheets(1)).

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 04. Jun. 2010 10:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Scoopa 10 Unities + Antwort hilfreich

Hi Paulchen,

so ultimativ kann man das nicht sagen, dass man das Tabellenblatt generell besser über seine Position ansprechen soll, denn in diesem Fall besteht wiederum das große Risiko, dass nach einem Tausch der Blattposition das falsche Blatt abgesprochen wird. Man muss also schon konkret unterscheiden, für welchen Zweck und in welcher Situation man die Blätter wie anspricht.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Comos User
Mitglied



Sehen Sie sich das Profil von Comos User an!   Senden Sie eine Private Message an Comos User  Schreiben Sie einen Gästebucheintrag für Comos User

Beiträge: 112
Registriert: 23.03.2010

erstellt am: 04. Jun. 2010 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Scoopa 10 Unities + Antwort hilfreich

Hallo an Alle,

@Paulchen und Karin

Ihr habt ja beide recht und es gibt einen Königsweg, die Verwendung des Codenemens.
Näheres hier http://msdn.microsoft.com/de-de/library/aa214189(en-us,office.11).aspx

Zum Problem von Scoopa

Wie Karin schon ausgeführt, das Blatt wurde nicht gefunden, das heißt aber nicht unbedingt, das es nicht da ist.
Vielmehr besagt diese Meldung es gibt keine Sheets in diesem Kontext (_Global).
Es ist guter Stil sich nicht auf den Kontext zu verlassen, sonder Objecte möglicht vollständig zu referenzieren,
und wenns denn seien soll, gibt es auch 'ActiveWorkbook', 'ActiveSheet' usw.

Sinnvol wäre wohl

Code:
Set mySheet = ThisworkBook.Sheets("Tabelle1")
oder eben gleich
Code:
Set mySheet = Tabelle1

Noch ein Hinweis, ich würde eine Variable nicht 'Sheet' nennen, es gibt Excelobjecte mit diesem Namen.

Grüße
Peter

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 04. Jun. 2010 13:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Scoopa 10 Unities + Antwort hilfreich

Hi Peter,
Zitat:
Original erstellt von Comos User:
und es gibt einen Königsweg, die Verwendung des Codenemens.

Das ist vom Prinzip her so, als ob man "Tabelle1" als Name verwendet - hilft also nur, wenn man sich immer auf das selbe Tabellenblatt bezieht. Der Unterschied ist, dass es kein Problem gibt, wenn das Tabellenblatt umbenannt wird. Aus der Fragestellung ging allerdings nicht eindeutig hervor, ob es nun immer das selbe Tabellenblatt ist oder ob neue Tabellenblätter hinzukommen - da ist die Beschreibung nicht eindeutig und man kann vieles hinein- oder herausinterpretieren.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz