Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro-Button verschieben

Makro-Button verschieben
10.04.2013 09:00:08
Thms
Hallo,
ich habe ein Makro mit einem dazugehörigem Button (1). Ich möchte neben dem Prozess den das Makro bereits ausführt, dass der Button etwas nach rechts verschoben wird, in seiner Formatierung aber gleichbleibt. Da ich keine Ahnung habe wie man das in den Code schreibt, habe ich es aufgenommen.
Das kam dabei raus:
ActiveSheet.Shapes.Range(Array("Button 2")).Select
ActiveSheet.Shapes("Button 2").IncrementLeft 220
Zusätzlich zu Button (1), habe ich einen weiteren - Button (2). Nach klicken von diesem soll der dahinterstehende Prozess ausgeführt werden und der Button (1) zurück an seine ursprüngliche Stelle mit seiner ursprünglichen Formatierung verschoben werden. Auch das habe ich aufgenommen;
ActiveSheet.Shapes("Button 2").IncrementLeft -220
Mein Problem: Das Verschieben klappt nicht wirklich. Der Button wird zwar nach rechts verschoben, dabei ändert sich aber das ursprüngliche Format (wird kleiner). Außerdem kommt er nach Klick auf Button (2) auch nicht wieder an seine Ausgangsposition zurück.
Wenn man sich auskennt bestimmt eine Leichtigkeit sowas kurz zu schreiben?
Wäre Euch sehr verbunden!
Liebe Grüße
Thomas

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro-Button verschieben
10.04.2013 09:11:03
Klaus
Hi,
ich würd mich da an Zellen orientieren.
Folgendes Makro quetscht den Button "CommandButton1" exak in die Zelle B3.
Musst du dir ein bisschen umschreiben, zB einmal für Zelle C3 und einmal für Zelle B3 (rechts / links).
Die Zeilen
.Width = rng.Width
.Height = rng.RowHeight
kannst du auch durch fixe Werte ersetzen, zb so:
.Width = 75
.Height = 200
dann ist der Button an B3 ausgerichtet, 75 Px hoch und 200 Px breit.
Sub ButtonAusrichten()
Dim rng As Range
Set rng = ActiveSheet.Range("B3")
With ActiveSheet.OLEObjects("CommandButton1")
.Top = rng.Top
.Left = rng.Left
.Width = rng.Width
.Height = rng.RowHeight
End With
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Makro-Button verschieben
10.04.2013 09:18:10
Thms
Super! Danke!
Ich habe noch einen Weg gefunden, wie es mit meinem aufgenommenem Makro funktioniert:
Unter Eigenschaften den Makrobutton von Zellposition und Höhe unabhängig aktivieren.
Bin ich aber auch erst drauf gekommen, nachdem du das mit der Zellhöhe etc. geschrieben hast :)
Beste Grüße!
Thomas
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro-Button in Excel verschieben


Schritt-für-Schritt-Anleitung

Um einen Excel-Makro-Button zu verschieben, kannst du die folgenden Schritte befolgen:

  1. Makro erstellen: Öffne den VBA-Editor (ALT + F11) und erstelle ein neues Modul.

  2. Code einfügen: Füge den folgenden Code ein, um den Button zu verschieben:

    Sub ButtonVerschieben()
       ActiveSheet.Shapes("Button 2").IncrementLeft 220
    End Sub
  3. Button zurücksetzen: Um den Button an seine ursprüngliche Position zurückzusetzen, füge folgenden Code hinzu:

    Sub ButtonZurücksetzen()
       ActiveSheet.Shapes("Button 2").IncrementLeft -220
    End Sub
  4. Makro zuweisen: Weisen Sie die oben erstellten Makros den entsprechenden Buttons zu.

  5. Testen: Klicke auf die Buttons, um sicherzustellen, dass sie sich wie gewünscht verschieben.


Häufige Fehler und Lösungen

  • Problem: Der Button ändert seine Größe beim Verschieben.

    • Lösung: Stelle sicher, dass die Eigenschaften für den Makrobutton so eingestellt sind, dass die Zellposition und Höhe unabhängig sind. Dies kannst du in den Eigenschaften des Buttons anpassen.
  • Problem: Der Button kehrt nicht zur ursprünglichen Position zurück.

    • Lösung: Überprüfe den Code und stelle sicher, dass die Werte für IncrementLeft korrekt sind. Die Werte sollten dem Betrag entsprechen, um den du den Button verschoben hast.

Alternative Methoden

Eine alternative Methode besteht darin, den Button direkt an eine Zellposition auszurichten. Hier ein Beispielcode:

Sub ButtonAusrichten()
    Dim rng As Range
    Set rng = ActiveSheet.Range("B3")
    With ActiveSheet.OLEObjects("CommandButton1")
        .Top = rng.Top
        .Left = rng.Left
        .Width = 75
        .Height = 200
    End With
End Sub

Diese Methode stellt sicher, dass der Button exakt in der gewünschten Zelle positioniert ist.


Praktische Beispiele

  1. Beispiel 1: Verschieben eines Buttons um 100 Pixel nach rechts:

    ActiveSheet.Shapes("MeinButton").IncrementLeft 100
  2. Beispiel 2: Zurücksetzen des Buttons auf die ursprüngliche Position:

    ActiveSheet.Shapes("MeinButton").IncrementLeft -100

Diese Beispiele helfen dir, den Excel Button zu verschieben und die gewünschten Positionen zu erreichen.


Tipps für Profis

  • Verwende Variablen: Anstatt feste Werte zu verwenden, kannst du Variablen für die Positionierung und Größe des Buttons nutzen, um den Code flexibler zu gestalten.
  • Ereignisse nutzen: Du kannst auch Ereignisse verwenden, um den Button automatisch zu verschieben, wenn eine bestimmte Aktion erfolgt.
  • Dokumentation: Halte deine Makros gut dokumentiert, damit du später schnell nachvollziehen kannst, was jeder Teil des Codes bewirkt.

FAQ: Häufige Fragen

1. Wie kann ich einen Button in Excel verschieben, ohne seine Größe zu ändern?
Stelle sicher, dass die Eigenschaften des Buttons so eingestellt sind, dass die Zellposition und Höhe unabhängig sind.

2. Kann ich mehrere Buttons gleichzeitig verschieben?
Ja, du kannst eine Schleife verwenden, um mehrere Buttons gleichzeitig zu verschieben, indem du ihren Namen in einem Array speicherst und dann durch das Array iterierst.

3. Welche Excel-Version benötige ich für die Verwendung von Makros?
Makros sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige