Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen

Mauszeiger verändern | Herbers Excel-Forum


Betrifft: Mauszeiger verändern von: Andreas
Geschrieben am: 04.01.2010 12:29:32

Hallo,

ich habe in einer Userform ein Bild. (z.b. 300 x 200 px groß)

ich habe ein Array in dem bis zu 80 werte stehen. z.b. 100

wenn ich mit der maus über das bild fahre wird abgeglichen ob der mauszeiger weniger als 10px von einem der werte aus dem array entfernt ist Betrag(X-100)<10 dann soll der mauszeiger in eine Hand umgeformt werden.

Userform1.Image1.MousePointer = 99
Userform1.Image1.MouseIcon = LoadPicture(ThisWorkbook.Path & Application.PathSeparator & "Hand. _
ico"

sonst wird er auf Default gestellt
Userform1.Image1.MousePointer=0


Das Funktioniert alles sehr gut
. Jedoch nach einem Klick komischer weise nicht mehr

Der Mauszeiger flimmert in den bereichen wo die hand sein sollte immer zwischen hand und default umher. ich würde die datei sehr gerne hochladen, jedoch ist es meine Facharbeit und ich denke kaum dass ich das darf.

Hier der vollständige code, der jedoch ohne Zusammenhänge meiner Ansicht nach ein wenig unlesbar ist
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
 _
 ByVal Y As Single)
    
    Dim normal_start As Integer
    Dim normal_end As Integer
    If Sheets("Daten").Cells(16, 1) = 1 Then
        normal_start = Sheets("Daten").Cells(15, 1)
        normal_end = Sheets("Daten").Cells(14, 1)
    Else
        normal_start = Sheets("Daten").Cells(22, 1)
        normal_end = Sheets("Daten").Cells(21, 1)
    End If
    normal_x_start = Sheets("Daten").Cells(5, 1)
    normal_x_end = Sheets("Daten").Cells(6, 1)
    pixwidth_of_0 = normal_to_pixel(Userform1.Image1.Width, 18, 18, 0, normal_x_start,  _
normal_x_end)
    pixheight_of_0 = normal_to_pixel(Userform1.Image1.Height, 18, 19, 0, normal_start,  _
normal_end)
    hand = False
    If Betrag(Y - pixheight_of_0) < 10 Then
        For t1 = 0 To Sheets("Daten").Cells(12, 1) + Sheets("Daten").Cells(10, 1) 'Asymptote+ns
            If Betrag(X - point_x_pixels(t1).pixels) < 10 Then
                hand = True
            End If
        Next t1
    End If
    If hand Then
        Userform1.Image1.MousePointer = 99
        Userform1.Image1.MouseIcon = LoadPicture(ThisWorkbook.Path & Application.PathSeparator & _
 _
 "Hand.ico")
        Debug.Print X & "HAND"
    Else
        Userform1.Image1.MousePointer = 0
        Debug.Print X & "DEFAULT"
    End If
End Sub

  

Betrifft: AW: Mauszeiger verändern von: Andreas
Geschrieben am: 05.01.2010 13:52:04

Habs jetzt anders gelöst

danke an alle die sich gedanken gemacht haben


Beiträge aus den Excel-Beispielen zum Thema "Mauszeiger verändern"