Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

@Nepumiuk@Daniel

@Nepumiuk@Daniel
10.06.2022 13:09:22
oraculix
In der Tabelle Klicke ich mit der der Linken Maus auf ein Bild und das nächste Bild wird geladen was auch gut funktioniert.
Aber wie kann ich wieder zum vorigen Bild zurückkehren mit rechtsklick auf die Maus?
https://www.herber.de/bbs/user/153512.xlsm
'Klick auf Image1 zeigt nächstes Bild

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.ScreenUpdating = False
If Not IsEmpty(ActiveCell.Offset(1, 0).Value) Then
ActiveCell.Offset(1, 0).Select
Else
Cells(2, ActiveCell.Column + 1).Select'  hier sollte auch noch die rechte maus berücksichtigt werden
End If
Application.Goto ActiveCell
Application.ScreenUpdating = True 'End Sub
End Sub Gruß
Oraculix

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: @Nepumiuk@Daniel
10.06.2022 13:25:41
Daniel
Hi
die Variable Button sagt dir durch unterschiedliche Werte, ob der linke oder rechte Mousebutton geklickt wurde, die Variable Shift, ob dabei eine Steuertaste gehalten wurde (Shift, Alt, Strg)
um die entsprechenden werte rauszufinden, kannst du ein:

Msgbox "Button: " & Button & vbLF & "Shift: " & Shift
verwenden.
Gruß Daniel
AW: @Nepumuk@Daniel
10.06.2022 13:38:23
oraculix
Hallo Daniel!
Danke erst mal irgendwie steh ich am Schlauch ich denke Du hast sicher Recht nur Verstehe ich nicht warum die Msg Box rein muß? Hab es reinkopiert aber dann kommt
Button: 2
Shift: 0
Was doll ich damit machen?
Gruß
Oraculix
Anzeige
AW: @Nepumuk@Daniel
10.06.2022 13:46:05
Daniel
Naja, jetzt weißt du, welchen Wert die Variable Button hat, wenn du einen bestimmten MouseButton gedrückt hast.
dann nimmst du die Messagebox wieder raus und weiterst den Code dann entsprechend:

