Laufzeitfehler 1004 bei VBA Programmierung

Hallo,
ich habe ein Problem mit VBA Programmierung, wo mir immer Laufzeitfehler 1004 ( Die Methode Range für das Objekt_Global ist fehlgeschlagen.
Ich kann den Fehler nicht finden und benötige Hilfe.
Für die Unterstützung danke
Bernhard
Mein Programmierung sieht folgender Maßen aus:
Option Explicit

Private Sub cboKategorieSteuer_Change()

Me.cboKategorieSteuer.SetFocus
a = Me.cboKategorieSteuer.ListIndex
Me.cboSteuersatz.Value = Me.cboKategorieSteuer.List(a, 1)

End Sub

Private Sub cmbAbbruch_Click()
'Schließt das Formular Beitrag
Unload frmBeitrag

End Sub

Private Sub cmdEingabe_Click()
'Fügt die eingetragenen Werte ins Tabellenblatt und Schließt das Formular Beitrag
Dim intErsteLeereZeile As Long
Dim ccurNetto As Currency

With ActiveSheet
intErsteLeereZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1

.Cells(intErsteLeereZeile, 1).Value = Me.txtDatum.Value
.Cells(intErsteLeereZeile, 2).Value = Me.txtBezeichnung.Value
.Cells(intErsteLeereZeile, 3).Value = Me.cboKategorieSteuer.Value
.Cells(intErsteLeereZeile, 4).Value = CCur(Me.txtBrutto.Value)
.Cells(intErsteLeereZeile, 5).Value = CDbl(Me.cboSteuersatz.Value)
ccurNetto = Round(CCur(Me.txtBrutto.Value) / (1 + CDbl(Me.cboSteuersatz.Value)), 2)    'Summe wird auf 2 Nachkomme gerundet
.Cells(intErsteLeereZeile, 6).Value = ccurNetto
.Cells(intErsteLeereZeile, 7).Value = CCur(Me.txtBrutto.Value) - ccurNetto

End With

Unload frmBeitrag
End Sub

Private Sub UserForm_Initialize()
'WErte beim Aufruf des Formulars eintragen. Formular initialisieren
Dim rngKategorien As Range

With Me
    .txtDatum.Value = Date
    .txtBrutto.Value = 0
    .cboSteuersatz.List = Range("Steuersätze").Value

End With
For Each rngKategorien In Range(„Kategorien“)
With Me.cboKategorieSteuer

.AddItem rngKategorien.Value
'Jede Zelle im Bereich Kategorien wir nach und nach über AddItem gefüllt

.List(.ListCount - 1, 1) = rngKategorien.Offset(0, 1).Value
'Gleichzeitig im Eigenschaftsfenster darauf achten, dass dieser

End With
Next rngKategorien
'Die Schleiffe wird so lang durchlaufen, wie es Zeilen im Bereich Kategorien gefüllt sind

End Sub

Im Modul Programmierung habe ich folgenden Text:

Sub FormularAufruf()
'Formular frmBeitrag aufrufen

frmBeitrag.Show
End Sub

Hallo!

Das ist schon viel Code, und für einen Außenstehenden, der nicht weiß, was der Code bezweckt, eher mühselig zu verstehen. Daß die Formatierung nicht geklappt hat, macht es nicht einfacher.

Versuch es nächstes mal mit

<pre> 
MeinCode
</pre>

das macht ihn hier besser lesbar.

Zu deinem Fehler:

Du mußt versuchen, den Fehler einzugrenzen, sprich, rausfinden, in welcher Zeile das Problem auftritt. Danach kann man dann analysieren, warum es auftritt.
Die einfachste Methode wäre, in deinem Formular oder deiner Tabelle ein Feld zu haben, in das du einfach Text schreiben kannst. Dann spickst du deinen Code mit ganz vielen Zeilen ala 'Setze den Feldwert auf „Suche erste leere Zelle“ '. Wenn dein Programm dann abstürzt, solltest du immernoch sehen können, an welcher Stelle das passiert ist.

Diese Methode ist nicht so effizient wie ein Debugger, aber für den Anfang deutlich einfacher.

Moin,

geh den Ablauf im Einzelschritt (F8) durch, dann wird die auslösende Anweisung gelb markiert.

Meine Vermutung:

For Each rngKategorien In Range(„Kategorien“)</code

Gruß
Ralf

Hallo,
danke erst einmal für die Antwort.
Der Fehler muss im u.a. Text liegen.
ich habe mit F8 es mehrmals durchlaufen lassen und nur bei den u.a. Text wird es mit gelb markiert angezeigt.
Bernhard

Private Sub UserForm_Initialize()
'WErte beim Aufruf des Formulars eintragen. Formular initialisieren
Dim rngKategorien As Range

With Me
.txtDatum.Value = Date
.txtBrutto.Value = 0
.cboSteuersatz.List = Range(„Steuersätze“).Value

Ohne „es“ zu zeigen, ist die Aussage sinnlos. Wieder eine Vermutung: Range ist nicht gesetzt.

Gruß
Ralf

Hallo Ralf

Der Fehler zeigt sich beim Programmaufruf und Private Sub UserForm_Initialize()
Danach wird kein Fehler angezeit.
Gruß Bernhard

Programmierung
Sub FormularAufruf()
'Formular frmBeitrag aufrufen
frmBeitrag.Show --------wird gelb
End Sub

Private Sub UserForm_Initialize()----------------…wird gelb
'WErte beim Aufruf des Formulars eintragen. Formular initialisieren
Dim rngKategorien As Range

With Me
.txtDatum.Value = Date…wird gelb
.txtBrutto.Value = 0…wird gelb
.cboSteuersatz.List = Range(„Steuersätze“).Value…wird gelb

End With
For Each rngKategorien In Range(„Kategorien“)
With Me.cboKategorieSteuer

.AddItem rngKategorien.Value
'Jede Zelle im Bereich Kategorien wir nach und nach über AddItem gefüllt

.List(.ListCount - 1, 1) = rngKategorien.Offset(0, 1).Value
'Gleichzeitig im Eigenschaftsfenster darauf achten, dass dieser

End With