Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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

shape-Selektion in Sheet abwählen

shape-Selektion in Sheet abwählen
04.12.2021 09:18:48
Peter
Guten Morgen zusammen!
Ich hätte eine Frage, die ich weiter unten in einem Thread mit anderem Thema bereits später, so nebenbei gestellt hatte. Leider gab es noch keine Lösung aber vielleicht hatten das viele von Euch Experten dort gar nicht gelesen!
Deshalb nochmal:
Man ist in einem Worksheet. Dort ist ein ggf. komplexer Range selektiert.
Dann wird ein Shape selektiert.
Ziel: am Ende soll wieder der Range auf dem Sheet selektiert sein.
"Zu Fuß" wäre es ganz einfach:
Ich sehe, dass ein Shape selektiert ist und drücke einfach [ESC] - fertig!
Da wohl ein [ESC], obwohl kein Shape ausgewählt, keine negativen Auswirkungen hat, könnte man das Erkennen ggf. überspringen.
Wie kann ich das per VBA erreichen - möglichst ohne Sendkey [ESC]?
Wäre toll, jemand von Euch wüßte eine Lösung!
Klingt so einfach!

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 10:11:40
Beverly
Hi Peter,
selektiere einfach eine Zelle:

Dim shaShape
If TypeName(Selection)  "Range" Then
On Error Resume Next
If Selection.Count = 1 Then
Selection.TopLeftCell.Select
Else
For Each shaShape In Selection
shaShape.TopLeftCell.Select
Exit For
Next shaShape
End If
On Error GoTo 0
End If

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 10:35:19
Peter
Danke! Dein erster Teil ist schon mal sehr hilfreich um rauszufinden, ob ein range auf dem sheet aktuell selektiert ist. Der 2. Teil funktioniert für mich nicht!
Range("A1").Select funktioniert immer, ohne Abfrage - aber ich brauche die Originalselektion zurück!
AW: shape-Selektion in Sheet abwählen
04.12.2021 11:34:14
Beverly
Wenn du die Originalselection benötigst - das ging übrigens aus deinem Beitrag nicht hervor - dann musst du sie im Worksheet_SelectionChange auf eine Public-Variable schreiben und kannst dies entsprechend auswerten.
Codemodul des Tabellenblattes:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set rngBereich = Selection
End Sub
Standardmodul:

Option Explicit
Public rngBereich As Range
Sub BereichMarkieren()
If TypeName(Selection)  "Range" Then
If Not rngBereich Is Nothing Then rngBereich.Select
End If
End Sub

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 10:44:51
Yal
Hallo Peter,
es ist wie einen Tausch zwischen 2 Variable: Du brauchst einen Zwischenspeicher.
In dem Fall in einer Variable vom Typ Range, wo die Selection geparkt wird und dann wieder abgeholt bzw. daraus neuselektiert wird.

