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: 63778 Skopiuj do schowka Zmiana koloru kształtu po najechaniu myszką.
Autor Wiadomość
tatarka
świeżak


Posty: 5
Wysłany: 11-01-2019, 22:18   Zmiana koloru kształtu po najechaniu myszką.

Hej. Mam zagwozdkę że aż zarejestrowałem się tu na forum :)

1.Mam kształt wektorowy i chciałbym żeby po najechaniu na niego myszką kolor kształtu się zmienił.. a po zjechaniu z niego kolor zmienił się z powrotem. Taka imitacja najechania na buton ze jest w nim jakaś akcja.

2.Czy własnie po kliknięciu w taki kształt jest możliwość rozwinięcia się listy z dodatkowymi 3 opcjami z których pozycję i wykonuje sie dana funkcja?

Thx
ID posta: 360267 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 258 razy
Posty: 1395
Wysłany: 11-01-2019, 22:30   

Witamy na Forum.

Załącz plik.
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
ID posta: 360268 Skopiuj do schowka
 
 
ąćęłńóś
ExcelSpec


Pomógł: 186 razy
Posty: 847
Wysłany: 11-01-2019, 22:56   

Bez API się nie obejdzie ...
ID posta: 360273 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 12-01-2019, 10:43   

ąćęłńóś napisał/a:
Bez API się nie obejdzie
No raczej. :-)
Chociaż można i bez API.

W Arkusz1 zastosowano dodatkowo dwie kontrolki ActiveX - Image. Tło przezroczyste, krawędzie można ukryć - zostawiłem tylko po to by było widać co jest pięć.

W Arkusz2 - API.

Oba rozwiązania mi się nie podobają. :-)
Arkusz to nie jest dobre środowisko do takich zachcianek.

Artik

Aktywny kształt.xlsm
Pobierz Plik ściągnięto 21 raz(y) 31.14 KB

_________________
Persistence is a virtue in the world of programming.
ID posta: 360285 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1230 razy
Posty: 4257
Wysłany: 13-01-2019, 01:24   

Artik napisał/a:
ąćęłńóś napisał/a:
Bez API się nie obejdzie
No raczej. :-)
Chociaż można i bez API.

W Arkusz1 zastosowano dodatkowo dwie kontrolki ActiveX - Image. Tło przezroczyste,

1. Jeśli wchodzę myszką do tej dużej "kropki" w pobliżu rogu Image2 to kolor się nie zmienia, a powinien ;-)

2. Jeśli wchodzę do Image1 ale jeszcze nie wchodzę do kolorowego obszaru to kolor już się zmienia.

Wyzwaniem jest to, żeby zmienić kolor wtedy i tylko wtedy, kiedy pod myszką jest podany kolor. ;-)

apollo
ID posta: 360330 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 13-01-2019, 13:29   

Oj tam, oj tam. To taka wersja dla ubogich. ;-)
apollo napisał/a:
Wyzwaniem jest to, żeby zmienić kolor wtedy i tylko wtedy, kiedy pod myszką jest podany kolor.
Dzięki za podpowiedź.
W Arkusz3 chyba ogarnięty temat.
Ale
ąćęłńóś napisał/a:
Bez API się nie obejdzie


Artik

Aktywny kształt2.xlsm
Pobierz Plik ściągnięto 28 raz(y) 38.98 KB

_________________
Persistence is a virtue in the world of programming.
ID posta: 360352 Skopiuj do schowka
 
 
apollo
ExcelSpec


Pomógł: 1230 razy
Posty: 4257
Wysłany: 13-01-2019, 14:01   

No brawo. I jeszcze raz brawo, i gratuluję.

apollo
ID posta: 360356 Skopiuj do schowka
 
 
tatarka
świeżak


Posty: 5
Wysłany: 15-01-2019, 10:18   

Dobra opiszę to, co ja bym chciał uzyskać.
Mam mapę województw w Polsce. Po najechaniu na dane województwo (zmienia się kolor - imitacja akcji aktywnego przycisku) i kliknięciu w nie wyświetlają się 3 dodatkowe opcje (np w formie listy) i po wybraniu danej opcji przekierowuje do danego arkusza. Każde województwo będzie miało odpowiednio po 3 arkuszy.

W załączniku wkleiłem 1 województwo.. z racji tego, że są one nie kwadratowe raczej odpada opcja z planszą nad/pod nią, bo wtedy będą najeżdżać bounding box na inne województwa i będzie miszmasz.

thx.

edycja Zbiniek:
Szanuj innych użytkowników (szczególnie tych, od których oczekujesz pomocy) i stosuj zasady poprawnej pisowni.
P.S. Chyba każda przeglądarka internetowa ma funkcję sprawdzania pisowni, więc z niej korzystaj.
POPRAWIŁEM ZA CIEBIE..


Przyklad.xlsx
Pobierz Plik ściągnięto 9 raz(y) 128.22 KB

ID posta: 360471 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 15-01-2019, 10:59   

