Wątek przeniesiony 2021-05-06 13:34 z Inne języki programowania przez cerrato.

VBA lista rozwijalna na postawie tabeli / zakresu

0

Mam problem z tworzeniem list rozwijalnych w VBA, otóż jakby samo wyświetlanie się listy w danej komórce działa, natomiast po zapisaniu pliku i otwarciu go na nowa pojawia się błąd:
w skoroszycie ..... instnieje zawartość która powoduje problem.....
Dzieje się tak ja w liście znajduje się więcej jak 18 elementów.

Przykład kodu:

Dim Wiersz As Long, Kolumna As Long, MaxWiersz As Long
Dim RodzajAkcji As Range
Dim Dlugosc As Long
Dim TrescListy As String

MaxWiersz = Range("Test").Rows.Count + 1

If (Kolumna = 5) And (Wiersz > 1 And Wiersz <= MaxWiersz) Then
 
    Set RodzajAkcji = Sheets("Słowniki").Range("tbTypAkcji").Columns(1)
        Dlugosc = RodzajAkcji.Rows.Count
    
    For Licznik = 1 To Dlugosc
        TrescListy = TrescListy & "," & RodzajAkcji.Cells(Licznik, 1)
    Next
    If TrescListy = "" Then TrescListy = "Brak"
    
    With Target.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=TrescListy
    End With
End If
0

Patrząc do dokumentacji: https://docs.microsoft.com/en-us/office/vba/api/excel.validation.add

The first part of the data validation equation. Value must not exceed 255 characters.

Więc tresclisty jest dłuższ niż 255 znaków

0

@Panczo: Można to jakoś ominąć?

Sama lista się pojawia, natomiast po zamnięciu i otwarciu arkusza pojawia się błąd

1

Zamiast listy uzyj nazwanego zakresu w formule

https://www.automateexcel.com/vba/data-validation-drop-down-lists-in-vba/

1 użytkowników online, w tym zalogowanych: 0, gości: 1