Clever-Excel-Forum

Normale Version: ComboBox mit Teil einer Liste füllen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hi Ralf,

(02.08.2016, 14:51)Rabe schrieb: [ -> ]ok, dann nehme ich seine.
welche jetzt genau? ;)

(02.08.2016, 14:51)Rabe schrieb: [ -> ]Jetzt noch zusätzliche Fragen:
Was hat das mit diesem Thema zu tun!?

PS: Wirst Du dann in bimbims Copyright mit eingeschlossen?

Gruß Uwe
Hi Uwe,

(02.08.2016, 15:07)Kuwer schrieb: [ -> ]welche jetzt genau? ;)

Was hat das mit diesem Thema zu tun!?

PS: Wirst Du dann in bimbims Copyright mit eingeschlossen?

Ich habe die erste von Dir genannte (von 10:12 h) genommen, hatte gar nicht gemerkt, daß die Diskussion noch weiter ging.

Naja, die Zeilennnummer der ausgewählten A-Nr. hat schon direkt damit zu tun.

Die folgende Frage, warum nur ein Teil übertragen wird, nicht unbedingt.

Ob Manfred mich in sein © aufnimmt, weiß ich nicht, ist mir aber auch egal.
Du hast natürlich recht, es ist die Datei von bimbim, aber mit zusätzlichen Daten. Ich will die nicht weitergeben, da ich nicht weiß, ob es echte sind.
Aber mal schauen, ob es vielleicht mit meiner letzten veröffentlichten Version geht:
http://www.clever-excel-forum.de/thread-...l#pid47949
Hi Ralf,

(02.08.2016, 14:59)RPP63 schrieb: [ -> ]Ich würde dies mit 
WorksheetFunction.Match(CB1.Text, Columns(9), 0)
erledigen.

ich habe es so probiert,
      Zeile = WorksheetFunction.Match(ComboBox1.Text, Columns(9), 0).Row  'ComboBox1.ListIndex + 2 
aber da kommt folgender Fehler:
ungültiger Bezeichner für
.Match
Moin!
Wieso .Row?
.Match liefert die Fundstelle im Vektor, keinen Range!
Ich schrieb ja auch:
Zitat:WorksheetFunction.Match(CB1.Text, Columns(9), 0)
Da steht nix von .Row am Ende.

Gruß Ralf
Hi Ralf,

(03.08.2016, 10:35)RPP63 schrieb: [ -> ]Da steht nix von .Row am Ende.

Auch wenn ich in der Code-Zeile das .Row weglasse kommt der gleiche Fehler.
Zeile ist Long, ist das vielleicht falsch?
Kann ich nicht nachvollziehen, Ralf.
A
1a
2b
3c
4d
5e
6f
7g
8h
9i

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Direktfenster:
Code:
?WorksheetFunction.Match("e",columns(1),0)
5

Gruß Ralf
Hi Ralf,

(03.08.2016, 10:52)RPP63 schrieb: [ -> ]Direktfenster:
Code:
?WorksheetFunction.Match("e",columns(1),0)
5

ich habe Dir mal einen Link zur Datei geschickt.

Dann kannst Du auch gleich das Übertragen der Daten in die Eingabe-Userform testen. :21:
PN erhalten!
Ich kümmere mich später darum, bis jetzt erst mal außer Haus.

Bis dahin, Gruß Ralf
Hallo Ralf,

vielleicht eine andere Idee.
Mach doch die Combobox mehrspaltig (2?). Der zweiten Spalte gibst Du die Länge 0.
Beim Befüllen der Combobox gibst Du der zweiten Spalte den Zeilenindex mit.

Code:
Combobox.Column(0, 2) = Cells(zelle, 1).Row

Im Click-Event der Combobox fragst Du dann die Zeilenindex ab.


Gruß
Ich
Halo,

(03.08.2016, 15:20)IchBinIch schrieb: [ -> ]vielleicht eine andere Idee.

das klingt gut und zielführend. Leider kriege ich es nicht hin.

Hier meine beiden Codes zum Initialisieren/Füllen der Combobox und zum Auslesen der Daten:
Private Sub UserForm_Initialize()
   Dim loLetzte As Long
   Dim objWs As Worksheet

   Set objWs = ThisWorkbook.Worksheets("Datenbankliste")
   '   loLetzte = objWs.Cells(Rows.Count, 9).End(xlUp).Row                     ' letzte belegte in Spalte I (9) 
   '   With ComboBox1 
   '      .List = objWs.Range("I2:I" & loLetzte).Value 
   '      For i = .ListCount - 1 To 0 Step -1 
   '         If Left(.List(i), 1) <> "A" Then .RemoveItem i 
   '      Next i 
   '   End With 

   For i = 2 To objWs.Cells(2, 9).End(xlDown).Row
      If Left(objWs.Cells(i, 9), 1) = "A" Then
         ComboBox1.AddItem objWs.Cells(i, 9)
      End If
   Next i
End Sub

Private Sub ComboBox1_Click()              ' Übernehmen 
   Dim objWs As Worksheet
   Set objWs = ThisWorkbook.Worksheets("Datenbankliste")
   
   boAbbruch = False
   
   If ComboBox1.ListIndex >= 0 Then
      Zeile = WorksheetFunction.Match(ComboBox1.Text, Columns(9), 0)      'ComboBox1.ListIndex + 2 
      
      strKFZKennz = objWs.Cells(Zeile, 1)
      msgbox (strKFZKennz)
      
      With frm_Eingabe
         For i = 1 To 8                                                   'Kundendaten 
            .Controls("Textbox" & i) = objWs.Cells(Zeile, i)
         Next i
         
         For i = 9 To 11                                                  'Kfz-Daten 
            .Controls("Textbox" & i) = objWs.Cells(Zeile, i + 3)
         Next i
        
         .Controls("Combobox1") = strKFZKennz
         .Controls("Combobox2") = "Rechnung"
         .Controls("Textbox100") = "R" & Mid(objWs.Cells(Zeile, 9), 2, 8)
         
         For i = 15 To 25                                                 ' Arbeitsgang 1 - 11 
            .Controls("Textbox" & i) = objWs.Cells(Zeile, i)
         Next i
         For i = 26 To 36                                                 ' Arbeitswert zu Arbeitsgang 1 - 11 
            .Controls("Textbox" & i + 75) = objWs.Cells(Zeile, i)
         Next i
         For i = 37 To 47                                                 ' Einzelpreis zu Arbeitsgang 1 - 11 
            .Controls("Textbox" & i + 164) = objWs.Cells(Zeile, i)
         Next i
         For i = 48 To 58                                                 ' Euro-Betrag zu Arbeitsgang 1 - 11 
            .Controls("Textbox" & i + 253) = objWs.Cells(Zeile, i)
         Next i
         .Controls("Textbox200") = objWs.Cells(Zeile, 59)                 ' Gesamtsumme 
      End With
      
      Unload frm_Anzeige      'oder Me 
      frm_Eingabe.Show
   End If
End Sub
Könntest Du mir das da mal bitte einbauen?

Eine gute Idee war es auch, den Click-Event der Combobox zu nehmen und den OK-Button zu entfernen.

Warum wird das msgbox (strKFZKennz) vom Editor nicht automatisch so umgewandelt: MsgBox (...)?
Seiten: 1 2 3