'Range' für das Objekt '_Global' ist fehlgeschlagen
#1
Hallo Community,

für meine Zeiterfassung (Tagesarbeitszettel) habe ich eine UserForm mit mehreren Comboboxen.
Die aufgelisteten ´Werte fülle ich momentan mittels .AddItem

Gerne würde ich diese per Range und Namenseditor abfragen lassen.
Bei einer einzigen Combobox funktioniert das. Sobald ich eine weitere hinzufüge, bekomme ich den Fehlercode 1004.


Meine Musterdatei (ohne Makros) ist anhängend. Für alle anderen hier der


Code:
Private Sub cmdAbbrechen_Click()
'Schließt das Formular

Unload frmTageszettel
End Sub

Private Sub cmdEingabe_Click()
'Fügt die eingetragenen Werte ins Tabellenblatt und schließt das Formular

Dim intErsteLeereZeile As Long


With ActiveSheet
   intErsteLeereZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1
   
   .Cells(intErsteLeereZeile, 1).Value = Me.cboMonteur.Value
   .Cells(intErsteLeereZeile, 2).Value = CDate(Me.txtDatum.Value)
   .Cells(intErsteLeereZeile, 3).Value = Me.cboKuerzel.Value
   .Cells(intErsteLeereZeile, 4).Value = Me.cboKunde.Value
   .Cells(intErsteLeereZeile, 5).Value = Me.txtAuftragsnummer.Value
   .Cells(intErsteLeereZeile, 6).Value = Me.cboKategorien.Value
   .Cells(intErsteLeereZeile, 7).Value = Me.txtZeit.Value
End With

Unload frmTageszettel
End Sub

Private Sub UserForm_Initialize()
'Werte beim Aufruf des Formulars eintragen. Formular initialisieren

Dim rngKategorien As Range
Dim rngKunde As Range
   
    For Each rngKunde In Range("Kunde")
       With Me.cboKunde
       .AddItem rngKunde.Value
       .List(.ListCount - 1, 1) = rngKunde.Offset(0, 1).Value
   End With
   Next rngKunde
   
'    For Each rngKategorien In Range("Kategorien")
'        With Me.cboKategorien
'        .AddItem rngKategorien.Value
'        .List(.ListCount - 1, 1) = rngKategorien.Offset(0, 1).Value
'    End With
'    Next rngKategorien
   
   With Me
       .txtDatum.Value = Date
       .txtZeit.Value = 1
       ' .cboKuerzel.List = Range("Kuerzel")
       ' .cboMonteur.List = Range("Monteur")
       .cboKunde.List = Range("Kunde").Value
       ' .cboKategorien.List = Range("Kategorien").Value
   
   With .cboKuerzel
       .AddItem "FAB"
       .AddItem "BTB"
   End With
               
   With .cboMonteur
       .AddItem "MB"
       .AddItem "KT"
   End With
   
   With .cboKategorien
       .AddItem "Montage"
       .AddItem "Restarbeiten"
       .AddItem "Restarbeiten 3"
       .AddItem "Restarbeiten 4"
       .AddItem "Rekla1"
       .AddItem "Rekla2"
       .AddItem "Rekla3"
       .AddItem "Rekla4"
       .AddItem "Lager"
    End With
    End With
   

'    For Each rngKategorien In Range("Kategorien")
'        With Me.cboKategorien
'        .AddItem rngKategorien.Value
       'Jede Zelle im Bereich Kategorien wird nach und nach über AddItem ergänzt
       
'        .List(.ListCount - 1, 1) = rngKategorien.Offset(0, 1).Value
       'Gleichzeitig im Eigenschaftenfenster darauf achten, dass dieser Combobox eine weitere Spalte zugewiesen wird
'    End With
'    Next rngKategorien
   'Die Schleife wird so lange durchlaufen, wie es Zellen im Bereich Kategorien gibt

End Sub

'############################################################
'   Suchen, ob "Bezeichnung" bereits in Erfassen! vorhanden ist
'   Vergleich -> Monteur mit Auftragsnummer und Bezeichnung
'   F E H L E R
'############################################################


'Sub suchen()
'    Dim ws As Worksheet
'    Dim Kategorien As String
'    Dim c As Range
   
   
'    Set ws = ActiveSheet
   
'    Set c = ws.Range("F:F").Find(Kategorien, LookIn:=xlValues, LookAt:=xlWhole)
'    If Not c Is Nothing Then
'        MsgBox "Wert ist vorhanden in der Zeile " & c.Row
'    Else
'        '' Wenn Wert nicht vorhanden, eintragen
'    End If
'End Sub


Angehängte Dateien
.xlsx   muster_verkleinert (1).xlsx (Größe: 29,53 KB / Downloads: 4)
Top
#2
Hallo,
.cboKuerzel.List = Application.Transpose(Range("Kuerzel").Value)
Gruß Uwe
Top
#3
Hallo,

(19.04.2017, 21:23)mrthiemann schrieb: Meine Musterdatei (ohne Makros) ist anhängend.

nicht so gut. Es muss dann erst eine Userform mit den dazu gehörenden Elemente erstellt werden. Undecided
Gruß Stefan
Win 10 / Office 2016
Top
#4
Hallo,

nimm den Blattnamen noch mit dazu:

.cboKuerzel.List = Sheets("Einstellungen").Range("Kuerzel").Value
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • mrthiemann
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste