Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Zeilen in Combobox füllen | Herbers Excel-Forum


Betrifft: Zeilen in Combobox füllen von: Mg-Learning
Geschrieben am: 22.12.2009 01:08:50

Hallo zusammen,

Bitte bitte um weitere Unterstützung

1. Wie kann ich per vba, die zeile z.B. b2 bis f2 in eine Combobox in einem anderen Tabellenblatt schreiben?
Besser wäre natürlich, wenn das nicht begrenzt wäre, sondern er erkennt, dass f2 das letzte befüllte Feld ist, so das man praktisch erweitern könnte g2, h2 etc.? Mit ListFillRange geht das leider nur in Spalten.

2. Und wie kann ich jeweils den Wert in der tabelle z.b. "7" bei Kriterium a2 & d2 erfüllt (Zwei Comboboxen)
in eine Zelle in einem anderen Tabellenblatt schreiben! Ganze auch per VBA!

b2 c2 d2 e2
a2 2 6 7
a3 5 7 9
a4 4 1 5 7

Würde mich über Hinweise oder Codes freuen!

Vielen Dank im Voraus!

Martin

  

Betrifft: benutze ComboBox1.AddItem Tabelle2.Cells(x, y) von: Matthias L
Geschrieben am: 22.12.2009 05:25:54

Hallo Martin

Hier mal ein Ansatz zum Befüllen der ComboBox mit Werten aus einer anderen Tabelle

https://www.herber.de/bbs/user/66761.xls

Gruß Matthias


  

Betrifft: AW: Zeilen in Combobox füllen von: Tino
Geschrieben am: 22.12.2009 08:49:55

Hallo,
zu erstens

Private Sub UserForm_Initialize()
Dim MaxColZell As Range

With Tabelle2
 Set MaxColZell = IIf(IsEmpty(.Cells(2, .Columns.Count)), .Cells(2, .Columns.Count).End(xlToLeft), .Cells(2, .Columns.Count))
 ComboBox1.List = Application.Transpose(.Range("B2", MaxColZell).Value2)
End With

End Sub
zu zweitens
Private Sub CommandButton1_Click()
Dim varRow, varCol
With Tabelle2
 varRow = Application.Match(ComboBox1, .Columns(1), 0)
 varCol = Application.Match(ComboBox2, .Rows(2), 0)
 
 If IsNumeric(varRow) And IsNumeric(varCol) Then
    Tabelle1.Range("A2") = .Cells(varRow, varCol)
 Else
    MsgBox "nix gefunden"
 End If
End With
End Sub
Tabelle2 ist der Objektname der Tabelle, zu finden im VBA im Projektexplorer
der Name außerhalb der Klammer.
Hat den Vorteil, auch wenn die Tabelle umbenannt wird funktionieren die Makros noch.

Gruß Tino


  

Betrifft: AW: Zeilen in Combobox füllen von: MG_Learning
Geschrieben am: 22.12.2009 11:16:33

Hallo Tino,

Habe den ersten Code eingefügt

Private Sub ComboArtikel_Change()

Dim strArt As String
Dim MaxColZell As Range

Range("D16").Value = ComboArtikel.Value
strArt = ComboArtikel.Value
Select Case strArt
    Case "Kabel"
    With Tabelle4
        Set MaxColZell = IIf(IsEmpty(.Cells(2, .Columns.Count)), .Cells(2, .Columns.Count).End
        (xlToLeft), .Cells(2, .Columns.Count))
        ComboLänge.List = Application.Transpose(.Range("B2", MaxColZell).Value2)
    Case "Stecker"
    With Tabelle5
        Set MaxColZell = IIf(IsEmpty(.Cells(2, .Columns.Count)), .Cells(2, .Columns.Count).End
        (xlToLeft), .Cells(2, .Columns.Count))
        ComboLänge.List = Application.Transpose(.Range("B2", MaxColZell).Value2)
    Case "Dose"
    With Tabelle6
        Set MaxColZell = IIf(IsEmpty(.Cells(2, .Columns.Count)), .Cells(2, .Columns.Count).End
        (xlToLeft), .Cells(2, .Columns.Count))
        ComboLänge.List = Application.Transpose(.Range("B2", MaxColZell).Value2)

   End With
End Select

End Sub

Leider bringt er mir bei dieser Zeile egal welcher Case:

ComboLänge.List = Application.Transpose(.Range("B2", MaxColZell).Value2)

die Fehlermeldung Laufzeitfehler 70 - Zugriff verweigert. Woran kann das liegen!

Habe schon ewig probiert.

Danke

Martin


  

Betrifft: AW: Zeilen in Combobox füllen von: Tino
Geschrieben am: 22.12.2009 11:51:32

Hallo,
mir fällt nur auf, dass zwei End With fehlen.

Hier ein Beispiel:
https://www.herber.de/bbs/user/66768.xls

Gruß Tino


Beiträge aus den Excel-Beispielen zum Thema "Zeilen in Combobox füllen"