Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

Laufzeitfehler '1004' Anwendungsfehler

Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 09:59:21
Max
Hallo liebes Forum,
Ich melde mich erneut mit einem Problem an euch. Und möchte mich jetzt schon für die ganze Hilfe in den letzten Tagen bedanken! Ich bin total begeistert, wie hilfsbereit die Menschen hier sind!
Zu meinem Problem: Ich habe es inzwischen (mit eurer Hilfe) geschafft, dass es mir die Inhalte aus der Tabelle in der Listbox angezeigt werden. Jetzt möchte ich die Eigenschaft hinzufügen, dass ich den Eintrag aus der ListBox anwählen kann und es mir die Inhalte in die Textfelder überträgt. Versuche ich das, zeigt es mir den Fehler '1004' "Anwendungs- oder objektbezogener Fehler" an. Beim Debuggen wählt er folgende Zeile aus:
Private Sub ListBox1_Maschine1_Click()
Dim IngZeile As Long
Dim i As Integer
IngZeile = Me.ListBoxA_Reaktor.Column(1, Me.ListBoxA_Reaktor.ListIndex)
For i = 1 To 10
Me.Controls("TextBox" & i).Value = Tabelle37.Cells(IngZeile, i).Value (er zeigt mir diese Zeile an)
Next i
Außerdem habe ich das Problem, dass es mir nur den ersten Eintrag meiner Listbox vollständig anzeigt, von den anderen Einträgen bildet er mir nur eine Zeile ab. Ich vermute, dass hängt mit meiner Autofill Funktion zusammen:
Private Sub Autofill()
Const lastEntries = 20
Dim IngZeile As Long
Dim IngZeileMax As Long
Dim i As Integer
Me.ListBoxA_Reaktor.Clear
With Tabelle37
IngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For IngZeile = WorksheetFunction.Max(1, IngZeileMax - lastEntries + 1) To IngZeileMax
Me.ListBoxA.AddItem .Cells(IngZeile, 1).Value
Me.ListBoxA.Column(1, i) = .Cells(IngZeile, 1).Value
Me.ListBoxA.Column(2, i) = .Cells(IngZeile, 8).Value
Me.ListBoxA.Column(3, i) = .Cells(IngZeile, 12).Value
Me.ListBoxA.Column(4, i) = .Cells(IngZeile, 13).Value
Me.ListBoxA.Column(5, i) = .Cells(IngZeile, 14).Value
Me.ListBoxA.Column(6, i) = .Cells(IngZeile, 15).Value
Me.ListBoxA.Column(7, i) = .Cells(IngZeile, 16).Value
Me.ListBoxA.Column(8, i) = .Cells(IngZeile, 17).Value
Me.ListBoxA.Column(9, i) = .Cells(IngZeile, 18).Value
Next IngZeile
End With
Jetzt schon vielen Dank für eure Unterstützung!
Beste Grüße Max

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 10:06:14
Hans
... und da haben wir gleich ein schönes Beispiel dafür, wie die Sache aussehen würde, wenn hier die neue Code-Syntax-Formatierung angewandt worden wäre:

Private Sub ListBox1_Maschine1_Click()
Dim IngZeile As Long
Dim i As Integer
IngZeile = Me.ListBoxA_Reaktor.Column(1, Me.ListBoxA_Reaktor.ListIndex)
For i = 1 To 10
Me.Controls("TextBox" & i).Value = Tabelle37.Cells(IngZeile, i).Value (er zeigt mir diese Zeile an)
Next i
Außerdem habe ich das Problem, dass es mir nur den ersten Eintrag meiner Listbox vollständig anzeigt, von den anderen Einträgen bildet er mir nur eine Zeile ab. Ich vermute, dass hängt mit meiner Autofill Funktion zusammen:

