Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Rahmen (Rechteck-Form) nur höhenverschiebbar

Forumthread: Rahmen (Rechteck-Form) nur höhenverschiebbar

Rahmen (Rechteck-Form) nur höhenverschiebbar
17.07.2025 14:02:41
Maddin88
Hallo zusammen,

ich bräuchte einen Rahmen (Form -> Rechteck ohne Füllung) welchen ich in der Höhe verschieben kann, aber nicht seitlich.
Dieser sollte am linken Rand der Exceldatei fixiert sein.
Ist sowas möglich?

Mit freundlichen Grüßen

Maddin88
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rahmen (Rechteck-Form) nur höhenverschiebbar VBA
17.07.2025 17:29:56
UweD
Hallo


Nicht ganz, das was du möchtest aber ...

- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Folgendes Rechts reinkopieren




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Me.Shapes("Rechteck 1").Left = 0
On Error GoTo 0
End Sub




Wenn du die Form verschoben hast, und danach eine Zelle aktivierst, wird das Rechteck wieder nach links geschoben.

LG UweD
Anzeige
AW: Rahmen (Rechteck-Form) nur höhenverschiebbar
17.07.2025 17:32:46
Alwin Weisangler
Hallo,

da sich in Excel bei Shapes sich kein Event auswerten lässt, bleibt da nur der Weg dies mit einem Timer .left = 0 zu erzwingen.

Anbei ein Beispiel:
https://www.herber.de/bbs/user/178105.xlsm

Gruß Uwe
AW: Rahmen (Rechteck-Form) nur höhenverschiebbar
17.07.2025 21:17:26
xlKing
Hallo,

halte beim Verschieben die Umschalttaste (Shift-Taste) gedrückt. Dann wird der Rahmen seitlich nur dann verschoben wenn du es wirklich willst. Also in größeren Abständen.

Nicht das was du suchst? Da hab ich nochwas in Petto. Füge folgenden Code in ein allgemeines Modul ein, und weise dem Rechteck über Rechtsklick "Makro zuweisen" das Makro "Verschieben" zu.

Private Declare PtrSafe Function Tastendruck Lib "user32.dll" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer 'Wichtig Welche Taste wurde gedrückt

Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Type POINTAPI
x As Long
y As Long
End Type

Private Type Mauspos
Left As Single
Top As Single
End Type

Dim mymouse As POINTAPI
Dim Maus As Mauspos

Sub Verschieben()

With ActiveSheet.Shapes(Application.Caller)
'Erstposition
MauspositionAuslesen
DiffTop = .Top - Maus.Top
DiffLeft = .Left - Maus.Left

'Ziehen
Do
MauspositionAuslesen
.Top = Maus.Top + DiffTop
.Left = 0
DoEvents
ActiveWindow.ScrollColumn = ActiveWindow.ScrollColumn
Loop Until Tastendruck(vbKeyLButton) = False Or i = 100000
End With

End Sub

Sub MauspositionAuslesen()

GetCursorPos mymouse
Maus.Left = (mymouse.x - ActiveWindow.PointsToScreenPixelsX(0)) * 0.75 / ActiveWindow.Zoom * 100 + 0.75 * ActiveWindow.Zoom / 100
Maus.Top = (mymouse.y - ActiveWindow.PointsToScreenPixelsY(0)) * 0.75 / ActiveWindow.Zoom * 100 + 0.75 * ActiveWindow.Zoom / 100

End Sub


Wenn du jetzt mit der Maus auf das Rechteck klickst und verschiebst, dann kannst du dieses nur nach oben und unten verschieben.

Gruß Mr. K.
Anzeige
AW: Nein, falsch, gilt für VISIO, sorry
17.07.2025 16:51:22
JoWE
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18