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

Forumthread: Commandbutton verschieben

Commandbutton verschieben
16.06.2005 14:30:37
Marc
Hallo alle zusammen,
ist es möglich einen Commandbutton per Code an eine bestimmte Zellposition zu verschieben?
Mit folgendem Code kann ich den Button während der Ausführung der hinterlegten Befehle um eine Seite nach unten verschieben.

Sub Makro_verschieben()
ActiveSheet.Shapes("CommandButton1").Select
Selection.ShapeRange.IncrementTop 956.75
End Sub

Das ist aber nicht das, was ich brauche. Damit verschiebe ich den Button im Verhältnis zum Tabellenanfang. Ich möchte aber, das der Button sich an einer bestimmten Zellposition orientiert und somit immer relativ den gleichen Platz zu den von mir gefüllten Zellen einnimmt. Geht das?
Vielen Dank schon mal für eure Bemühungen!
Grüße,
Marc Richter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Commandbutton verschieben
16.06.2005 14:36:09
Jan
ActiveSheet.Shapes("CommandButton1").Left = [b123].left
ActiveSheet.Shapes("CommandButton1").Top = [b123].top
mfg Jan
AW: Commandbutton verschieben
16.06.2005 14:43:05
Christian
geht, probiers mal hiermit:
Worksheets("Master").Activate
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=500, Top:=250, Width:=175, Height:=30) _
.Select
Mit left:= und width:= kannst du die Position des zuerstellenden Buttons angeben!!
Anzeige
AW: Commandbutton verschieben
16.06.2005 14:54:43
Marc
Vielen Dank für die Tips schon mal soweit. Ich habe allerdings vergessen eine Sache zu erwähnen: Bei der Datei handelt es sich um eine Vorlage, die bereits existiert und in der bereits ein Button plaziert ist. Wenn ich den Button nun anklicke, dann wird unter der ersten Seite dieser Vorlage (ein Buchungsbeleg) eine zweite Seite erzeugt. Der Button soll nun ans Ende des Beleges, also unter die eben generierte Seite wandern. Und das jedes Mal, wenn ich den Button anklicke und eine neue Seite (das können beliebig viele sein) erzeuge. Die Codes von euch sind im Prinzip zwar sehr gut und ich werde sie mir aufschreiben. Aber sie sind irgendwie nur zum einmaligen Gebrauch geeignet. Gibt es da noch andere Möglichkeiten?
Grüße,
Marc Richter
Anzeige
AW: Commandbutton verschieben
16.06.2005 15:29:32
u_
Hallo,
schiebt immer um 15 Zeilen nach unten:

Private Sub CommandButton1_Click()
CommandButton1.Top = CommandButton1.TopLeftCell.Offset(15, 0).Top
End Sub

Gruß
Geist ist geil!
AW: Commandbutton verschieben
16.06.2005 15:47:03
Marc
Vielen Dank für diesen Tip! Das klingt schon wirklich sehr vielversprechend!!!
Leider funktioniert der Code in dieser Form noch nicht. Es kommt jedesmal zu einem Debug. Ich hab noch nicht rausgefunden, woran das liegt. Aber ich denke, mit dieser Funktion kann ich schon was anfangen.
Vielen Dank nochmal!
Grüße,
Marc Richter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Commandbutton in Excel an Zellposition verschieben


Schritt-für-Schritt-Anleitung

Um einen Commandbutton in Excel an eine bestimmte Zellposition zu verschieben, kannst du den folgenden VBA-Code verwenden. Dieser sorgt dafür, dass der Button sich relativ zu einer bestimmten Zelle bewegt. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne deine Buchungsbeleg Vorlage Excel.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deinDateiname)", dann "Einfügen" > "Modul".
  4. Kopiere und füge den folgenden Code in das Modul ein:
Private Sub CommandButton1_Click()
    ActiveSheet.Shapes("CommandButton1").Top = Range("B123").Top
    ActiveSheet.Shapes("CommandButton1").Left = Range("B123").Left
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Klicke auf den Commandbutton, um ihn an die Position von Zelle B123 zu verschieben.

Häufige Fehler und Lösungen

  1. Debug-Fehler beim Ausführen des Codes

    • Lösung: Überprüfe, ob der Name des Buttons korrekt ist (in diesem Fall "CommandButton1"). Wenn du einen anderen Namen verwendet hast, ändere den Code entsprechend.
  2. Button wird nicht an die richtige Position verschoben

    • Lösung: Stelle sicher, dass die Zelle, auf die du verweist (z.B. B123), tatsächlich existiert und dass der Code im richtigen Arbeitsblatt ausgeführt wird.

Alternative Methoden

Falls du eine andere Methode ausprobieren möchtest, kannst du den Button auch mit einer anderen VBA-Anweisung verschieben. Hier ist ein Beispiel:

Sub ButtonVerschieben()
    Dim btn As Object
    Set btn = ActiveSheet.OLEObjects("CommandButton1")

    btn.Top = btn.TopLeftCell.Offset(1, 0).Top ' Verschiebt den Button um eine Zeile nach unten
End Sub

Diese Methode ist nützlich, wenn du den Button bei jedem Klick um eine bestimmte Anzahl von Zeilen verschieben möchtest.


Praktische Beispiele

Hier sind einige praktische Anwendungen:

  • Button in einem Formular: Wenn du ein Formular hast, in dem Nutzer Daten eingeben, kannst du den Excel Button verschieben, um ihn stets unter dem letzten ausgefüllten Feld anzuzeigen.
  • Dynamische Berichte: Verwende den Button, um ihn nach dem Hinzufügen neuer Daten um einen bestimmten Abstand zu verschieben, sodass er nie überlappt.

Tipps für Profis

  • Um die Lesbarkeit und Wartbarkeit deines Codes zu erhöhen, verwende Konstanten für die Zellreferenzen.
  • Nutze Kommentare im Code, um später schnell zu verstehen, was jeder Teil des Codes macht.
  • Überlege, ob du zusätzliche Steuerelemente wie Dropdowns oder Textfelder verwenden möchtest, um die Benutzerinteraktion zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den Namen des Commandbuttons ändern?
Du kannst den Namen des Commandbuttons in den Eigenschaften des Buttons im VBA-Editor ändern. Wähle den Button aus und ändere die "Name"-Eigenschaft.

2. Funktioniert dieser Code in jeder Excel-Version?
Ja, dieser Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass das Excel-Dokument als Makro-fähige Datei (.xlsm) gespeichert wird.

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