Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 73971 Skopiuj do schowka Nie widzi Public Const w Excel 2019
Autor Wiadomość
hanss9
Fan Excela


Posty: 60
Wysłany: 23-01-2023, 15:04   

Poprawiłem zgodni z sugestią ple4 i też wywala. Raz pokazało komunika, że za mało pamięci a potem zaczyna się wieszać i po restarcie gubi stałe.

A może to nie problem napisanego kodu a ilości wykorzystywanej pamięci. Po uruchomieniu jak uda się by się nie zawiesiło to plik korzysta z około 200MB a jak się próbuje uruchomić arkusz, o którym mowa to skacze go 400=480MB.

A może trzeba by po każdej procedurze zwolnić miejsce w zmiennych? Czy to coś pomoże?
ID posta: 424468 Skopiuj do schowka
 
 
master_mix 
Excel Expert



Wersja: Win Office 365
Pomógł: 1216 razy
Posty: 2324
Wysłany: 24-01-2023, 01:10   

hanss9 napisał/a:
A może trzeba by po każdej procedurze zwolnić miejsce w zmiennych? Czy to coś pomoże?

na 99 % nie pomoże

Jak wywala całą aplikację, to tak jak pisał @ple4 plik jest uszkodzony.

Czasami na forum zwracam uwagę że przy formularzach w VBA trzeba być troszkę ostrożnym i poświęcić więcej czasu na pisanie poprawnej, a chociażby podstawowej obsługi błędów.
No i podstawa, nie "uruchamiać" bazowej klasy UserForm tylko tworzyć jej instancję.
Jeżeli projekt ma służyć długo i sprawnie, to jest to niezbędne.

Kod:

'UNIKAĆ !!!!!
Sub Start()
    UserForm1.Show
End Sub


' OK
Sub Start2()
    Dim myUF As UserForm1
    Set myUF = New UserForm1
    myUF.Show
End Sub
_________________

Podejmę współpracę (pracę)
Programowanie C#, Android, iOS, VB.NET, VBA, ASP.NET Core, WPF, Xamarin, Power Platforms, XAML, MVC, LINQ, Entity Framework. Bazy danych SQL Server, Oracle, MySQL, Firebird
Wrocław i okolice …lub zdalnie.
ID posta: 424505 Skopiuj do schowka
 
 
ple4
Stały bywalec Excelforum


Wersja: Win Office 2003
Pomógł: 68 razy
Posty: 312
Wysłany: 24-01-2023, 01:40   

Przynajmniej arkusz "REJESTR POSTĘPOWAŃ" jest przeładowany formatowaniami warunkowymi, zmiana typu i wielkości czcionki - w sekwencji: zmiana z Tahoma na Calibri, a następnie jej wielkości z 11 na 10 - trwa masakrycznie długo i rozpoczyna się u mnie komunikatem o braku zasobów i nieodwracalności tej oparacji, plik wielokrotnie się wiesza w trakcie operacji, a arkusz "RP" przypomina słowa z piosenki ... pojawiasz się i znikasz ... .. no i obszar użytkowy nie daje się przyciąć po wierszach i kolumnach, kursor zawsze ląduje w ostatnim dostępnym wierszu arkusza w kolumnie "AE".
ID posta: 424507 Skopiuj do schowka
 
 
hanss9
Fan Excela


Posty: 60
Wysłany: 24-01-2023, 10:33   

Najdziwniejsze jest w tym wszystkim to, że z tego pliku korzysta obecnie 12 osób i to już od 3-4 lat przy małych modyfikacjach i dopiero w tym roku zaczęło się wieszać i to nie u wszystkich. Problem jest największy z uwagi na Excela 2019, który zaczął być instalowany.
Problem znika jak wytnie arkusz "Baza_wykonawcow2" a wiec domniemam, że tam tkwi problem.

ps.
Cytat:

Me.TextBox1.Value = srs.Cells(ActiveCell.row, "AI").Value ' <=== Co z tym "Active" ?!

Zawsze tak zapisywałem by dane pobierał w zależności od wiersza bo każdy wiersz to dane do innego postępowania i inne dane w formularzu.
jeśli jest lepszy sposób na zapisanie tego wyrażenia to chętnie skorzystam
ID posta: 424524 Skopiuj do schowka
 
 
ple4
Stały bywalec Excelforum


Wersja: Win Office 2003
Pomógł: 68 razy
Posty: 312
Wysłany: 24-01-2023, 14:23   

Pytanie jakie są kryteria wyboru takiego wiersza, bo według kodu trzeba go wpierw zaznaczyć, tzn. jakąś komórkę w nim - czyli ktoś musi zdecydować, że akurat taki wiersz a nie inny ma zostać pobrany, a na podstawie czego następuje taka a nie inna decyzja ... ??? ... Swarożyc akbar! ... tylko wie patrząc z tej drugiej strony.
ID posta: 424559 Skopiuj do schowka
 
 
hanss9
Fan Excela


Posty: 60
Wysłany: 25-01-2023, 22:00   

ple4 napisał/a:
Pytanie jakie są kryteria wyboru takiego wiersza, bo według kodu trzeba go wpierw zaznaczyć, tzn. jakąś komórkę w nim - czyli ktoś musi zdecydować, że akurat taki wiersz a nie inny ma zostać pobrany, a na podstawie czego następuje taka a nie inna decyzja ... ??? ... Swarożyc akbar! ... tylko wie patrząc z tej drugiej strony.


Ponieważ w każdym wierszu użytkownik zapisuję dane do jednego postępowania to powoduję, że dane pobierane do formularza są z konkretnego wiersza i odwrotnie dane wpisane do formularza są zapisane w danym wierszu. Co istotne aby ograniczyć ilość kolumn by arkusz był łatwiejszy w obsłudze część danych jest przechowywana w ukrytym arkuszu gdzie ilość kolumn już nie ma znaczenia. Teoretycznie można by stworzyć arkusz w którym wszystkie dane wpisywane są do jednego arkusza ale tych kolumn musiało by być ponas 100 a do tego ciężko by było wymusić wpisywanie danych w określony sposób. Przy 12 użytkownika to bym nerwy stracił i zdrowie i tak bym nie wymusił poprawnego wypełniania arkusza.
Na razie chyba opanowałem sytułacje i przestało się wieszać. Co jest faktyczną przyczyną to do tej pory nie wiem ale wydaje mi się, że gdzieś muszą być takie same nazwy formularzy lub zmiennych. Pozmieniałem nazwy by były bardziej unikatowe i na razie cisza. Zmieniłem kod też formularza zgodnie z Twoją propozycją bo napewno jest lepszy
ID posta: 424618 Skopiuj do schowka
 
 
ple4
Stały bywalec Excelforum


Wersja: Win Office 2003
Pomógł: 68 razy
Posty: 312
Wysłany: 26-01-2023, 12:21   

No dobrze, ale co będzie jak jakiś użytkownik postawi kursor byle gdzie, albo kursor przez jego nieuwagę sam sobie powędruje do jakiejś odległej komórki, np. "AL65536" ? Wtedy kod pobierze nr wiersza 65536.
Dlaczego nr wiersza pobierany jest na podstawie aktywnej komórki, czy nie ma innego sposobu na określenie tego położenia ? Nie przyglądałem się plikowi za bardzo i stąd było pytanie.
ID posta: 424639 Skopiuj do schowka
 
 
hanss9
Fan Excela


Posty: 60
Wysłany: 27-01-2023, 11:44   

ple4 napisał/a:
No dobrze, ale co będzie jak jakiś użytkownik postawi kursor byle gdzie, albo kursor przez jego nieuwagę sam sobie powędruje do jakiejś odległej komórki, np. "AL65536" ? Wtedy kod pobierze nr wiersza 65536.
Dlaczego nr wiersza pobierany jest na podstawie aktywnej komórki, czy nie ma innego sposobu na określenie tego położenia ? Nie przyglądałem się plikowi za bardzo i stąd było pytanie.


Dlatego warto by było pobawić się tym plikiem i wypełnić jeden chociaż wiersz by dobrze zrozumieć zasadę działania. Rozumiem, że nie jest to takie proste bo trzeba by było odpowiednio zmodyfikować arkusz byś mógł uruchomić wszystkie funkcje. Jeśli chciałbyś poświęcić na to więcej czasu to z chęcią wytłumaczę i pokaże co gdzie trzeba zmodyfikować albo sam już częściowo zmodyfikuje o dane, które mam. Tym bardziej, że plik już zaczął działać stabilnie.
Wracając do pytania to aby formularz dany wywołać to przed wszystkim trzeba dwa razy kliknąć w konkretnej kolumnie. W zależności od kolumny są wywoływane inne formularze. Natomiast jakie dane są zaciągane do formularza to zależy od danego wiersza. Jeśli wiersz jest pusty a właściwie komórka w danym wierszu to w tedy po wywołaniu wyświetli się pusty formularz po wypełnieniu, którego dane zapisane zostaną w danej komórce i komórkach arkusza systemowego.
Tak wiec jeśli użytkownik powędruje za daleko i dwa razy naciśnie lewy przycisk myszy to się nic nie stanie bo z tak odległa kolumną nie jest powiązany żaden formularz.
Oczywiście taki schemat działania wymaga wprowadzenie kilku zabezpieczeń jak np. zablokowanie możliwości zaznaczenia więcej niź jednej komórki.
ID posta: 424694 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

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