Private Sub Autofill()
Const lastEntries = 20
Dim IngZeile As Long
Dim IngZeileMax As Long
Dim i As Integer
Me.ListBoxA_Reaktor.Clear
With Tabelle37
IngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
For IngZeile = WorksheetFunction.Max(1, IngZeileMax - lastEntries + 1) To IngZeileMax
Me.ListBoxA.AddItem .Cells(IngZeile, 1).Value
Me.ListBoxA.Column(1, i) = .Cells(IngZeile, 1).Value
Me.ListBoxA.Column(2, i) = .Cells(IngZeile, 8).Value
Me.ListBoxA.Column(3, i) = .Cells(IngZeile, 12).Value
Me.ListBoxA.Column(4, i) = .Cells(IngZeile, 13).Value
Me.ListBoxA.Column(5, i) = .Cells(IngZeile, 14).Value
Me.ListBoxA.Column(6, i) = .Cells(IngZeile, 15).Value
Me.ListBoxA.Column(7, i) = .Cells(IngZeile, 16).Value
Me.ListBoxA.Column(8, i) = .Cells(IngZeile, 17).Value
Me.ListBoxA.Column(9, i) = .Cells(IngZeile, 18).Value
Next IngZeile
End With
... Nix für ungut, hans
Anzeige
Frage noch offen
16.05.2022 10:19:12
Hans
... die Frage ist selbstverständlich noch offen ...
OffTopic...
16.05.2022 10:23:02
Oberschlumpf
Hi Hans,

na, DAS is doch mal n schönes Update! :-)
Danke + Tschüss
Thorsten
huch! natürlich...noch offen! owT
16.05.2022 10:23:42
Oberschlumpf
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 17:30:56
ChrisL
Hi Hans
Die neue Option gefällt mir, danke.
Ein kleiner Hinweis, was sich evtl. noch optimieren lässt (wenn nicht, ist auch kein Drama). Der Code-Block überlagert im Gegensatz zum restlichen Text die Titel-Leiste/Navigation.
Userbild
cu
Chris
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 17:32:15
ChrisL
PS:
Browser Chrome
Version 101.0.4951.67 (Offizieller Build) (64-Bit)
Anzeige
bei Firefox auch so (owT)
17.05.2022 10:24:10
Pierre
AW: bei Firefox auch so (owT)
17.05.2022 14:45:52
Hans
... das Problem ist, dass der Seiten-Header missachtet wird, was ich aber nicht korrigiert bekomme.
Die Alternative wäre, auf den Header zu verzichten und den Menübereich fix vorzugeben, so dass er beim Scrollen nicht mehr am oberen Rand erscheint.
Da mir das als die zweitbeste Möglichkeit erscheint, belasse ich es vorerst mal bei der derzeitigen Situation.
Gruß hans
Danke für die Rückmeldung owT.
18.05.2022 08:28:01
ChrisL
.
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 10:54:36
ChrisL
Hi Max
Eine kleine Beispieldatei würde helfen.
Womöglich sind die TextBox1 bis TextBox10 nicht vorhanden.
Und im zweiten Teil wird die Variable i nicht verändert und bleibt bei 0 stehen.
cu
Chris
Anzeige
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 10:59:17
Max
Hallo Chris,
Danke dir für deine Antwort! Ich bin leider ganz neu in dem Thema und weiß leider nicht, wie ich es schaffe, dass das i nicht bei 0 stehen bleibt. Wie würdest du den Fehler beheben?
Ich erstelle eine Beispielsdatei und lade sie dann anschließend hoch :)
Beste Grüße Max
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 14:40:05
ChrisL
Hi Max
Da dir das Konzept von Schleifen scheinbar nicht geläufig ist, versuche ich es mal mit einer KISS-Lösung ( https://de.wikipedia.org/wiki/KISS-Prinzip ).
Nicht benötigte Spalten werden einfach über die Spaltenbreite 0 ausgeblendet.

Private Sub UserForm_Initialize()
Dim wks As Worksheet: Set wks = Tabelle1
Me.Caption = wks.Range("B3").Value
With Me.ListBox1
.ColumnCount = 13
.ColumnWidths = "80;0;0;80;80;80;80;80;80;80;80;80;80"
.ColumnHeads = True
.RowSource = "'" & wks.Name & "'!A6:M" & wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
.SetFocus
End With
End Sub

Private Sub ListBox1_Click()
With Me.ListBox1
TextBox1 = .List(.ListIndex, 1)
ComboBoxFirma1_Maschine = .List(.ListIndex, 2)
TextBox5 = .List(.ListIndex, 3)
Datum = CDate(.List(.ListIndex, 0))
TextBox10 = .List(.ListIndex, 5)
TextBox11 = .List(.ListIndex, 6)
TextBox12 = .List(.ListIndex, 7)
TextBox13 = .List(.ListIndex, 8)
TextBox14 = .List(.ListIndex, 9)
TextBox15 = .List(.ListIndex, 10)
TextBox16 = .List(.ListIndex, 11)
TextBox17 = .List(.ListIndex, 12)
End With
End Sub
cu
Chris
Anzeige
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 15:41:45
ChrisL
Hi Max
Und wieder habe ich mich nur auf die Behebung der unmittelbaren Probleme konzentriert.
Nachdem ich die Antwort von Yal gelesen habe. Die (bisher nur angedeutete) Multipage Struktur wird tatsächlich eine Komplexität rein bringen, welche mit dem KISS-Prinzip (ich mag den Ausdruck ;) nicht mehr zu bewältigen ist. Ich würde überlegen, ob du die Struktur nicht vereinfachen willst, denn eine grössere Anzahl an Tabs (Firmen, Maschinen) ist ja auch nicht mehr übersichtlich und erfordert vertieftere Einarbeitung in VBA.
Ein weiterer Gedanke ist, ob du vielleicht in Access nicht besser aufgehoben wärst. Einerseits lassen sich damit einfacher (auch ohne umfangreiche VBA-Programmierung) Formulare erstellen und zudem funktionieren die Lösungen auch problemlos bei gleichzeitiger Nutzung durch mehrere User. Excel kann zwar auch Multi-User, aber es gilt die Einschränkungen von freigegebenen Mappen zu beachten.
Zudem deutet deine Mappe ansatzweise auf Tabellen-Beziehungen hin u.a. die Tabelle Metadaten, aber auch die Kunden-ID, welche womöglich mit Kundennamen und weiteren Details verbunden werden soll. Access kann mit solchen Datenbeziehungen leicht umgehen.
cu
Chris
Anzeige
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 15:45:23
Max
Hallo Chris,
Ich bin absolut bei dir und würde selber die ganze Sache noch einfacher gestalten, nur leider habe ich in der Wahl der Software und der Aufbereitung keinen Spielrahmen und muss mich an den Aufbau halten. Ich hätte das Ganze am Liebsten mit PowerApps gestaltet, da wäre das eine Sache von 3 Tagen gewesen. Jetzt muss ich mich wohl oder übel mit VBA durchkämpfen...
Nochmals vielen Dank dir für deine Hilfe, du hast mir unglaublich geholfen Chris!
Viele liebe Grüße Max
AW: Laufzeitfehler '1004' Anwendungsfehler
16.05.2022 14:46:33
Yal
Hallo Max,
ich stelle mich die Frage, was genau dein Ziel ist:
Möchtest Du VBA lernen? Dann fang zuerst mit kleineren Vorhaben. Wie z.B. eine For-Schleife zu verstehen.
Möchtest Du die Maschinendaten verwalten? Dann fang am liebsten ohne VBA, und versucht verschiedene verschiedene Wege, deine Daten zu strukturieren.
Was ich von deinem Werk sehen könnte, ist ein sehr komplizierte Verschachtelung von schwer handelbare Formular-Sonderfälle (Mulitpage). Also alles, was man sich als "Kaum Excel/VBA-Kenntnisse" sich vornehmen soll, um die 100%-ige Sicherheit zu haben zu scheitern.
Ich möchte dich nicht entmütigen, aber da nimmst Du dir zu viel auf einmal vor.
Das "i" nicht null bleibt, reicht zu sagen i = 5
Wenn i die Zeile nach der letzt befüllte Zeile in Spalte A sein soll, dann so
i = Worksheets("xyz").Cells(Rows.Count, "A").End(xlUp).Row + 1
VG
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige