Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 11:16:26
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Schaltfläche fürdarunterliegende Zelle

Forumthread: VBA Schaltfläche fürdarunterliegende Zelle

VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 12:37:24
Martin
Hallo,
ich möchte Buttons oder Schaltflächen auf viele Excel-Zellen legen.
Der Button oder die Schaltfläche hat die Größe der darunterliegenden
Zelle.
Bei Anklicken soll die Zahl in der darunterliegenden in eine bestimmte andere
Zelle übertragen werden.
Gibt es ein Skript für "kopiere die darunterliegende Zahl in die Zelle A1"?
Ich weiß, daß ich alternativ für jeden Button und jede Zelle ein Sript schreiben
und zuordnen kann/muß.
Danke fürs Mitdenken.
Born

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 13:07:16
hary
Hallo Born
Hier zb. C2 nach A1

Range("C2").Copy Range("A1")


Gruss Hary

AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 17:36:00
Martin
Hallo Hary,
ja danke, aber genau das wollte ich ja nicht. Hab ich versucht zu beschreiben.
Trotzdem danke,
Born

Anzeige
AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 13:28:00
Daniel
Hi
du kannst mit .TopLeftCell die Zelle ermitteln, in der sich die Linke obere Ecke des Grafikelements (Button ist auch eines) und darauf dein Makro aufbauen.
des weitern würde ich emfehlen, die Buttons aus der FORMULARFELD-Leiste zu nehmen und keine Steuerelemente.
bei Steuerelementen musst du wirklich für jeden Button einen eigenen Code schreiben, bei Formularfeldern reicht ein Makro, dieses gleiche Makro kannst du dann mehreren Buttons zuweisen.
über die Funktion APPLICATION.CALLER kannst du dann feststellen, welcher Button das Makro aufgerufen hat.
grosser Vorteil der Sache: du kannst die Buttons einfach verschieben oder sogar kopieren, ohne im Code irgendwas verändern oder ergänzen zu müssen.
Sollten es alledings viele Zellen sein, die einen Button erhalten sollen, würde ich die "Doppelklick-Methode" empfehlen, diese ist auf dem 2. Blatt realisiert. Der Code dazu befindet sich im Modul des Tabellenblatts.
https://www.herber.de/bbs/user/52901.xls
Gruß, Daniel

Anzeige
AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 17:35:14
Martin
Lieber Daniel,
damit hast du mir ein großes Geschenk gemacht. Und viel Zeit gespart
hast Du mir auch. Ich wußte gar nicht, daß es Application.Caller und
.TopleftCell und die Doppelklick-Methode überhaupt gibt.
Es war sehr einfach, das zu übernehmen.
Vielen Dank,
Born

Anzeige
AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 18:06:00
Daniel
Hi
danke für die Rückmeldung, ansonten , you're welcome,
die Funktionen hab ich selber hier im Forum kennengelernt.
Gruß, Daniel

AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 13:35:37
fcs
Hallo Born,
wenn du die Buttons aus der Symbolleiste "Formular" verwendest, dann können alle Buttons das gleiche Makro aufrufen.
z.B:

Sub ZahlunterButton eintragen()
Dim varCaller, objZelle As Range
varCaller = Application.Caller 'Speichert den Namen des aufrufenden Shapes
Set objZelle = ActiveSheet.Shapes(varCaller).TopLeftCell
'Zahl unter Button in anderer zelle eintragen
Cells(10, 10).Value = objZelle.Value
End Sub


Bei den Buttons aus der Symbolleiste "Steuereleemnte.Toolbox" benötigt jeder Butten eine Klickereignis-Prozedur, die aber die Zelladresse an eine gemeinsame Sub übergeben kann.


Private Sub CommandButton1_Click()
Call NumberTransfer(Me.CommandButton1.TopLeftCell)
End Sub
Private Sub CommandButton2_Click()
Call NumberTransfer(Me.CommandButton2.TopLeftCell)
End Sub
Private Sub NumberTransfer(objZelle As Range)
Cells(10, 10).Value = objZelle.Value
End Sub


Evtl. kann man auch nach was mit Klassen-Modulen machen, da hab ich aber keine Erfahrungen mit.
Gruß
Franz

Anzeige
AW: VBA Schaltfläche fürdarunterliegende Zelle
07.06.2008 17:40:00
Martin
Hallo Franz,
thank you very much. Ich habe schon Daniel geschrieben, wie dankbar ich für
das bin, was ich von Euch lernen darf. Application Caller hatte ich noch nie
gehört. Jetzt weiß ich's. Das war sehr hilfreich.
Danke,
Born
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

VBA Schaltfläche für darunterliegende Zelle


Schritt-für-Schritt-Anleitung

  1. Schaltfläche einfügen: Gehe zu "Entwicklertools" und klicke auf "Einfügen". Wähle die Schaltfläche aus der Formularsteuerelemente-Leiste.

  2. Schaltfläche positionieren: Ziehe die Schaltfläche über die Zelle, die du als Button formatieren möchtest. Die Schaltfläche wird die Größe der Zelle annehmen.

  3. Makro zuweisen: Klicke mit der rechten Maustaste auf die Schaltfläche und wähle "Makro zuweisen". Erstelle ein neues Makro oder wähle ein vorhandenes aus.

  4. VBA-Code einfügen: Verwende den folgenden Code, um die Zahl aus der darunterliegenden Zelle in eine bestimmte Zelle zu kopieren:

    Sub ZahlunterButtonEintragen()
        Dim varCaller As String
        Dim objZelle As Range
        varCaller = Application.Caller 'Speichert den Namen des aufrufenden Shapes
        Set objZelle = ActiveSheet.Shapes(varCaller).TopLeftCell
        'Zahl unter Button in einer anderen Zelle eintragen
        Cells(1, 1).Value = objZelle.Value ' Ändere die Zelle nach Bedarf
    End Sub
  5. Testen: Klicke auf die Schaltfläche, um zu überprüfen, ob die Zahl korrekt übertragen wird.


Häufige Fehler und Lösungen

  • Fehler: Makro wird nicht ausgeführt
    Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind (Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen).

  • Fehler: Zahl wird nicht kopiert
    Lösung: Überprüfe, ob die Schaltfläche korrekt mit dem Makro verknüpft ist. Rechtsklicke auf die Schaltfläche und wähle "Makro zuweisen".


Alternative Methoden

  • Doppelklick-Methode: Du kannst auch die Doppelklick-Methode verwenden, um die darunterliegende Zahl zu übertragen. Platziere in der Tabelle folgenden Code:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Cells(1, 1).Value = Target.Value ' Hier wird die Zahl in Zelle A1 übertragen
        Cancel = True ' Verhindert das Editieren der Zelle
    End Sub
  • Excel Zelle als Button formatieren: Du kannst auch Zellen direkt als Schaltflächen nutzen, indem du sie formatierst und das Makro zuweist.


Praktische Beispiele

  1. Zelle A2 als Schaltfläche: Erstelle eine Schaltfläche über der Zelle A2, um den Wert nach A1 zu kopieren.

  2. Mehrere Zellen: Füge mehrere Schaltflächen in einer Spalte ein, um die Werte aus den Zellen B1, B2 usw. nach C1 zu übertragen.

    Sub CopyValues()
        Dim index As Integer
        For index = 1 To 10
            Cells(1, 3).Value = Cells(index, 2).Value ' Kopiert von Spalte B nach C
        Next index
    End Sub

Tipps für Profis

  • Verwendung von Application.Caller: Mit Application.Caller kannst du den Namen der Schaltfläche abfragen, die das Makro aufgerufen hat. Das ermöglicht flexibles Arbeiten mit vielen Schaltflächen, ohne den Code für jede einzeln anpassen zu müssen.

  • Klassenmodule: Überlege, Klassenmodule zu verwenden, um komplexere Interaktionen mit Schaltflächen zu ermöglichen und deinen Code zu organisieren.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Schaltflächen mit demselben Makro verwenden?
Du kannst das gleiche Makro mehreren Schaltflächen zuweisen, indem du die Schaltflächen aus der Formularsteuerelemente-Leiste verwendest.

2. Warum funktioniert mein VBA-Code nicht?
Stelle sicher, dass du die richtigen Referenzen in deinem VBA-Projekt hast und dass das Makro den richtigen Namen trägt. Überprüfe auch, ob die Schaltfläche mit dem Makro verknüpft ist.

3. Wie kann ich die Schaltflächen besser gestalten?
Nutze die Formatierungsoptionen in Excel, um deine Schaltflächen ansprechend zu gestalten. Du kannst Farben, Schriftarten und Rahmen anpassen, um sie hervorzuheben.

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