Clever-Excel-Forum

Normale Version: Code für Listenfeld von Listbox übernehmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

der Versuch die Listenfelder in der gleichen Größe nach jedem Öffnen der Datei zu erhalten ist wohl ein allgemeines Problem in Excel, das auch in anderen Foren mit unterschiedlichsten Lösungsansätzen gelöst wird. Leider haben diese Versuche keinen Erfolg gehabt. Nach drei mal Öffnen der Datei waren meine Listboxen fast auf einen unsichtbaren Klecks zusammengeschrumpft. - Ich habe mich daher entschieden alternativ dazu Listenfelder einzusetzen. Leider funktioniert die Übernahme des Codes aus den Listboxen in die Listenfelder nicht. Was muss ich anders machen, dass der Code läuft? Brauche ich da etwas ganz anderes?
Fehlermeldung: 424 Objekt erforderlich

Hier der angepasste Code auf das Listenfeld:

Sub Listenfeld1_BeiÄnderung()
Dim i As Long
  Dim s() As Long
  ReDim s(0 To Listenfeld1.ListCount - 1, 1 To 1) As Long
  With Listenfeld117
    For i = 0 To .ListCount - 1
      If .Selected(i) Then
        s(i, 1) = i + 1
    End If
    Next
    Range("D275:D296") = s
    End With
End Sub


Danke für Eure Tipps!

Grüße
NobX
Hallo,

wo hakt es denn und in welcher Zeite kommt die Fehlermeldung?
Hallo NobX,

Das Listenfeld beginnt bei 1 und ist anders anzusprechen:
Sub Listenfeld1_BeiÄnderung()
Dim i As Long
Dim oLF As ListBox
Dim s() As Variant
Set oLF = ActiveSheet.ListBoxes(Application.Caller)
ReDim s(1 To oLF.ListCount, 1 To 1)
With oLF
For i = 1 To .ListCount
If .Selected(i) Then
s(i, 1) = i
End If
Next
Range("D275:D296") = s
End With
End Sub
Gruß Uwe
Versuch mal die Größe dieser Listbox zu ändern ohne VBA und nur vom Verwenden (öffnen, schließen) der Datei.
Hallo Uwe,

danke Dir für den perfekten Code für die Umschreibung von ListBox auf Listenfeld. Jetzt verschwindet mir das Listenfeld endlich nicht mehr im Nirwana.... - Vielleicht kannst Du mir oder die anderen Teilnehmer im Forum noch einen Tipip geben, wie ich den Löschbutton für das Leeren der Einträge anpassen kann. Ich vermute, dass auch dieser Code das Listenfeld anders ansprechen muss. Meine Versuche waren nicht besonders erfolgreich.
Hier ist mein aktueller Code - es fehlt wieder das Objekt:

Private Sub CommandButton3_Click()
  Dim i As Long
  With Listenfeld117
    For i = 0 To .ListCount - 1
      .Selected(i) = False
    Next
  End With
End Sub


Ich habe verschiedene Elemente aus dem vorherigen Code eingebaut und versucht entsprechend anders zu formulieren mit diesen Bausteinen:

Dim oLF As ListBox
  Dim s() As Variant
  Set oLF = ActiveSheet.ListBoxes(Application.Caller)
  ReDim s(1 To oLF.ListCount, 1 To 1)
  With oLF


Hat leider nicht geklappt.
Danke im Voraus für entsprechende zielführende Tipps.

Grüße
NobX
Hallo NobX,
Private Sub CommandButton3_Click()
Dim i As Long
'With Worksheets("BlaBla").ListBox117 'ListBox(ActiveX)
With Worksheets("BlaBla").ListBoxes("Listenfeld 117") 'Listenfeld (Formular)
'For i = 0 To .ListCount - 1 'ListBox(ActiveX)
For i = 1 To .ListCount 'Listenfeld (Formular)
.Selected(i) = False
Next
End With
End Sub
Gruß Uwe
Hallo Uwe,

jetz kann ich die nervigen Listboxen gegen die Listenfelder austauschen. Dank Deiner Hilfe funktioniert es perfekt!

Herzlichen Dank!!!

Schönes WE an alle Teilnehmer im Forum!

Grüße
NobX