ID tematu: 76147
|
2 poziomowe dynamiczne Context Menu |
Autor |
Wiadomość |
Tajan
Pomógł: 5548 razy Posty: 12042
|
Wysłany: 07-10-2024, 07:47
|
|
|
kloszuu napisał/a: | tak aby nie bral pod uwage wielosci liter. |
Wystarczy po:
Kod: | With CreateObject("System.Collections.ArrayList") |
wstawić:
Kod: | .CompareMode = vbTextCompare |
|
|
| ID posta:
437244
|
|
|
|
|
|
|
kloszuu
Stały bywalec Excelforum
Pomógł: 1 raz Posty: 253
|
Wysłany: 07-10-2024, 19:58
|
|
|
@ple4 dzieki za pomoc, masz racje ze warunki na jaich ma dzialc procedura powinny byc jasno okreslene na poczatku bo inaczej pozniej wychodza rozne dziwne kombinacje, natomiast nie zawsze jestesmy wstanie wszysto przewidziec.
Nawet obecnie zaproponowany kod ma jedna wada z ktora udalo mi sie uprac samemu i odnosi sie ona do tej czesci kodu:
Kod: |
If b(j) Like a(i) & "*" Then
|
w momencie gdy jedna z kadegorii bedzie czescia drugiej, czysto hipotetyczny przyklad:
pierwsza z kadegorii "Pieczywo" a druga "Piecz" wowczas procedura nie bedzie juz dziala prawidlowo. Zeby uporac sie z tym problemem powyzsza linie kodu zamienilem na:
Kod: |
If Split(b(j), ",")(0) = a(i) Then
|
@Tajan staralem sie dodac zaproponowany przez ciebie kod do orginalnego kodu napisanego przez ple4 natomiast ta zmiana powoduje wystapienie bledu wiec chyba nie do konca udaloby sie poprawic te procedure w tak prosty sposob albo ja robie cos nie do konca poprawnie.
Kod: |
With CreateObject("System.Collections.ArrayList")
.CompareMode = vbTextCompare
|
Tak czy inaczej jestem Wam bardzo wdzieczny za czas ktory poswieciliscie na rozwiazanie mojego problemu. Jeszcze raz dzieki.
Pozdrawiam
Piotrek |
|
| ID posta:
437253
|
|
|
|
|
|
Tajan
Pomógł: 5548 razy Posty: 12042
|
Wysłany: 07-10-2024, 21:12
|
|
|
kloszuu napisał/a: | staralem sie dodac zaproponowany przez ciebie kod do orginalnego kodu napisanego przez ple4 natomiast ta zmiana powoduje wystapienie bledu |
Niestety, ale to ja pokręciłem. Pomyliłem obiekt ArrayList z obiektem Dictionary. Zatem - sorry za wprowadzenie w błąd! |
|
| ID posta:
437255
|
|
|
|
|
|
ple4
ExcelSpec
Wersja: Win Office 2003
Pomógł: 128 razy Posty: 518
|
Wysłany: 08-10-2024, 14:44
|
|
|
kloszuu napisał/a: | nie zawsze jestesmy wstanie wszysto przewidziec ...
...
... gdy jedna z kadegorii bedzie czescia drugiej, czysto hipotetyczny przyklad:
pierwsza z kadegorii "Pieczywo" a druga "Piecz" wowczas procedura nie bedzie juz dziala prawidlowo |
W tej konkretnej sytuacji jesteś .... i właśnie co chwila "stopniujesz" i wymyślasz kolejne scenariusze ... dorzucając się tu jeszcze, można by powiedzieć także, że procedura nie działa prawidłowo, bo gdy wpiszemy "Nabiał" oraz "Nabial" to rozróżnia, to jako dwie różne kategorie, to samo przy "Bułkach" i "Bulkach", a nawet "Bółkach/Bólkach/Bolkah/Bółkah", itd. ... w ten sposób można ciągnąć prawie w nieskończoność ... a spójrz na swój wpis inicjujący ...
Proponuję, aby "użytkownik" po prostu wpisywał "Pieczywo" zamiast "Piecz", czyli po prostu nie sabotował swojej własnej pracy ... |
|
| ID posta:
437258
|
|
|
|
|
|
Maciej Gonet
Excel Expert
Wersja: Win Office 365
Pomógł: 3545 razy Posty: 10461
|
Wysłany: 08-10-2024, 15:00
|
|
|
W przypadku takiej kategoryzacji lepiej zrobić listę wyboru i nie pozwolić na wpisywanie czegokolwiek z ręki, bo wtedy tych błędów nie da się w ogóle opanować. |
|
| ID posta:
437259
|
|
|
|
|
|
|
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
|