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

Forumthread: Formularschaltflächen position ermitteln

Formularschaltflächen position ermitteln
Sina
Hallo,
ich habe ein kleines Makro geschrieben, dass eine Vorlage generiert.
Auf dieser Vorlage befinden sich Formularsteuerelemente (z.B. Schaltfläche 18).
Diese Schaltfläche soll, sobald sie gedrückt wird eine Zeile vor Ihrer Position eine Zeile einfügen.
Aber, da 20 von diesen Schaltflächen in der Vorlage sind, weiß ich nicht, wie ich das anstellen kann.
Diese Schaltflächen sind alle an ein Makro gebunden: add_New.
Aber wie finde ich heraus, welche Position das gerade gedrückte Steuerelement hat?
With ActiveSheet.Buttons(1)
MsgBox "Adresse: " & .TopLeftCell.Address & vbLf & _
"Text: " & .Caption
End With
funktioniert leider nicht, weil ich hier nur die Position vom ersten Button bekomme. Egal ob ich den dritte, vierten oder 19. drücke....
Die Generierung der Buttons ist variabel. Aber immer wenn ein Button gedrückt wird muss ich zwei Zeilen zu der Position nach oben gehen und eine Zeile einfügen.
Wie mache ich das?
Gruß
Sina
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Formularschaltflächen position ermitteln
28.06.2010 22:37:46
Nepumuk
Hallo Sina,
so:
Public Sub add_New()
    With Tabelle1.Shapes(Application.Caller)
        MsgBox "Adresse: " & .TopLeftCell.Address & vbLf & _
            "Text: " & .AlternativeText
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Formularschaltflächen position ermitteln
29.06.2010 08:33:33
Sina
Nepumuk,
Du bist mein Held!!!!
Funktionier! Danke
;
Anzeige
Anzeige

Infobox / Tutorial

Formularschaltflächen Position Ermitteln in Excel


Schritt-für-Schritt-Anleitung

Um die Position einer Formularschaltfläche in Excel zu ermitteln und eine Zeile über ihrer Position einzufügen, kannst Du folgendes Makro verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Public Sub add_New()
       With Tabelle1.Shapes(Application.Caller)
           MsgBox "Adresse: " & .TopLeftCell.Address & vbLf & _
           "Text: " & .AlternativeText
           ' Zwei Zeilen über der aktuellen Position einfügen
           .TopLeftCell.Offset(-2, 0).EntireRow.Insert
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Deinem Excel-Dokument.

  5. Weise das Makro der gewünschten Schaltfläche zu, indem Du mit der rechten Maustaste auf die Schaltfläche klickst und "Makro zuweisen" wählst.

Jetzt kannst Du die Position der Schaltfläche ermitteln und eine Zeile darüber einfügen, indem Du die Schaltfläche drückst.


Häufige Fehler und Lösungen

Fehler: „Das Makro funktioniert nicht, wenn ich auf die Schaltfläche klicke.“

Lösung: Stelle sicher, dass das Makro korrekt zugewiesen ist und dass es in der richtigen Tabelle (z. B. Tabelle1) ausgeführt wird. Überprüfe auch, ob die Schaltfläche tatsächlich ein Formularsteuerelement und kein ActiveX-Steuerelement ist.


Alternative Methoden

Eine alternative Methode zur Ermittlung der Position könnte die Verwendung von ActiveX-Steuerelementen sein. Diese bieten mehr Flexibilität, allerdings kann die Handhabung komplexer sein. Um die Position eines ActiveX-Steuerelements zu ermitteln, kannst Du folgenden Code nutzen:

Public Sub ActiveXPositionErmitteln()
    MsgBox "Position: " & ActiveSheet.OLEObjects(Application.Caller).TopLeftCell.Address
End Sub

Dieser Code erhält die Excel Position des gedrückten ActiveX-Steuerelements.


Praktische Beispiele

Angenommen, Du hast mehrere Schaltflächen auf einem Arbeitsblatt. Wenn Du auf eine der Schaltflächen klickst, wird die Adresse der Zelle, in der sich die Schaltfläche befindet, in einer MessageBox angezeigt. Diese Information kann nützlich sein, um die Position der Schaltfläche zu ermitteln, bevor Du Änderungen vornimmst.


Tipps für Profis

  • Nutze die Debug.Print-Anweisung, um Informationen im Direktfenster des VBA-Editors auszugeben, anstatt eine MessageBox zu verwenden. Dies ist nützlich, wenn Du mehrere Schaltflächen testest und die Ausgabe nicht ständig bestätigen möchtest.
  • Speichere regelmäßig eine Sicherungskopie Deiner Excel-Datei, bevor Du mit Makros arbeitest, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Position einer Schaltfläche in einer anderen Tabelle ermitteln? Um die Position in einer anderen Tabelle zu ermitteln, musst Du den Tabellennamen im Code anpassen. Zum Beispiel: With Tabelle2.Shapes(Application.Caller).

2. Was kann ich tun, wenn das Makro nicht reagiert? Überprüfe, ob Du Makros in Excel aktiviert hast. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ und aktiviere die Makros.

3. Wie viele Schaltflächen kann ich auf einem Arbeitsblatt haben? Es gibt keine feste Grenze für die Anzahl der Schaltflächen, die Du in Excel hinzufügen kannst. Beachte jedoch, dass eine große Anzahl von Steuerelementen die Leistung beeinträchtigen kann.

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