Sub Makro2()
Dim R As Range
Range("A5:A7,B12:C18,D3:D10").Select 'Simulation
Set R = Selection 'parken
ActiveSheet.Shapes(1).Select 'Simulation
MsgBox "Shape ist selektiert" ' 'Zwischenanzeige
R.Select 'abholen und neuselektieren
Set R = Nothing
End Sub
VG
Yal
AW: shape-Selektion in Sheet abwählen
04.12.2021 10:51:42
Peter
Danke, aber leider... mit dem Start des Makris will ich ja auf den Range zugreifen. Da konnte ich ihn mir vorher nicht merken. Ich hoffte, es gäbe einen direkten Weg. Hätte erwartet, dass ein erneutes Worksheet(...).Select das leistet. Seltsam. Ich kann jedes andere Objekt des Sheets direkt ansprechen, nur den selected Range nicht!?
Anzeige
nicht Worksheet().Select sondern .Activate owT
04.12.2021 11:19:39
Yal
AW: nicht Worksheet().Select sondern .Activate owT
04.12.2021 12:50:30
Peter
Hallo Yal,
war gerade unterwegs, jetzt am PC - leider nein!
Teste mal selber:
- Erzeuge Button auf Worksheet (hier Name ""btnTest"),
- Selektiere Bereich auf Sheet.
- Führe im Direktfenster aus: 'Activesheet.Buttons("btnTest").Select' oder selektiere ihn direkt mit Re-Maus auf Sheet.
- Dann führe aus im Direktfenster: 'ActiveSheet.Activate' oder auch 'Worksheets("Tabelle1").Activate' - keine Änderung der Selektion!
Auch nicht, wenn du das in ein Makro schreibst.
- Dann drücke einfach [ESC] im Sheet - und da ist er wieder der pre-selektierte Range!! Button ist deselektiert.
Das muss doch auch irgendwie per VBA gehen!?
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 13:15:04
GerdL
Moin Peter,
ein Schuss ins Blaue. Du hast einen Button aus der ActiveXSteuerelementeToolbox und stellst die Eigenschaft
TakeOnFocus auf False.
Ggf. ist dann kein Application.OnKey-Geraffel nötig.
Gruß Gerd
AW: shape-Selektion in Sheet abwählen
04.12.2021 13:20:29
Peter
Sorry, ist Formular-Button...
AW: shape-Selektion in Sheet abwählen
04.12.2021 14:52:39
Beverly
Meinen Vorschlag aus Beitrag von 11:34:14 hast du getestet?

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 15:13:34
Peter
Hi Beverly: ja, weiter oben: Der Makro wird erst ausgeführt, nachdem selektiert und eben ggf. ein Shape ausgewählt wurde - also zu spät sich als Makro was merken zu können...
AW: shape-Selektion in Sheet abwählen
04.12.2021 15:29:13
Beverly
Klar muss erst etwas selektiert werden ehe man auf die Adresse zugreifen kann - wo soll Excel denn sonst die Ursprungsadresse hernehmen?

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 15:33:58
Peter
Versteh' dich grad nicht: Der Makro startet, nachdem beides bereits geschehen ist: Selektion Range und danach Selektion Shape. Frage ist, wie komme ich jetzt an die Selektion Range?
AW: shape-Selektion in Sheet abwählen
04.12.2021 17:36:30
Yal
Hallo Peter,
Ich verstehe nicht ganz: es ist zuert die Rede von einem Shape, dann von einem Formular-Button.
In meinem Excel-Welt wird nie eine Formular-Button mit 'Activesheet.Buttons("btnTest").Select' aktiviert, sondern einfach angeklickt. Bei einem angeklicktem Formularbutton wird die Selektion im Hintergrund beibehalten.
Wenn Du aber deinen "Shape" selektierst und dann das Makro anstosst, dann ist mit nichts anderes zu helfen als entweder
Application.SendKeys "{ESC}"
oder
Du speicherst der Stand der aktuelle Selektion mit dem Ereignis Worksheet_SelectionChange, um dann zum Austiegszeitpunkt vom "Shape" diese wieder zu geben.
(im übrigens: mein erster Code entsprach genau die Vorgabe deines ersten Beitrags.)
VG
Yal
Anzeige
AW: shape-Selektion in Sheet abwählen
04.12.2021 17:47:43
Peter
Ist schwierig zu erklären.
Ein Shape kann doch alles Mögliche sein. Hier als Beispiel ein Button.
Dass ich den zum Test mit dem VBA-Code selektiert habe...
Es geht darum, dass der User das händisch hinbekommt: Irgendein Scape (Grafik, Formularsteuerelement, ...) zu selektieren, bevor der Makro gestartet wird und seine Selektion von davor damit versteckt ist.
Ich hoffte auf eine einfache Lösung. Sendkey ist irgendwie "Last Resort" ...
Danke aber für deine und Eure Bemühungen.
Ich bin einfach verwundert, dass man den Range nicht wieder in den Fokus bekommen kann, ohne Aufstände zu machen...
Anzeige
Gefunden!
04.12.2021 18:49:45
Yal
wenn etwas einem nicht los lässt...

ActiveWindow.RangeSelection.Select
Gefunden in: https://www.mrexcel.com/board/threads/how-to-unselect-or-deselect-an-object.89574/
Aber es bleibt etwas komisches: die Aktion legt den Fokus auf dem "Window"-Objekt, was anscheinend nicht mit dem Blatt gleich zu stellen ist.
Anschliessend scheint eine Aktivierung des Blattes notwendig zu sein:

ActiveWindow.Activesheet.Activate
VG
Yal
Anzeige
Beitrag wird archiviert
09.12.2021 19:17:47
Yal
Hallo Peter,
ich weiss nicht so genau, ob Du mein letzten beitrag entdeckt hast: es funktioniert.
Ich weiss auch nicht, wie die Rückmeldung per Mail erfolgt.
Diese Thread erreicht das Ende Ihre Zeit und wird archiviert.
VG
Yal
AW: shape-Selektion in Sheet abwählen
04.12.2021 20:50:14
Beverly
Und ich verstehe DICH nicht - mit dem Worksheet_SelectionChange wird NUR das Tabellenblatt abgefragt und nicht, wenn du das Shape selectiert hast. Wenn du also erst die Zellen selektierst und anschließend ein Shape, bleibt die vorher ermittelst Zelladresse auf der Variablen, die du dann daraus abfragen kannst.

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige