Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 1004 - ShowDataForm Methode

Laufzeitfehler 1004 - ShowDataForm Methode
22.08.2023 11:20:30
Lucas
Habe eine Youtubevideo geschaut und Schritt für Schritt nachgebaut. Ich will eine Schaltfläche einbauen um die Maske zu öffnen.
Habe alles nach Anleitung im Video gemacht und das Makro aufgezeichnet. Jedoch erscheint mir folgende Fehlermeldung.

"Laufzeitfehler 1004 - Die ShowDataForm-Methode des Worksheet-Objekts konnte nicht ausgeführt werden."

Der Code, der sich durch Marko aufzeichnen selbst erstellt hat, sieht wie folgt aus:

Sub Maske()
'
' Maske Makro
'

'
Range("AC_Lagerbestand[[#Headers],[Material ID]]").Select
ActiveSheet.ShowDataForm
End Sub

Was mache ich falsch?

Danke im Voraus für eure Hilfe.
Lucas
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 - ShowDataForm Methode
22.08.2023 11:31:51
Oberschlumpf
Hi,

erst mal falsch finde ich, dass du uns nich den YouTube-Link verrätst.
Was noch falsch sein kann, sehen wir dann...später...vielleicht.

Ciao
Thorsten
Laufzeitfehler 1004 - ShowDataForm Methode
22.08.2023 11:51:13
daniel
HI
du solltest die Datei dazu hochladen, damit man testen kann.
die Fehlerursache liegt nicht immer im Code, sondern manchmal auch in den Daten.
Gruß Daniel
Anzeige
Laufzeitfehler 1004 - ShowDataForm Methode
22.08.2023 11:56:13
GerdL
Hallo Lucas,

du solltest das formatierte intelligente Tabellchen nach A1 schieben.
Sub Unit()


Tabelle1.ListObjects(1).DataBodyRange.Columns(1).Select
Tabelle1.ShowDataForm

End Sub

Gruß Gere
Laufzeitfehler 1004 - ShowDataForm Methode
23.08.2023 10:40:20
Lucas
Hallo Ulf,

vielen lieben Dank. Darf ich fragen, wie das nun geklappt hat?
Weil ich habe zwischenzeitlich an meiner Lagerverwaltung viel weitergeschrieben und hätte dann nur mit deiner Hilfe den Code eingefügt, so dass es bei meiner Datei funktioniert.

Liebe Grüße
Lucas
Laufzeitfehler 1004 - ShowDataForm Methode
23.08.2023 10:54:20
daniel
wie das funktioniert hat, geht doch klar und eindeutig aus dem Code hervor.
schöner Trick. Muss man mal drauf kommen, dass das funktioniert
Aber Namen machen auch an anderer Stelle Dinge möglich, die so direkt nicht funktionieren (zumindest in älteren Excelversionen, aber das Datenformular ist ja auch schon alt)
Gruß Daniel
Anzeige
Noch einfacher.
23.08.2023 11:03:39
daniel
Hi
mal kurz mit der Idee von Ulf rumgespielt, das geht sogar noch einfacher.
es reicht, die Linke obere Zelle anzugeben, dann auf das Worksheet zu verweisen und dann kann man die Dataform aufrufen:

Range("B4").Worksheet.ShowDataForm


du kannst allerdings auch auf die Tabelle referenzieren, dann funktioniert der Code ohne änderung, falls du weitere Zeilen oberhalb oder Spalten davor einfügst

Range("Datenbank").Worksheet.ShowDataForm



Gruß Daniel
Anzeige
Noch einfacher.
23.08.2023 11:18:02
Lucas
Hi Daniel.

tut mir leid. Ich kenne mich einfach nicht aus. Deshalb muss ich immer so blöd fragen.
Ich habe den Code von dir jetzt mal kopiert und eingefügt. Sieht dann so aus:

Sub Maske()
'
' Maske Makro
'

'
Range("B4").Worksheet.ShowDataForm

End Sub

Es kommt trotzdem noch die Fehlermeldung 1004. Und der Debugger zeigt mir die Zeile gelb an.

Auch wenn ich die Bezeichnung der Tabelle reinnehme, immer noch die selbe Meldung.

Sub Maske()
'
' Maske Makro
'

'
Range("AC_Lagerbestand").Worksheet.ShowDataForm

End Sub

Es tut mir Leid, bestimmt ist das nicht schwer, für mich momentan jedoch sehr, da ich es noch nicht verstehe
Anzeige
Noch einfacher.
23.08.2023 11:46:24
daniel
Hi
da bin ich überfragt.
mit der Beispieldatei von Ulf hat es funktioniert, auf die Schnelle sehe ich aber signifikanten Unterschied.
dann machs so wie Ulf es vorschlägt, oder verschiebe die Tabellen nach A1
Ich sehe keinen Grund, der dagegen spricht.
Gruß Daniel
Laufzeitfehler 1004 - ShowDataForm Methode
22.08.2023 12:03:59
Lucas
Hi Gere,

