1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel: ShowDataForm

Discussion in 'Office-Programme' started by sebapegu, Oct 21, 2007.

Thread Status:
Not open for further replies.
  1. sebapegu

    sebapegu Byte

    Hallo zusammen,

    ich habe mir ein "Haushaltsbuch" in Excel erstellt.

    Nun möchte ich eine Maske über ein Makro aufrufen, über die ich dann Daten eingeben kann.

    Das Makro sieht bis jetzt so aus:

    ' Monat_auswählen Makro
    ' Makro am 20.10.2007 von xxx aufgezeichnet
    '
    ' Tastenkombination: Strg+m
    '
    MonatHB = InputBox("Monat eintragen:")
    Application.Goto Reference:=MonatHB
    ActiveSheet.ShowDataForm
    End Sub

    Zu erst soll über die InputBox der Monat eingegeben werden. Der Monat entspricht dann dem Sheet Namen.

    Leider bleibt mir das Makro bei der Zeile:

    ActiveSheet.ShowDataForm

    Mit der Fehlermeldung:

    Laufzeitfehler '1004'

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


    Hat jemand von euch eine Idee was ich hier falsch mache???

    Danke für eure Hilfe!!

    Gruß

    sebapegu
     
  2. Beverly

    Beverly Halbes Megabyte

    Hi,

    was ist MonatHB - eine Zelle mit definiertem Bereichsnamen die angesprungen werden soll (das würde ich dem Codeteil Application.Goto entnehmen)? Oder willst du mit diesem Namen in die betreffende Tabelle springen? Dann musst du sie auch erst aktivieren - z.B. Worksheets("MonatHB").Activate. Da der Code ActiveSheet.ShowDataForm nur funktioniert, wenn sich die Überschrift der Datentabelle in Zeile 1 befindet, musst du auch noch eine Zelle im Bereich der Datentabelle auswählen - z.B. Range("A1").Select, oder mittels Aplication.Goto in eine Zelle springen, die innerhalb der Datentabelle liegt und diesen Namen trägt. Der Code müsste dann in etwa so aussehen

    Code:
        Dim MonatHB As String
        MonatHB = InputBox("Monat eintragen:")
        Worksheets(MonatHB).Activate
        Application.Goto Reference:=MonatHB
        ActiveSheet.ShowDataForm
    
    Im Beispiel heißt das Tabellenblatt Januar und Zelle A1 ebenfalls.
     
  3. Hascheff

    Hascheff Moderator

    :confused: :grübel: :idee: Wolltest du noch eine Datei anhängen?
    Lohnt sich wohl nicht, du hast ja alles gut erklärt.
     
  4. Beverly

    Beverly Halbes Megabyte

    Der TO hat bereits Zeit und Mühe in seine Datei investiert und kennt den Aufbau wesentlich besser als ich. Ein Nachbau kann nie mit dem Original identisch sein und deshalb auch nicht alle Bedingungen berücksichtigen, zumal ja unklar ist, was genau er eigentlich meint.
     
  5. sebapegu

    sebapegu Byte

    Hallo ihr!

    Ich hab mal ein Bild vom Aufbau der Tabelle angehängt, denn ich glaube mittlerweile das der Fehler was mit dem Aufbau zu tun hat ...

    Wenn ich die Zeilen 1 - 6 lösche, dann geht der Code:

    ActiveSheet.ShowDataForm

    sofort, wenn ich die Zeilen 1 - 6 drinnen habe, klappt es nicht. :heul:

    Auch wenn ich das ganze so anpasse:

    Range("A8").Select
    ActiveSheet.ShowDataForm

    klappt es nicht.

    Wisst ihr was ich hier falsch mache?

    Danke und Gruß

    sebapegu
     

    Attached Files:

  6. Beverly

    Beverly Halbes Megabyte

    Hi,

    Genau das ist der Fehler in deinem Beispiel.
     
Thread Status:
Not open for further replies.

Share This Page