tatarka napisał/a:
W załączniku wkleiłem 1 województwo.
Dlaczego 1? To nie jest reprezentatywny przykład. Potrzeba co najmniej 2-3. Co, mamy sobie domalować sami?
tatarka napisał/a:
z racji tego ze są one nie kwadratowe raczej odpada opcja z planszą nad/pod nią..
Moim zdaniem wystarczy jeden obiekt Image na cały kraj. :-) Jeśli w trakcie prac okazałoby się, że każde z województw powinno mieć swój własny kolor, żaden problem - wystarczy w numerze koloru zmieniać ostatnie dwie cyfry. Dla oka będzie to raczej ten sam kolor dla wszystkich, a maszyna sobie rozróżni.

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 360473 Skopiuj do schowka
 
 
tatarka
świeżak


Posty: 5
Wysłany: 15-01-2019, 11:13   

Dodałem przykład z 3 województwami..

Z tym kolorem to nie jest takie ważne, ale idea jest taka, że cała mapka jest tego samego koloru, tylko po na jechaniu na województwo zmiana koloru informuje użytkownika, w które województwo klika.

edycja Zbiniek:
Skoro masz polską klawiaturę, to jej używaj!
Tekst bez polskich "ogonków" jest mniej czytelny i często bezużyteczny dla osób korzystających z http://www.excelforum.pl/search.htm (Korzystasz?)
POPRAWIŁEM ZA CIEBIE.


Przyklad.xlsx
Pobierz Plik ściągnięto 14 raz(y) 325.85 KB

ID posta: 360476 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 15-01-2019, 22:14   

Trochę krwi napsuło, ale po paru godzinach ogarnąłem.
tatarka napisał/a:
idea jest taka, że cała mapka jest tego samego koloru,
W moim rozwiązaniu, dla oka może jest to ten sam kolor, ale nie jest. :devil

Artik

Aktywna mapa województw.xlsm
Pobierz Plik ściągnięto 26 raz(y) 273.54 KB

_________________
Persistence is a virtue in the world of programming.
ID posta: 360561 Skopiuj do schowka
 
 
tatarka
świeżak


Posty: 5
Wysłany: 15-01-2019, 23:26   

Dzięki Artik, widzę dużo kodu.. na pewno się namęczyłeś ale niestety dostaje od razu error po najechaniu myszką:

Compile error:

The code in this project must be updated for use on 64-bit systems.
Please review and update Declare statements and then mark them with the PtrSafe attribute.
ID posta: 360566 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 15-01-2019, 23:49   

No tak, mało że sobie wymyślił "aktywowanie" obrazków, to jeszcze używa 64-bitowej wersji Excela. ;-)

Na początku modułu zamień
Kod:
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
na
Kod:
#If VBA7 Then
    Private Declare PtrSafe Function GetPixel Lib "gdi32" (ByVal hdc As LongPtr, ByVal x As Long, ByVal y As Long) As Long
    Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare PtrSafe Function GetWindowDC Lib "user32" (ByVal hwnd As LongPtr) As LongPtr
#Else
    Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
#End If

ORAZ na końcu modułu, funkcję Get_Color_Under_Cursor zamień na
Kod:
Function Get_Color_Under_Cursor() As Long
    #If VBA7 Then
        Dim lngDc   As LongPtr
    #Else
        Dim lngDc   As Long
    #End If

    Dim Pos         As POINTAPI

    lngDc = GetWindowDC(0)
    GetCursorPos Pos
    Get_Color_Under_Cursor = GetPixel(lngDc, Pos.x, Pos.y)
End Function

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 360567 Skopiuj do schowka
 
 
tatarka
świeżak


Posty: 5
Wysłany: 16-01-2019, 13:05   

Bardzo fajnie to działa.. dzięki.
Pytanie mam.. czy dałbyś radę podpiąć dla przykładu przełączanie się do arkuszy po wybraniu odpowiedniej kategorii z listy?
ID posta: 360590 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 16-01-2019, 15:09   

tatarka napisał/a:
Bardzo fajnie to działa
Mi też się podoba. :-)

tatarka napisał/a:
czy dałbyś radę
Jestem już w wieku schyłku swoich możliwości, ale jeszcze mogę. :mrgreen: Jednakże wiele zależy od Ciebie. :-)
Po pierwsze. Piszesz w dziale, gdzie powinno się tylko naprowadzać na rozwiązanie, a nie rozwiązywać od początku do końca. Rozumiem, że to tylko zbyt mała wiedza, a nie lenistwo, że nie możesz ukończyć sam tego projektu. Bardziej właściwym działem był by "Zadania...".
Po drugie. Coś za coś. Daj całą Polskę. Niech to stanowi już pełne rozwiązanie dla leniwych/nieumiejących, a nie coś z czego tylko Ty skorzystasz.
Po trzecie. Potrzebne są jakieś reguły by wiedzieć do którego arkusza skoczyć. W jaki sposób identyfikować, że dany arkusz należy do danego województwa i do odpowiedniej kategorii w tym województwie?

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 360599 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.marketingNET.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