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

Seltsames Problem mit Combobox und Index

Seltsames Problem mit Combobox und Index
ray
Hallo und guten Morgen,
ich habe ein wirklich seltsames Problem. Mein Code, den ich von Euch bekommen habe und der funktioniert hat, funktioniert jetzt nicht mehr und ich weiß nicht warum.
Ich habe die ErrMld an die Stelle im Code geschrieben, wo sie entsteht:
'Laufzeitfehler 381; Eigenschaft List konnte nicht gesetzt werden.Index des Eigenschaftenffeld ungültig.
Hier der Code:
'#### ComboBox mit ALLEN Mänglen füllen START #### 
'On Error Resume Next 
Dim wbk As Workbook
   Dim wks As Worksheet
   Dim vRow As Variant
   Dim iRow As Integer, iRowT As Integer, iRowL As Integer
   
   Application.ScreenUpdating = False
   
   Set wbk = Workbooks.Open("E:\daten\mängelliste.xls")
   
            Set wks = wbk.Sheets(1)
            iRowL = wks.Cells(wks.Rows.Count, 8).End(xlUp).Row

            Workbooks.Add
            For iRow = 1 To iRowL
                vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                If IsError(vRow) Then
                  iRowT = iRowT + 1
                  Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                End If
            Next iRow
            Range("a1").CurrentRegion.Sort _
               key1:=Range("a1"), order1:=xlAscending, Header:=xlNo
            
            With cbMängelAlle
            'Laufzeitfehler 381; Eigenschaft List konnte nicht gesetzt werden.Index des Eigenschaftenffeld ungültig. 
               .List = Range("A1").CurrentRegion.Value 
               If .ListCount > 0 Then .ListIndex = 0 
            End With
            ActiveWorkbook.Close savechanges:=False
            
            'jetzt nochmal nur mit WhgNr 
            On Error GoTo zError
                       iRowL = 0
                       iRowT = 0
                       Set wks = wbk.Sheets(1)
                        iRowL = wks.Cells(wks.Rows.Count, 8).End(xlUp).Row
                        Workbooks.Add
                        
                        For iRow = 1 To iRowL
                         If wks.Cells(iRow, 3).Value = lbWhg Then
                         vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                             If IsError(vRow) Then
                             iRowT = iRowT + 1
                             Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                             End If
                         End If
                         Next iRow
                        
                           
                        Range("a1").CurrentRegion.Sort _
                           key1:=Range("A1"), order1:=xlAscending, Header:=xlNo
                        
                        
                        Dim vTemp  As Variant
                        With wks 'ThisWorkbook.Worksheets("Tabelle1") 
                          vTemp = .Range("A2:H" & .Cells(Rows.Count, 1).End(xlUp).Row)
                        End With
            
                        With frmAuftrag.cbMängelAlle
                        .List = vTemp
                          If .ListCount > 0 Then .ListIndex = 0
                          
                          
                          
                          
                        'With frmAuftrag.cbMängelAlle 
                         '  .List = Range("A1").CurrentRegion.Value 
                          ' If .ListCount > 0 Then .ListIndex = 0 

                        End With

zError:
            
            ActiveWorkbook.Close savechanges:=False
   
   wbk.Close
   
   Set wbk = Nothing
   Set wks = Nothing
   
   Application.ScreenUpdating = True
'#### ComboBox mit Mänglen füllen ENDE #### 

Kann mir bitte jemand sagen, was ich kaputt gemacht habe. Ich habe gestern 4 Stunden rumprobiert und bin einfach zu blöd....
Viele Grüße aus dem für Oktober viel zu kalten Hamburg bei 5,5 Grad
Ray

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Seltsames Problem mit Combobox und Index
22.10.2009 10:01:15
Oberschlumpf
Hi Ray
Ohne Bsp-Datei von dir kann ich leider nich sooo viel sagen.
Aber ich seh in deinem Codeausschnitt nirgdwo ne Zeile mit
cbMängelAlle.AddItem (dieser Befehl fügt einer Combobox Einträge hinzu)
Und wenn eben ne Combobox-Liste leer ist, du dann aber mit .List einen ganz bestimmten Eintrag aus der Liste auswählen willst, dann geht das eben nicht.
Aber ob ich damit Recht habe, weiss ich nich...weil...wie gesagt...mit Bsp-Datei kann zumindest ich besser was anfangen.
Viele Grüße aus...der gleichen Stadt :)
Thorsten
AW: Seltsames Problem mit Combobox und Index
22.10.2009 10:23:13
ray
Hallo und danke. Aber ich komme nicht weiter.
Hab jetzt den Code abgespeckt und bekomme gleiche ErrMld:
'#### ComboBox mit ALLEN Mänglen füllen START #### 
Dim wbk As Workbook
   Dim wks As Worksheet
   Dim vRow As Variant
   Dim iRow As Integer, iRowT As Integer, iRowL As Integer
   
   Application.ScreenUpdating = False
   
   Set wbk = Workbooks.Open("F:\daten\mängelliste.xls")
   
            Set wks = wbk.Sheets(1)
            iRowL = Cells(Rows.Count, 8).End(xlUp).Row
            Workbooks.Add
            For iRow = 1 To iRowL
                vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                If IsError(vRow) Then
                  iRowT = iRowT + 1
                  Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                End If
            Next iRow
            Range("a1").CurrentRegion.Sort _
               key1:=Range("a1"), order1:=xlAscending, Header:=xlNo
            With cbMängelliste123
               .List = Range("A1").CurrentRegion.Value
               If .ListCount > 0 Then .ListIndex = 0
            End With

   ActiveWorkbook.Close savechanges:=False
   wbk.Close
   
   Set wbk = Nothing
   Set wks = Nothing
   
   Application.ScreenUpdating = True
'#### ComboBox mit Mänglen füllen ENDE #### 
Was kann ich nur tun?
VG der wieder mal verzweifelte Ray aus Hamburg meine Perle...
Anzeige
AW: Datei anliegend
22.10.2009 10:40:06
Oberschlumpf
Hi
Ich kann die Datei leider nicht in XL öffnen (der VBA-Editor lässt mich nicth an den Code). Vielleicht magst du sie noch mal als xls-Datei speichern und hier zeigen.
Ciao
Thorsten
AW: Datei anliegend
22.10.2009 10:43:18
ray
hi,
die Datei hat keinen code. Das ist die Datei, die geöffnet und verarbeitet wird.
Gruß Ray
loool
22.10.2009 10:46:04
Oberschlumpf
Und WIE, bitte schön, hätte ich oder wer anders dir helfen sollen, wenn du uns nur eine unvollständige Datei zeigst, mit der es NICHT möglich ist, sich den Fehlercode anzugucken?
Aber na ja...nu haste es ja selbst gelöst.
Anzeige
Kann ja vielleicht auch an der xls liegen, oder?
22.10.2009 12:01:41
ray
Keine Ahnung was loool heißt, aber die Mappe mit code kann ich nicht hochladen und es kann ja wohl auch sein, das es an mängelliste.xls liegt, oder? Ich weiß es nicht und deswegen frage ich ja auch.
WEnn ich A1 durhc A2 tausche, läuft der Code bis 'hier break xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'#### ComboBox mit ALLEN Mänglen füllen START #### 
'On Error Resume Next 
Dim wbk As Workbook
   Dim wks As Worksheet
   Dim vRow As Variant
   Dim iRow As Integer, iRowT As Integer, iRowL As Integer
   
   Application.ScreenUpdating = False
   'Box füllen mit allen Mängeln und sortieren, doppelte nicht anzeigen 
   Set wbk = Workbooks.Open("f:\daten\mängelliste.xls")
   
            Set wks = wbk.Sheets(1)
            iRowL = wks.Cells(wks.Rows.Count, 8).End(xlUp).Row

            Workbooks.Add
            For iRow = 1 To iRowL
                vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                If IsError(vRow) Then
                  iRowT = iRowT + 1
                  Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                End If
            Next iRow
            Range("a2").CurrentRegion.Sort _
               key1:=Range("a2"), order1:=xlAscending, Header:=xlNo
            
            With cbMängelliste
            'Laufzeitfehler 381; Eigenschaft List konnte nicht gesetzt werden.Index des Eigenschaftenffeld ungültig. Lösung: Überall A2 statt A1 eingeben. 
               .List = Range("A2").CurrentRegion.Value
               If .ListCount > 0 Then .ListIndex = 0
            End With
            ActiveWorkbook.Close savechanges:=False
            
            'jetzt nochmal nur mit WhgNr 
            On Error GoTo zError
                       iRowL = 0
                       iRowT = 0
                       Set wks = wbk.Sheets(1)
                        iRowL = wks.Cells(wks.Rows.Count, 8).End(xlUp).Row
                        Workbooks.Add
                        
                        For iRow = 1 To iRowL
                         If wks.Cells(iRow, 3).Value = frmAuftrag.lbWhg Then
                         vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                             If IsError(vRow) Then
                             iRowT = iRowT + 1
                             Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                             End If
                         End If
                         Next iRow
                        
                         'hier break xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
                        Range("a1").CurrentRegion.Sort _
                           key1:=Range("A1"), order1:=xlAscending, Header:=xlNo
                        
                        
                        Dim vTemp  As Variant
                        With wks 'ThisWorkbook.Worksheets("Tabelle1") 
                          vTemp = .Range("A2:H" & .Cells(Rows.Count, 1).End(xlUp).Row)
                        End With
            
                        With frmAuftrag.cbMängelAlle
                        .List = vTemp
                          If .ListCount > 0 Then .ListIndex = 0
                          
                          'With frmAuftrag.cbMängelAlle 
                         '  .List = Range("A1").CurrentRegion.Value 
                          ' If .ListCount > 0 Then .ListIndex = 0 

                        End With

zError:
            
            ActiveWorkbook.Close savechanges:=False
   
   wbk.Close
   
   Set wbk = Nothing
   Set wks = Nothing
   
   Application.ScreenUpdating = True
'#### ComboBox mit Mänglen füllen ENDE #### 
Jemand noch ne Idee?
Gruß Ray
Anzeige
Fehler weiter eingegrenzt:
22.10.2009 10:42:01
ray
Dieser Code geht:
Dim wbk As Workbook
   Dim wks As Worksheet
   Dim vRow As Variant
   Dim iRow As Integer, iRowT As Integer, iRowL As Integer
   
   Application.ScreenUpdating = False
   
   Set wbk = Workbooks.Open("F:\daten\mängelliste.xls")
   
            Set wks = wbk.Sheets(1)
            With cbMängelliste123
               .List = Range("A1").CurrentRegion.Value
               If .ListCount > 0 Then .ListIndex = 0
            End With
         
    wbk.Close savechanges:=False
            
   Set wbk = Nothing
   Set wks = Nothing
   
   Application.ScreenUpdating = True
Gruß Ray
Anzeige
die Lösung:
22.10.2009 13:35:33
ray
Eine Box mit allen Mängeln füllen, die andere nur mit denen der Whg:
'#### ComboBox mit ALLEN Mänglen füllen START #### 
'On Error Resume Next 
Dim wbk As Workbook
   Dim wks As Worksheet
   Dim vRow As Variant
   Dim iRow As Integer, iRowT As Integer, iRowL As Integer
   
   Application.ScreenUpdating = False
   'Box füllen mit allen Mängeln und sortieren, doppelte nicht anzeigen 
   Set wbk = Workbooks.Open("f:\daten\mängelliste.xls")
   
            Set wks = wbk.Sheets(1)
            iRowL = wks.Cells(wks.Rows.Count, 8).End(xlUp).Row

            Workbooks.Add
            For iRow = 1 To iRowL
                vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                If IsError(vRow) Then
                  iRowT = iRowT + 1
                  Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                End If
            Next iRow
            Range("a2").CurrentRegion.Sort key1:=Range("a2"), order1:=xlAscending, Header:=xlNo
            
            With cbMängelliste
            'Laufzeitfehler 381; Eigenschaft List konnte nicht gesetzt werden.Index des Eigenschaftenffeld ungültig. Lösung: Überall A2 statt A1 eingeben. 
               .List = Range("A2").CurrentRegion.Value
               If .ListCount > 0 Then .ListIndex = 0
            End With
            'ActiveWorkbook.Close savechanges:=False 
            
            'jetzt nochmal nur mit WhgNr 
            On Error GoTo zError 'muß rein, da er sonst bei sortieren Err weil Liste leer und nix kann man nicht sortieren 
                       iRowL = 0
                       iRowT = 0
                       Set wks = wbk.Sheets(1)
                        iRowL = wks.Cells(wks.Rows.Count, 8).End(xlUp).Row
                        Workbooks.Add
                        MsgBox "hallo"
                        For iRow = 1 To iRowL
                         If wks.Cells(iRow, 3).Value = frmAuftrag.lbWhg Then
                         vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(1), 0)
                             If IsError(vRow) Then
                             iRowT = iRowT + 1
                             Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
                             End If
                         End If
                         Next iRow
                        
                           
                        Range("a1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlNo
                       
                        
                        Dim vTemp  As Variant
                        With wks 'ThisWorkbook.Worksheets("Tabelle1") 
                          vTemp = Range("A2").CurrentRegion.Value '.Range("A1:H" & .Cells(Rows.Count, 1).End(xlUp).Row) 
                        End With
            
                        With frmAuftrag.cbMängelAlle
                        .List = vTemp
                          If .ListCount > 0 Then .ListIndex = 0
                          
                          'With frmAuftrag.cbMängelAlle 
                         '  .List = Range("A1").CurrentRegion.Value 
                          ' If .ListCount > 0 Then .ListIndex = 0 

                        End With

zError:
            
            ActiveWorkbook.Close savechanges:=False
   
   wbk.Close
   
   Set wbk = Nothing
   Set wks = Nothing
   
   Application.ScreenUpdating = True
'#### ComboBox mit Mänglen füllen ENDE #### 

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige