Listfillrange einer Combobox/Listbox Automatisch anpassen

Moderator: ModerationP

Listfillrange einer Combobox/Listbox Automatisch anpassen

Beitragvon MacDeal85 » 05. Okt 2017, 15:00

Hallo Zusammen,

ich hoffe Ihr könnt mir auch diesemal Weiterhelfen.

Ich habe ein "Listenfeld (ActiveX-Steuerelement)" in Tabelle1(Datensatz) und möchte aus Tabelle3(S1) den Inhalt von A16:Bx (x = gleich die letzte mit Text gefüllte Zelle/Spalte) ausgeben lassen.
Aktuell steht die Liste bei B20 und der "Listfillrange" auf "S1!A16:B25". Es kommen täglich neue Einträge hinzu und ich möchte nicht täglich den "Listfillrange" der ComboBox manuell anpassen müssen. Ausserdem möchte ich Leerzeilen vermeiden.

Ich hoffe Ihr könnt mir Helfen.

Danke vorab.


Gruß
Mac
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon snb » 05. Okt 2017, 16:54

Code: Alles auswählen
Private Sub Workbook_Open()
    tabelle1.listbox1.list=tabelle3.cells(16,1).currentregion.resize(,2).value
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4993
Registriert: 25. Sep 2014, 16:37

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon Nepumuk » 05. Okt 2017, 17:00

Hallo Mac,

in das Modul der Tabelle "Datensatz":

Code: Alles auswählen
Private Sub Worksheet_Activate()
    With Worksheets("S3")
        Worksheets("Datensatz").ListBox1.ListFillRange = _
            .Range(.Cells(16, 1), .Cells(.Rows.Count, 2).End(xlUp)).Address(External:=True)
    End With
End Sub
De fontibus non est disputandum

Gruß
Nepumuk 8-)
Benutzeravatar
Nepumuk
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 13883
Registriert: 10. Aug 2004, 08:40
Wohnort: Regensburg

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 05. Okt 2017, 17:30

Das ging ja schnell. Werd es morgen Früh gleich Testen und berichten. Danke euch erst einmal!!!
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 05. Okt 2017, 19:32

Nepumuk hat geschrieben:Hallo Mac,

in das Modul der Tabelle "Datensatz":

Code: Alles auswählen
Private Sub Worksheet_Activate()
    With Worksheets("S3")
        Worksheets("Datensatz").ListBox1.ListFillRange = _
            .Range(.Cells(16, 1), .Cells(.Rows.Count, 2).End(xlUp)).Address(External:=True)
    End With
End Sub


Musste es doch gleich noch Probieren 8-) . Nepumuk deine Version Funktioniert genau so wie ich es mir gedacht hab. und ich musste nichtmal was anpassen :doubt:

Ich danke euch beiden !!!
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 11. Okt 2017, 13:41

MacDeal85 hat geschrieben:
Nepumuk hat geschrieben:Hallo Mac,

in das Modul der Tabelle "Datensatz":

Code: Alles auswählen
Private Sub Worksheet_Activate()
    With Worksheets("S3")
        Worksheets("Datensatz").ListBox1.ListFillRange = _
            .Range(.Cells(16, 1), .Cells(.Rows.Count, 2).End(xlUp)).Address(External:=True)
    End With
End Sub


Musste es doch gleich noch Probieren 8-) . Nepumuk deine Version Funktioniert genau so wie ich es mir gedacht hab. und ich musste nichtmal was anpassen :doubt:

Ich danke euch beiden !!!



Jetzt besteht doch noch ein Problem.
Wenn ich ein ganze Zeile per Makro herauslöschen lasse, findet sich in der ListBox1 immer eine Leerzeile wenn ich das zweite mal auf Löschen gedrückt habe (wird sozusagen nicht Aktualisiert, denk ich). Und nach einem dritten mal Löschen eine 2 Leerzeile, uns so weiter und so weiter...

Noch einer eine Idee?

Löschcode ->
Code: Alles auswählen
Sub Ausgewählten_Datensatz_Löschen()

    Dim rng As Range
    Do
        Set rng = Columns(3).Find(What:=VorlageLoeschen, LookAt:=xlWhole)
        If Not rng Is Nothing Then rng.EntireRow.Delete
    Loop Until rng Is Nothing
End Sub


Danke

Gruß
Mac
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon snb » 11. Okt 2017, 14:06

snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4993
Registriert: 25. Sep 2014, 16:37

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 11. Okt 2017, 14:12

snb hat geschrieben:Steht schon hier: viewtopic.php?f=166&t=747524#p3092118


Da kommt bei mir immer "Laufzeitfehler 70" - "kein zugriff".
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 11. Okt 2017, 14:44

Hier mal die Datenbank
Zuletzt geändert von MacDeal85 am 11. Okt 2017, 16:56, insgesamt 2-mal geändert.
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon snb » 11. Okt 2017, 14:53

MacDeal85 hat geschrieben:
snb hat geschrieben:Steht schon hier: viewtopic.php?f=166&t=747524#p3092118


Da kommt bei mir immer "Laufzeitfehler 70" - "kein zugriff".


Du musst vorher die Eigenschaft 'listfillrange' löschen.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4993
Registriert: 25. Sep 2014, 16:37

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 11. Okt 2017, 15:10

snb hat geschrieben:
MacDeal85 hat geschrieben:
snb hat geschrieben:Steht schon hier: viewtopic.php?f=166&t=747524#p3092118


Da kommt bei mir immer "Laufzeitfehler 70" - "kein zugriff".


Du musst vorher die Eigenschaft 'listfillrange' löschen.


Wenn ich das so mache erhalte ich in der ListeBox1 alles ab Zeile 1, ich brauch alles ab Zeile 17. Und ich habe das Problem das "LinkCell" nicht funktioniert "#NV"
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 11. Okt 2017, 16:48

MacDeal85 hat geschrieben:Hier mal die Datenbank



Hier nochmal die aktuelle Datei mit dem des Löschen in Verbindung mit der Listbox.

Danke vorab... und danke auch nochmal an Sabina.

Mac
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon Flotter Feger » 11. Okt 2017, 17:17

Hallöchen Herr Matthes,

der Code von Max(Nepumuk) funktioniert einwandfrei ... und er hat nur geraten, da er die Datei nicht kannte.
Der Code muss nur wenig wandern ... dann tut es auch die ListBox.
Code: Alles auswählen
Sub Ausgewählten_Datensatz_Löschen()
    '
    ' muss unbedingt hier drin stehn !!!
    '

    '
    Dim rng As Range
   
    With Worksheets("S1")
   
    Do
        Set rng = .Columns(3).Find(What:=VorlageLoeschen, LookAt:=xlWhole)
        If Not rng Is Nothing Then rng.EntireRow.Delete
    Loop Until rng Is Nothing
   
    .AutoFilter.Sort.SortFields.Clear
    .AutoFilter.Sort.SortFields.Add Key:=Range( _
        "A16"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With .AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
       Sheets("Datensatz").Range("AA1").ClearContents
   
       Worksheets("Datensatz").ListBox1.ListFillRange = _
            .Range(.Cells(17, 1), .Cells(.Rows.Count, 3).End(xlUp)).Address(External:=True)
    End With

End Sub
VG Sabina

bei mir läuft Win 7 32-Bit und Office 2010 32-Bit
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 831
Registriert: 24. Okt 2016, 16:40

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon MacDeal85 » 11. Okt 2017, 17:51

Flotter Feger hat geschrieben:Hallöchen Herr Matthes,

der Code von Max(Nepumuk) funktioniert einwandfrei ... und er hat nur geraten, da er die Datei nicht kannte.
Der Code muss nur wenig wandern ... dann tut es auch die ListBox.
Code: Alles auswählen
Sub Ausgewählten_Datensatz_Löschen()
    '
    ' muss unbedingt hier drin stehn !!!
    '

    '
    Dim rng As Range
   
    With Worksheets("S1")
   
    Do
        Set rng = .Columns(3).Find(What:=VorlageLoeschen, LookAt:=xlWhole)
        If Not rng Is Nothing Then rng.EntireRow.Delete
    Loop Until rng Is Nothing
   
    .AutoFilter.Sort.SortFields.Clear
    .AutoFilter.Sort.SortFields.Add Key:=Range( _
        "A16"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With .AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
       Sheets("Datensatz").Range("AA1").ClearContents
   
       Worksheets("Datensatz").ListBox1.ListFillRange = _
            .Range(.Cells(17, 1), .Cells(.Rows.Count, 3).End(xlUp)).Address(External:=True)
    End With

End Sub


Hallöchen Sabina,
ich hab das ganze angepasst aber es geht irgenwie nicht bei mir :oops: . Also weder das neu anlegen (von dir) noch das Löschen. Iregnwie immer wenn ich in der Liste was ausgewählt habe (denk ich :roll: )

Schau bitte nochmal drüber.

Mac
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MacDeal85
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 57
Registriert: 18. Aug 2014, 15:04

Re: Listfillrange einer Combobox/Listbox Automatisch anpasse

Beitragvon Flotter Feger » 11. Okt 2017, 18:18

Hallöchen Herr Matthes,

muss frau denn alles ganz haarklein vorkauen ... mann, mann, mann ... :badgrin:
Hab zwei den Code "aufbereitet" gepostet ... da bin ich davon ausgegangen, dass du den dritten selbst aufbereiten kannst ... :|
Code: Alles auswählen
Private Sub ListBox1_Click()

Application.ScreenUpdating = False
With Sheets("Datensatz")
    .Unprotect ("1")
   
    Application.CutCopyMode = False
    .Range("AC2").Copy
    .Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    .Range("AB4:AK32").Copy
    .Range("B4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Application.CutCopyMode = False
    .Range("AA40").Copy
    .Range("A40").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
    .Range("AE4").Copy
    .Range("E4").Select
    ActiveSheet.Paste
   
    .Range("AE8").Copy
    .Range("E8").Select
    ActiveSheet.Paste

    .Protect ("1")
End With
Application.ScreenUpdating = True
   
End Sub


Ergänze noch ...
Code: Alles auswählen
Sub Datensatz_Speichern()
'
' Speichern Makro
'

'
    Application.ScreenUpdating = False
    Application.EnableEvents = False
   
    ' ***

    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub

Tut es jetzt ...?
Ich blicke bei dem Kopieren in der Datei nicht ganz so durch, was da immer so passieren soll ... aber der Code läuft bei mir durch ... ohne Fehler selbstverständlich.
Zuletzt geändert von Flotter Feger am 11. Okt 2017, 18:32, insgesamt 2-mal geändert.
VG Sabina

bei mir läuft Win 7 32-Bit und Office 2010 32-Bit
Benutzeravatar
Flotter Feger
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 831
Registriert: 24. Okt 2016, 16:40

Nächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: steve1da und 11 Gäste