danke für deine Nachricht. Ich möchte es nur ungern in A1 verschieben, da ich im oberen Bereich der Datei Eine Überschrift usw habe, die ich eigentlich nicht woanders hinstellen möchte. Habe auch eine Beispieldatei hochgeladen habt.
Anzeige
Laufzeitfehler 1004 - ShowDataForm Methode
23.08.2023 08:06:25
Lucas
Guten Morgen Gere,

konntest du meine Datei sehen? Ich selbst hab sie irgendwie nirgends gesehen. Gibt es auch eine Möglichkeit, ohne, dass die Tabelle in A1 beginnt?

https://www.herber.de/bbs/user/162441.xlsm

Liebe Grüße
Lucas
Anzeige
Laufzeitfehler 1004 - ShowDataForm Methode
23.08.2023 10:46:09
daniel
Hi
das Datenformular ist schon recht alt und wenn das direkt am Worksheet-Objekt hängt, dann hat man auch keine Möglichkeit den Zellbereich zu beeinflussen.
Allerdings sehe in deiner Beispieldatei auch keinen Grund, warum die Tabelle nicht in A1 beginnen könnte.
Oberhalb hast du doch nur Grafikelemente, und für die kannst du auch genügend Platz schaffen, in dem du die Zeilenhöhe der ersten Zeile entsprechend vergrößerst und die Zellinhalte (=überschriften) dann am unteren Rand anzeigen lässt.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 1004 - Lösung für die ShowDataForm Methode


Schritt-für-Schritt-Anleitung

Wenn du mit der Fehlermeldung "Laufzeitfehler 1004 - Die ShowDataForm-Methode des Worksheet-Objekts konnte nicht ausgeführt werden" konfrontiert bist, gehe folgendermaßen vor:

  1. Tabellenformat prüfen: Stelle sicher, dass deine Daten in einer Excel-Tabelle formatiert sind. Du kannst dies tun, indem du den Bereich auswählst und Strg + T drückst, um eine Tabelle zu erstellen.

  2. Makro erstellen: Öffne den VBA-Editor mit Alt + F11.

  3. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  4. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub Maske()
       Range("AC_Lagerbestand[[#Headers],[Material ID]]").Select
       ActiveSheet.ShowDataForm
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros > Maske > Ausführen aus.


Häufige Fehler und Lösungen

  • Fehler 1004: Dieser tritt häufig auf, wenn die Daten nicht richtig formatiert sind oder der Bezug zur Tabelle nicht korrekt ist. Überprüfe, ob du die Tabelle nach A1 verschoben hast, wie es von einigen Benutzern empfohlen wurde.

  • Datenbereich prüfen: Stelle sicher, dass der Bereich, den du angeben möchtest, auch tatsächlich existiert und nicht leer oder falsch formatiert ist.

  • Referenzierung der Tabelle: Wenn du die Tabelle nicht nach A1 verschieben möchtest, versuche, den Datenbereich explizit anzugeben, z.B. Range("Datenbank").Worksheet.ShowDataForm.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, die ShowDataForm Methode zu verwenden:

  1. Direkte Zellreferenz: Du kannst die obere linke Zelle der Tabelle angeben:

    Range("B4").Worksheet.ShowDataForm
  2. Benennung der Tabelle: Wenn deine Tabelle einen Namen hat, kannst du auch direkt auf diesen Namen verweisen:

    Range("Datenbank").Worksheet.ShowDataForm

Diese Methoden sind nützlich, wenn du nicht möchtest, dass die Tabelle in Zelle A1 beginnt.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung der ShowDataForm Methode:

  1. Mit Header-Referenz:

    Sub Maske()
       Range("AC_Lagerbestand[[#Headers],[Material ID]]").Select
       ActiveSheet.ShowDataForm
    End Sub
  2. Einfacher Aufruf:

    Sub Maske()
       Range("B4").Worksheet.ShowDataForm
    End Sub

Diese Beispiele zeigen dir, wie du das Datenformular in deiner Excel-Datei aufrufen kannst.


Tipps für Profis

  • Debugging: Nutze den Debugger in VBA, um herauszufinden, welche Zeile den Fehler verursacht. Wenn eine Zeile gelb markiert wird, bedeutet dies, dass dort ein Problem besteht.

  • Verwendung von Namensbereichen: Es ist oft hilfreich, die Bereiche in deiner Tabelle zu benennen. So kannst du sie leichter referenzieren und die Lesbarkeit deines Codes verbessern.

  • Kombination von Methoden: Scheue dich nicht, verschiedene Methoden zu kombinieren, um die beste Lösung für deine spezifischen Bedürfnisse zu finden.


FAQ: Häufige Fragen

1. Warum erscheint der Laufzeitfehler 1004? Der Laufzeitfehler 1004 tritt häufig auf, wenn die ShowDataForm Methode nicht auf einen gültigen Bereich oder eine Tabelle angewendet wird. Überprüfe die Datenformatierung und die Zellreferenzen.

2. Kann ich das Datenformular verwenden, ohne die Tabelle in A1 zu verschieben? Ja, du kannst die obere linke Zelle der Tabelle referenzieren oder den Namen der Tabelle verwenden, um das Datenformular aufzurufen, ohne die Tabelle in A1 zu verschieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige