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

Forumthread: Buttons auf Sheet dynamisch platzieren

Buttons auf Sheet dynamisch platzieren
01.12.2008 07:48:03
Joachim
Hi,
ich habe ein Sheet mit ziemlich vielen Spalten (A-BZ).
Auf dem Sheet befinden sich noch ein paar Buttons. Die sitzen so ca im Range A1:O10 , also so ungefähr, wenn man in der Tabelle ganz links arbeitet (die ersten paar Spalten) , dann sind sie sichtbar.
Mein Problem: wenn ich in Sheet irgendwo im hintenern Teil ( so ab Spalte P, Q..) was bearbeite , dann muss ich soweit noch rechts scrollen, dass ich die Buttons nicht mehr sehe, Sie verschwinden links aus dem Monitor. Wenn ich nun einer dieser Funktionen brauch, muss ich in der Tabelle jedes mal nach vorne scrollen, um an die Buttons heran zu kommen.
(mit fixieren habe iches schon versucht, aber da lässt sich die Tabelle nicht mehr sauber darstellen)
Gibt es in VBA irgend eine Möglichkeit, die Buttons, die auf dem Sheet sind , beim Scrollen praktisch "mitwandern" zu lassen. Also, wenn ich in der Tabelle nach hinten scrolle, sich die LEFT Eigenschaft der Buttons nach oben verändert und ich diese immer auf dem Monitor habe ?
Danke mal für die Hilfe.
Gruss
Joachim
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buttons auf Sheet dynamisch platzieren
01.12.2008 08:03:38
rofu
hi,
eine möglichkeit wäre mit-
Fenster fixieren
gruß rofu
AW: Buttons auf Sheet dynamisch platzieren
01.12.2008 08:23:47
Joachim
HI,
nein, also das mit dem fixieren hat keinen wert. Es würde am Monitor nur noch eine sichtbare Spalte rechts übrig bleiben, die nicht fixiertiert ist und scrollt.
Eine scrollende Spalte ist ewas wenig.
Gruss
Joachim
Anzeige
AW: Buttons auf Sheet dynamisch platzieren
01.12.2008 08:34:00
rofu
hi,
was hälts du von der methode,
die buttons in einer Userform einzubinden, die kannst du dann plazieren wo du willst
gruß
rofu
ActiveWindow.VisibleRange.Top und .Left
01.12.2008 08:46:00
Matthias
Hallo
setz mal ein Commandbutton1 irgendwo in eine leereTabelle
diesen Code dann ins Tabellenblatt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommandButton1.Top = ActiveWindow.VisibleRange.Top
CommandButton1.Left = ActiveWindow.VisibleRange.Left
End Sub


wenn Du Dich nun im Blatt bewegst (Pfeiltasten) wandert der Button mit
wird also immer nach links/oben im sichtbaren Bereich gesetzt.
Bewegst Du Dich über die Bildlaufleisten, so musst Du nur einmal in irgend eine Zelle klicken und der Button ist wieder links oben.
hilfts?
Gruß Matthias

Anzeige
AW: Hast du das auspobiert?geht bei mir nicht
01.12.2008 08:54:23
rofu
Ja getestet ...
01.12.2008 09:08:00
Matthias
Hallo (soviel Zeit sollte schon sein)
Hast Du auch Button1 genommen und den Code in die Tabelle kopiert ?
Habe es getestet in Version XL2000 und XL2007
Funktioniert in beiden Excelversionen einwandfrei
ansonsten lad mal Deine Mappe hoch, in der das nicht geht.
Gruß Matthias (auch soviel Zeit sollte noch sein)
Anzeige
AW: Ja getestet ...
01.12.2008 09:15:00
rofu
Hallo Matthias,
das geschah nur aus Zeitdruck, sollte nicht unhöflich sein-OK?
Hier meine Datei-Excel 2003
https://www.herber.de/bbs/user/57268.xls
Gruß
Robert
AW: Hast du das auspobiert?geht bei mir nicht
01.12.2008 09:12:00
Luschi
Hallo rofu,
bei mir funktioniert es auch!
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Hast du das auspobiert?geht bei mir nicht
01.12.2008 09:17:31
robert
Hallo, habe meine datei an matthias geschickt, bin gespannt, warum bei mir nicht
gruß
robert
hier das Sheet ...
01.12.2008 09:33:02
Matthias
Hallo
Vielleicht ist Deine Datei korrupt. Deine Mappe funzt bei mir auch nicht.
Hier mein funktionierendes Sheet:
https://www.herber.de/bbs/user/57269.xls
klappt's damit ?
Gruß Matthias
Anzeige
AW: hier das Sheet ...
01.12.2008 13:24:00
robert
Hallo Matthias,
ich habe diese Datei in Excel neu geöffnet, einen Button eingefügt
und Deinen Code eingegeben.
Geht nicht.....
Deine Datei geht-warum weiss ich nicht
Danke und
Gruß
Robert
gib den Code mal wirklich selbst ein ...
02.12.2008 11:20:00
Matthias
Hallo Robert
Ich tippe mal Du hast den Code eben nicht händisch eingegeben sondern reinkopiert.
Da gibt es schon ab und zu mal Probleme.
Probiere es mal wirklich mit der händischen Codeeingabe
Das
Worksheet und das Ereignis
kannst Du Dir ja über die Listen holen
aber die beiden Codezeilen gib mal tatsächlich händisch ein.
eine Rückmeldung wäre für mich interessant.
Gruß Matthias
Anzeige
AW: gib den Code mal wirklich selbst ein ...
04.12.2008 07:41:32
robert
Hallo Matthias,
es ist so wie du sagst.
plötzlich geht alles........
danke und gruß
Danke für die Rückmeldung ... oT
04.12.2008 23:13:12
Matthias
AW: ActiveWindow.VisibleRange.Top und .Left
01.12.2008 10:00:28
Joachim
Hallo Matthias,
danke , ja im prinziep würde es mir helfen. ich habe nur ein Problem damit:
ich habe die ersten 9 Zeilen fixiert. wenn ich nun den Code ausführe, springen die 3 Buttons alle unterhalb dieser Fixierung und das zweite, sie springen alle drei übereinander.
Habe die Hier mal ein beispiel:
https://www.herber.de/bbs/user/57271.xls
Teste mal.
Ist das normal ?
Der Abstand zum linken Rand sollte (CommandButton1.Left) , wenn möglich, so, wie es jetzt ist , bestehen bleiben
Gruss
joachim
Anzeige
AW: ActiveWindow.VisibleRange.Top und .Left
01.12.2008 10:20:02
Matthias
Hallo
vielleicht so ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommandButton1.Top = Range("A3").Top
CommandButton1.Left = ActiveWindow.VisibleRange.Left + 137.25
CommandButton2.Top = Range("A3").Top
CommandButton2.Left = ActiveWindow.VisibleRange.Left + 272.25
CommandButton3.Top = Range("A3").Top
CommandButton3.Left = ActiveWindow.VisibleRange.Left + 373.5
End Sub


Dazu hättest Du nur die .Left und .Top Eigenschaft mit einer Msgbox auszulesen brauchen.
Gruß Matthias

Anzeige
Perfekt, vielen Dank oT.
01.12.2008 10:26:42
Joachim
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamisches Platzieren von Buttons in Excel


Schritt-für-Schritt-Anleitung

Um Buttons in Excel dynamisch zu platzieren, kannst Du den folgenden VBA-Code verwenden. Dieser sorgt dafür, dass die Buttons immer im sichtbaren Bereich bleiben, während Du durch das Blatt scrollst. So funktioniert es:

  1. Öffne das Excel-Dokument und füge einen CommandButton ein. Gehe dazu auf die Registerkarte "Entwicklertools" und wähle "Button (Formularsteuerelement)" aus.

  2. Klicke mit der rechten Maustaste auf den Button und wähle "Code anzeigen".

  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       CommandButton1.Top = ActiveWindow.VisibleRange.Top
       CommandButton1.Left = ActiveWindow.VisibleRange.Left
    End Sub
  4. Schließe das VBA-Fenster und teste den Button, indem Du mit den Pfeiltasten durch das Sheet navigierst. Du solltest sehen, dass der Button mitwandert.


Häufige Fehler und Lösungen

  • Fehler: Die Buttons springen übereinander oder außerhalb des sichtbaren Bereichs.

    • Lösung: Stelle sicher, dass Du die .Top und .Left Eigenschaften korrekt anpasst. Verwende den folgenden Code, um die Position der Buttons zu fixieren:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       CommandButton1.Top = Range("A3").Top
       CommandButton1.Left = ActiveWindow.VisibleRange.Left + 137.25
       CommandButton2.Top = Range("A3").Top
       CommandButton2.Left = ActiveWindow.VisibleRange.Left + 272.25
       CommandButton3.Top = Range("A3").Top
       CommandButton3.Left = ActiveWindow.VisibleRange.Left + 373.5
    End Sub
  • Fehler: Der Code funktioniert nicht in bestimmten Excel-Versionen.

    • Lösung: Teste den Code in Excel 2000 oder 2007, da er in diesen Versionen erfolgreich getestet wurde. Achte darauf, dass Du den Code händisch eingibst und nicht kopierst.

Alternative Methoden

Eine weitere Möglichkeit, Buttons in Excel einzufügen, ist die Verwendung einer Userform. Hier kannst Du die Buttons beliebig positionieren, ohne dass sie beim Scrollen des Sheets verschwinden. Um eine Userform zu erstellen:

  1. Gehe zu "Entwicklertools" und wähle "Visual Basic".
  2. Klicke auf "Einfügen" und wähle "UserForm".
  3. Füge die benötigten Buttons hinzu und programmiere die erforderlichen Funktionen.

Praktische Beispiele

Ein Beispiel für die Anwendung des Codes könnte sein, wenn Du eine Tabelle mit vielen Spalten hast. Stelle sicher, dass Du die Positionen der Buttons so anpasst, dass sie immer im sichtbaren Bereich bleiben, während Du durch die Daten scrollst. Hier ist ein Beispielcode für mehrere Buttons:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    CommandButton1.Top = Range("A3").Top
    CommandButton1.Left = ActiveWindow.VisibleRange.Left + 50
    CommandButton2.Top = Range("A3").Top
    CommandButton2.Left = ActiveWindow.VisibleRange.Left + 100
End Sub

Tipps für Profis

  • Verwende die ActiveWindow.VisibleRange-Eigenschaft, um die Position der Buttons dynamisch an die Sichtbarkeit der Zellen anzupassen.
  • Experimentiere mit den Abständen der Buttons, um sicherzustellen, dass sie nicht überlappen.
  • Verwende benutzerdefinierte Formate für Buttons, um sie visuell ansprechender zu gestalten.

FAQ: Häufige Fragen

1. Warum bewegen sich die Buttons nicht wie gewünscht? Es könnte sein, dass der Code nicht korrekt eingegeben wurde. Stelle sicher, dass Du den Code händisch eingibst.

2. Funktioniert der Code in allen Excel-Versionen? Der Code wurde erfolgreich in Excel 2000 und 2007 getestet. Bei neueren Versionen kann es Unterschiede geben, die Du berücksichtigen solltest.

3. Wie kann ich die Buttons an anderen Stellen platzieren? Ändere einfach die Werte für .Top und .Left im Code, um die Buttons an die gewünschte Position zu verschieben.

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