Select Case Button
Case 1
hier der code für Button = 1 (wahrscheinlich linke Maustaste)
Case 2
hier der Code für Button = 2 (wahrscheinlich rechte Maustaste)
Case else
Msgbox "Something strange has happend"
end Select
Gruß Daniel
AW: @Nepumuk@Daniel
10.06.2022 13:56:48
oraculix
Danke Daniel !
Habe Deinen Code jetzt eingefügt , aber es tut sich nix keine Fehler und rechtsklick zeigt nächstes Bild an
statt voriges!
Hier der Code habe ich den Falsch eingefügt?
Klick auf Image1 zeigt nächstes Bild

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.ScreenUpdating = False
Select Case Button
Case 1
' hier der code für Button = 1 (wahrscheinlich linke Maustaste)
Case 2
'  hier der Code für Button = 2 (wahrscheinlich rechte Maustaste)
Case Else
MsgBox "Something strange has happend"
End Select
If Not IsEmpty(ActiveCell.Offset(1, 0).Value) Then
ActiveCell.Offset(1, 0).Select
Else
Cells(2, ActiveCell.Column + 1).Select
Select Case Button
End Select
End If
Application.Goto ActiveCell
Application.ScreenUpdating = True
End Sub
Gruß
Oraculix
Anzeige
och menno, schon wieder ein CopyPaster
10.06.2022 14:08:44
Daniel
der Code war doch nur als Prinzipdarstellung gedacht, die dir zeigen sollte, wie du das programmieren musst.
du hast noch nicht mal gelesen, was ich da rein geschrieben habe. Sorry, aber sowas nervt.
du bist doch auch schon länger dabei.
wenn ich jetzt schreibe, was ich über dich denke, gibts mecker vom Chef.
AW: @Nepumuk
10.06.2022 14:27:23
oraculix
Danke Daniel!
Doch habe alles gelesen kann nur nix damit anfangen ich mach das erst seit Monaten und verstehe die zusammenhänge nur teilweise.
Außerdem habe ich schon alles mögliche versucht mit Case - 1 +1
Select Case Button
Case 1: Cells(ActiveCell.Row + 1, 2).Select
Case 2: Cells(ActiveCell.Row - 1, 2).Select
End Select
Ich bekomme es einfach nicht hin!
Gruß
Oraculix
Anzeige
AW: @Nepumuk
10.06.2022 14:53:14
Daniel
naja irgendwie ist es schon verwirrend, du schreibst was von Bildern einlesen, aber im code springst du nur in den Zellen rum.
also: wie du unterscheiden kannst, ob rechte oder linke Maustaste gedrückt wurde, weißt du jetzt.
die frage wäre jetzt also, was soll passieren, wenn du die linke Maustaste gedrückt hast? dieser code muss dann nach dem Case 1 mit einer einrückungstufe mehr eingefügt werden
und was soll passieren, wenn die rechte Maustaste gedrückt wurde, dieser Code muss dann nach dem Case 2 eingefügt werden (auch wieder mit einer Einrückungsstufe mehr als das Case 2)
Gruß Daniel
Anzeige
AW: @Nepumuk
10.06.2022 15:01:28
oraculix
Wenn Du Dir die Hochgeladene Arbeitsmappe angesehen hättest wüstest Du was ich möchte.
Jeder hat nicht die Zeit wie Du sich mit VBA ständig zu beschäftigen.
Entweder Du hilfst mir oder Du lässt es bleiben aber Deine Bemerkungen kannste für Dich behalten.
AW: @Nepumuk
10.06.2022 15:05:37
Daniel
ich helfe dir ja, aber du musst auch mitdenken.
blindes kopieren und einfügen von irgendwelchen gefundenen codes aus dem Internet funktioniert halt nicht.
wenn du sowas haben willst, solltest du einen Profi beauftragen (gibts auch hier bei Herber)
und nicht jeder hat die Zeit, sich in deine Datei ohne irgendeine Beschreibung was da passieren soll.
Anzeige
AW: @Nepumuk
10.06.2022 15:11:40
oraculix
Verstehe nicht was da so schwer sein soll zu Verstehen linke Maus zeigt voriges Bild habe ich ja geschrieben.
AW: @Nepumuk
10.06.2022 15:50:04
Daniel
naja du hattest geschrieben, dass bei linkem Mausklick das nächste Bild ausgewähtl werden soll und bei rechtem das vorherige
beim linken springst du eine Zeile nach unten und wenn dieses Zelle leer ist, in die nächste Spalte in die Zeile 2
also musst du bei rechtem Mausklick eine Zeile nach oben gehen, oder wenn du schon in der obersten Zeile bist, eine Spalte nach links und dann in die unterste zeile.
ich gehe mal davon aus, dass deine Tabelle lückenlos gefüllt ist, dann sieht der Sprung für die rechte Maustaste so aus:

if activeCell.Row = 2 then
ActiveCell.Offset(-1, -1).End(xldown).Select
Else
activeCell.Offset(-1, 0).Select
End if
wie du die beiden Codes den jeweiligen Buttons zuordnest, hatte ich dir ja gezeigt.
Das auswählen der Bilder passiert dann ja automatisch über das SelectionChange-Event.
Gruß Daniel
Anzeige
AW: @Nepumuk@Daniel
10.06.2022 16:29:23
oraculix
Danke wenigstens was zum herumprobieren Danke!
Aber es kommt kein Fehler aber jetzt geht er weder eine Zeile nach oben noch nach unten wenn ich eine der beiden Maustasten klicke!
'Klick auf Image1 zeigt nächstes Bild

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.ScreenUpdating = False
Select Case Button
Case 1
Case 2
End Select
If Not IsEmpty(ActiveCell.Offset(1, 0).Value) Then
'ActiveCell.Offset(1, 0).Select
Else
Cells(2, ActiveCell.Column + 1).Select
End If
If ActiveCell.Row = 2 Then
ActiveCell.Offset(-1, -1).End(xlDown).Select
Else
ActiveCell.Offset(-1, 0).Select
End If
Application.Goto ActiveCell
Application.ScreenUpdating = True
End Sub

Anzeige
AW: @Nepumuk@Daniel
10.06.2022 16:38:27
Daniel
ok, Select Case kennst du nicht.
aber IF THEN kennst du (und da kannst du dich nicht rausreden!)

If Button = 1 THEN
hier musst du den Code einfügen, der ausgeführt werden soll wenn der Linke Mousebutton gedrückt wurde
Elseif Button = 2 Then
hier musst du den Code einfügen, der ausgefühtr werden soll, wenn der rechte Mousebutton gedrückt wurde
End If

AW: @Nepumuk@Daniel
10.06.2022 16:50:12
oraculix
Puh Danke es geht jetzt in beide Richtungen ohne Fehler.
Aber wenn ich den letzten Eintrag der Spalte erreiche sollte er in die die nächste Spalte wechseln.
Das macht er aber nicht. Siehe Arbeitsmappe die ich hochgeladen habe und klick mal auf das image mit der Linken Maus bis zum letzten Eintrag da siehst Du wie er in die nächste Spalte nach rechts wechselt,
und das Fehlt jetzt!!
'Klick auf Image1 zeigt nächstes Bild

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.ScreenUpdating = False
Select Case Button
Case 1
Case 2
End Select
'If Not IsEmpty(ActiveCell.Offset(1, 0).Value) Then
' ActiveCell.Offset(1, 0).Select
'  Else
'Cells(2, ActiveCell.Column + 1).Select
'End If
' If ActiveCell.Row = 2 Then
' ActiveCell.Offset(-1, -1).End(xlDown).Select
'Else
'ActiveCell.Offset(-1, 0).Select
'End If
If Button = 1 Then
If ActiveCell.Row = 2 Then
ActiveCell.Offset(-1, -1).End(xlDown).Select
Else
ActiveCell.Offset(-1, 0).Select
End If
' hier musst du den Code einfügen, der ausgeführt werden soll wenn der Linke Mousebutton gedrückt wurde
ElseIf Button = 2 Then
If ActiveCell.Row = 1 Then
ActiveCell.Offset(1, 1).End(xlDown).Select
Else
ActiveCell.Offset(1, 0).Select
' hier musst du den Code einfügen, der ausgefühtr werden soll, wenn der rechte Mousebutton gedrückt wurde
End If
Application.Goto ActiveCell
Application.ScreenUpdating = True
End If
End Sub

Anzeige
AW: Danke@Daniel
11.06.2022 05:52:46
oraculix
Danke Daniel Hat sich erledigt ! Jetzt geht alles!
'Klick auf Image1 zeigt nächstes Bild

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.ScreenUpdating = False
If Button = 1 Then
If Not IsEmpty(ActiveCell.Offset(1, 0).Value) Then
ActiveCell.Offset(1, 0).Select
Else
Cells(2, ActiveCell.Column + 1).Select
End If
Application.Goto ActiveCell
ElseIf Button = 2 Then 'Wenn rechte Maus dann
If ActiveCell.Row = 2 Then 'Zeile2
ActiveCell.Offset(-1, -1).End(xlDown).Select 'Dann zurück zur vorigen Spalte
Else
ActiveCell.Offset(-1, 0).Select '1 Zeile rauf
End If
Application.Goto ActiveCell
Application.ScreenUpdating = True
End If
Application.ScreenUpdating = True
End Sub

Gruß
Oraculix
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige