Dzień dobry,
Przy wykorzystaniu Userform wprowadzane są dane da arkusza. Arkusz traktowany jest jako swego rodzaju baza danych. Jedna z kolumn tworzy nazwany dynamiczny zakres: "PESELW" [ =PRZESUNIĘCIE(DaneOsobowe!$B$2;0;0;ILE.NIEPUSTYCH(DaneOsobowe!$B:$B)-1;1) ].
Następnie ten zakres wykorzystany jest do wygenerowania listy w combobox:
Kod znajduje się w: Private Sub UserForm_Activate()
Problem 1: jeżeli w danym momencie zakres jest pusty (w tabeli nie wprowadzono jeszcze żadnych rekordów), w trakcie uruchamiania Userform zwracany jest błąd: Run-time error'1004': Method 'Range' of object '_Worksheet' failed. Zakres jest pusty, zwracany jest błąd wartości.
Problem nie będzie występował jeżeli ręcznie wprowadzimy pierwszy rekord (dane pierwszej osoby) i dopiero wtedy uruchomimy Userform (formuła z nazwy zakresu wtedy nie zwróci błędu #ADR!).
Problem 2: Jeżeli podczas jednej sesji wprowadzimy nowe rekordy, lista w combobox nie zaktualizuje się o nowe pozycje. Konieczne jest ponowne załadowanie Userform aby do tego doszło. W jaki sposób wymusić "odświeżenie" listy bez ponownego włączania Userform?
Oprogramowanie: Excel 2016
Przy wykorzystaniu Userform wprowadzane są dane da arkusza. Arkusz traktowany jest jako swego rodzaju baza danych. Jedna z kolumn tworzy nazwany dynamiczny zakres: "PESELW" [ =PRZESUNIĘCIE(DaneOsobowe!$B$2;0;0;ILE.NIEPUSTYCH(DaneOsobowe!$B:$B)-1;1) ].
Następnie ten zakres wykorzystany jest do wygenerowania listy w combobox:
Kod: VBScript
Kod znajduje się w: Private Sub UserForm_Activate()
Problem 1: jeżeli w danym momencie zakres jest pusty (w tabeli nie wprowadzono jeszcze żadnych rekordów), w trakcie uruchamiania Userform zwracany jest błąd: Run-time error'1004': Method 'Range' of object '_Worksheet' failed. Zakres jest pusty, zwracany jest błąd wartości.
Problem nie będzie występował jeżeli ręcznie wprowadzimy pierwszy rekord (dane pierwszej osoby) i dopiero wtedy uruchomimy Userform (formuła z nazwy zakresu wtedy nie zwróci błędu #ADR!).
Problem 2: Jeżeli podczas jednej sesji wprowadzimy nowe rekordy, lista w combobox nie zaktualizuje się o nowe pozycje. Konieczne jest ponowne załadowanie Userform aby do tego doszło. W jaki sposób wymusić "odświeżenie" listy bez ponownego włączania Userform?
Oprogramowanie: Excel 2016