Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1796to1800
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

gleiche Bilder in vers. Zellen ansteuern

gleiche Bilder in vers. Zellen ansteuern
02.12.2020 08:18:49
Ralf
Hallo liebe Gemeinde,
ich komme mal wieder nicht weiter. Eine Beispieldatei habe ich angefügt:
https://www.herber.de/bbs/user/141999.xlsm
Zur Erklärung, diese Konstruktion brauche ich in vielen Zellen, also nicht nur wie im Beispiel 2 Zellen, sonst wäre es einfach.
Ich habe in einer Tabelle Zellen in denen jeweils 2 Bilder sind. Die Bildernamen sind jedoch immer gleich.
Einmal "x" und einmal "ok" jeweils in den Zellen.
Wenn ich eine aktive Zelle habe, so wie im Beispiel kann ich die Bilder mit Klick darin tauschen.
Klicke ich aber auf ein Bild in der nicht aktiven Zelle geht das logischerweise nicht, da ja die andere Zelle aktiv ist und die Bildernamen gleich sind und ich mich auf die ActiveCell... beziehe.
Wie kann ich durch den Klick auf die Grafik in der nicht aktiven Zelle, die darunter befindliche Zelle selektieren, ohne dass ich andere Grafik-Namen vergeben muss?
(Der Refresh-Button ist nur zum wieder einschalten beider Grafiken in der aktiven Zelle)
Vielleicht könnt Ihr mir helfen.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 10:12:36
ralf_b

ActiveSheet.Shapes(Application.Caller).TopLeftCell.select
so gesehen benötigst du das selektieren nicht, wenn du die Zelle auch damit identifizieren kannst.
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 10:21:20
Beverly
Hi Ralf,
benenne die Shapes um in x_1, x_2, ok_1 und ok_2 - dann sollte es mit folgendem Code funktionieren:
Sub x_ok_schalten()
Dim NameBild    As String
Dim AShape      As Shape
NameBild = ActiveSheet.Shapes(Application.Caller).Name
For Each AShape In ActiveSheet.Shapes
If AShape.TopLeftCell.Address = ActiveSheet.Shapes(Application.Caller).TopLeftCell. _
Address Then
With AShape
If .Name = NameBild Then
.Visible = False
Else
.Visible = True
End If
End With
End If
Next
End Sub


Anzeige
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 10:44:09
Ralf
Hi Karin,
ja, das wäre eine Möglichkeit, die ich aber vermeiden wollte, da ich das in Zeilen und Spalten brauche.
Es sind aber flexible Bereiche, vorallem die Zeilen. Machbar wäre es aber schöner wäre die Möglichkeit beim Klicken die Zelle zu finden, wo geklickt wurde.
Was ich mir auch schon überlegt hatte, die Klickposition der Maus abzufangen. Nur hier weiß ich nicht, wie ich die Zelle aktiviere worin sich die Position des Mauszeigers befindet.
Die Pos findet man hiermit raus: Declare Function GetCursorPos& Lib "user32" (lpPoint As POINTAPI)
Grüße Ralf
p.s. das mit ActiveSheet.Shapes(Application.Caller).TopLeftCell.select funktioiert nicht, weil die Namen der Bilder gleich sind.
Anzeige
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 11:18:05
volti
Hallo Ralf,
hier eine Idee zu Deinem Anliegen.
Wie "betriebssicher" das ist, müsstest Du jetzt mal testen.
Code:
[Cc][+][-]

Option Explicit Private Declare PtrSafe Function GetCursorPos Lib "user32" ( _ lpPoint As POINTAPI) As Long Type POINTAPI x As Long y As Long End Type Function GetShapeCell() As String Dim PT As POINTAPI, oShp As Object Dim x1 As Long, y1 As Long, x2 As Long, y2 As Long GetCursorPos PT For Each oShp In ActiveSheet.Shapes With ActiveWindow.ActivePane x1 = .PointsToScreenPixelsX(oShp.Left) y1 = .PointsToScreenPixelsY(oShp.Top) x2 = .PointsToScreenPixelsX(oShp.Left + oShp.Width) y2 = .PointsToScreenPixelsY(oShp.Top + oShp.Height) DoEvents If PT.x > x1 And PT.y > y1 And PT.x < x2 And PT.y < y2 Then GetShapeCell = oShp.TopLeftCell.Address Exit Function End If End With Next oShp End Function Sub x_ok_schalten() Dim T As String T = GetShapeCell() If T <> "" Then Range(T).Select MsgBox T End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 11:28:32
Ralf
Hallo Karl-Heinz
genau so habe ich mir das vorgestellt. Das was ich i.M. getestet habe funktioniert.
Ich war schon drauf und dran an der Klick-Position ein Bild temporär einzufügen, darüber die Celle zu ermitteln.
Aber Deine Lösung ist perfekt, ganz vielen Dank dafür!
Grüße
Ralf
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 11:34:35
volti
Danke Ralf,
schön wenn es Dich weiterbringt.
War für mich auch Neuland, weil etwas unüblich 😊
Gruß KH
AW: gleiche Bilder in vers. Zellen ansteuern
02.12.2020 11:42:01
Ralf
das bietet aber Vorteile, wenn man nicht jede Grafik umbenennen muss. Für mich perfekt.
Gruß Ralf

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige