none
VBA RRS feed

  • Frage

  • erstmal guten tag an alle, ich bin ein Anfänger was VBA betrifft und deshalb benötige ich etwas Hilfe.

    ich habe auf meinem Computer mit dem Office 2007 den folgenden Code für eine combobox

    aber leider funktioniert er nicht auf dem zweiten Computer mit Office 2016
    der Code  aRow = [A65536].End(xlUp).Row ist irgendwie falsch.

    Private Sub UserForm_Initialize()

    Dim aRow, i As Long
    Application.EnableEvents = False
    ComboBox1.Clear
    aRow = [A65536].End(xlUp).Row
    ComboBox1.AddItem "ester Eigentümer auswählen"
    For i = 2 To aRow
        ComboBox1.AddItem Cells(i, 2) & ",   " & Cells(i, 6) & ",  Mieter:   " & Cells(i, 17)
    Next i
    ComboBox1.ListIndex = 0
    Application.EnableEvents = True
    End Sub

    vielen Dank im voraus , Jürgen
    Sonntag, 7. Oktober 2018 10:43

Alle Antworten

  • Hi Jürgen,
    bei mit funktioniert Dein Code auch mit Excel 2016.

    Vermutlich hast Du den Code nicht richtig zugeordnet, so dass er die erste Spalte der gewünschten Tabelle nicht im Zugriff hat.


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP für Developer Technologies)
    Meine Homepage mit Tipps und Tricks

    Sonntag, 7. Oktober 2018 12:11
  • Hallo, Jürgen!

    Ich würde den Code so erweitern:

    Dim aRow, i As Long
    Dim ws as Worksheet
    Set ws = ActiveSheet

    Application.EnableEvents = False

    Ggf. mußt Du den Blatt-Namen auch explizit angeben:
    Set ws = Worksheets("blattname")

    Dann geht statt
    aRow = [A65536].End(xlUp).Row

    besser
    aRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    Das 'alte' Excel hatte nur 65536 Zeilen pro Blatt, mittlerweile sind's ~1 Mio. Der Teil 'ws1.rows.count' startet die Suche einfach in der letzten Zeile des Blatts, egal welche es ist. Von da aus geht es durch '.end(xlup)' nach oben bis zu ersten belegten Zelle (in Spalte 1, also "A"), von der dann mit '.row' die Zeile zurückgeliefert wird. Diese Angabe wird dann in der nachfolgenden Schleife benötigt.

    Gruß, Michael

    Sonntag, 18. August 2019 09:45