ID tematu: 75837
 |
Jak wyłaczyć kontrolkę Ative X |
Autor |
Wiadomość |
Opson
Świeżak

Wersja: Win Office 2016
Posty: 6
|
Wysłany: 13-05-2024, 12:01 Jak wyłaczyć kontrolkę Ative X
|
|
|
Hej,
Stworzyłem sobie arkusz z wieloma funkcjami. Problemu, który mnie zatrzymał to "wyszukiwarka umów" - wszystko działa spoko, ale jak coś klikam czy wciskam enter to jest ona ciągle aktywna i pojawia się także w innych arkuszach. Mógłby ktoś pomóc z tym jak zbudować kod, aby ActivX uaktywniał się tylko wtedy, gdy chce z niego skorzystać, a następnie przechodził w inactive?
Plecki v x.xlsm
|
Pobierz Plik ściągnięto 34 raz(y) 290.86 KB |
|
|
 | ID posta:
435312
|
|
|
 |
|
|
|
Tajan

Pomógł: 5583 razy Posty: 12105
|
Wysłany: 13-05-2024, 15:40
|
|
|
Taka sytuacja jest spowodowana tym, że źródło listy kontrolki jest oparte na formule i tym samym każdorazowe przeliczenie skoroszytu powoduje uaktualnienie jej listy co powoduje uruchomienie procedury zdarzeniowej ComboBox1_Change i pociąga za sobą aktywację kontrolki.
Rozwiązaniem może być zmiana sposobu definiowania listy i przypisywanie adresu źródła danych za pomocą wartości tekstowej. Przykładowo, zmień procedurę ComboBox1_Change na następującą:
Kod: | Private Sub ComboBox1_Change()
Dim mx As Long
With Sheets("UmowyZ")
mx = WorksheetFunction.Max(.Range("L3:l287"))
If mx = 0 Then mx = 1
ComboBox1.ListFillRange = _
.Range("M3").Resize(mx).Address(external:=True)
ComboBox1.DropDown
End With
End Sub
|
|
|
 | ID posta:
435317
|
|
|
 |
|
|
Opson
Świeżak

Wersja: Win Office 2016
Posty: 6
|
Wysłany: 13-05-2024, 18:33
|
|
|
Działa dzięki wielkie za kod, ale głównie za wytłumaczenie przyczyny. |
|
 | ID posta:
435319
|
|
|
 |
|
|
Opson
Świeżak

Wersja: Win Office 2016
Posty: 6
|
Wysłany: 15-05-2024, 06:45
|
|
|
Jednak nie do końca to działa. Jak wybieram daną umowę to często nie wyświetla jej w okienku wyszukiwania - co w konsekwencji prowadzi do tego, że przy próbie wydruku exel się wywala. Muszę kliknąć drugi raz w okienko i wybrać umowę ponownie. Mi by to nie przeszkadzało, ale więcej osób ma z tego korzystać i wytłumaczenie im tego byłoby problematyczne. |
|
 | ID posta:
435342
|
|
|
 |
|
|
Tajan

Pomógł: 5583 razy Posty: 12105
|
Wysłany: 15-05-2024, 12:35
|
|
|
Tym razem problemem są formuły w obszarze listy na arkuszu "UmowyZ". Spróbuj nie wypełniać kontrolki poprzez ListFillRange lecz bezpośrednio przypisać wartości do listy combobox'a.
Kod: | Private Sub ComboBox1_Change()
Dim lst
lst = Sheets("UmowyZ").Range("Wyszukiwarka").Value
If Not IsArray(lst) Then lst = Array(lst)
With ComboBox1
.ListFillRange = vbNullString
.List = lst
.DropDown
End With
End Sub
|
|
|
 | ID posta:
435348
|
|
|
 |
|
|
Opson
Świeżak

Wersja: Win Office 2016
Posty: 6
|
Wysłany: 15-05-2024, 19:46
|
|
|
Tajan napisał/a: | Tym razem problemem są formuły w obszarze listy na arkuszu "UmowyZ". Spróbuj nie wypełniać kontrolki poprzez ListFillRange lecz bezpośrednio przypisać wartości do listy combobox'a.
Kod: | Private Sub ComboBox1_Change()
Dim lst
lst = Sheets("UmowyZ").Range("Wyszukiwarka").Value
If Not IsArray(lst) Then lst = Array(lst)
With ComboBox1
.ListFillRange = vbNullString
.List = lst
.DropDown
End With
End Sub
|
|
Dzięki - na Exelu 2021 w domu śmiga, ale i poprzednia działała dużo lepiej na 21 - w pracy 2016 sprawdzę rano i dam informację zwrotną. |
|
 | ID posta:
435353
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
Strona uĹźywa plikĂłw cookies.
Kliknij tutaj, Ĺźeby dowiedzieÄ siÄ jaki jest cel uĹźywania cookies oraz jak zmieniÄ ustawienia cookie w przeglďż˝darce.
KorzystajÄ
c ze strony uĹźytkownik wyraĹźa zgodÄ na uĹźywanie plikĂłw cookies, zgodnie z bieĹźÄ
cymi ustawieniami przeglÄ
darki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe
|