Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

'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)
Schöne Grüße
Karsten
Antworten Top
#2
Hallo,
.cboKuerzel.List = Application.Transpose(Range("Kuerzel").Value)
Gruß Uwe
Antworten Top
#3
Hallo,

(19.04.2017, 20: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
Antworten 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
Antworten Top


Gehe zu:


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