VB.Net erstellte Excel Buttons nicht anklickbar

  • VB.NET

    VB.Net erstellte Excel Buttons nicht anklickbar

    Hi zusammen,

    ich habe ein Problem zu dem ich im Internet nix finde, ich hoffe hier kann mir jemand helfen.
    Und zwar erstelle ich über VB.NET in Excel (vsto) mehrere Buttons. Aufgerufen werden sie im Startup. Das funktioniert soweit auch alles ganz gut. Es gibt nur dann ein Problem wenn die Buttons im "off" erstellt werden.
    D.h. wenn ich das Excel Dokument öffne und der Button an einer Stelle erstellt wird, die nicht in meinem Sichtbereich liegt, zu der ich also erst hinscrollen muss. Wenn der letzte Button, den ich erstelle nicht im Sichtbereich erstellt wird, dann ist die Schrift darauf verschwommen und ich kann ihn nicht anklicken. Wenn ich dann das tabellenblatt wechsel und zurückwechsel funktioniert er, aber ich empfinde das doch als etwas umständlich.
    Vor allem finde ich interessant, dass es (meistens) nur den letzten erstellten Knopf betrifft.

    Meinen Code schreibe ich hier unten hin, hat irgendjemand eine Idee woran es liegen könnte?
    Vielen Dank schonmal für die Hilfe

    Cheers
    Carica




    VB.NET-Quellcode

    1. Private Sub Tabelle1_Startup() Handles Me.Startup
    2. Dim WkSh As Interop.Excel.Worksheet = Globals.ThisWorkbook.Worksheets("Tabelle1")
    3. AddHandler CreateKnopf(WkSh.Range(Cells(7, 10), Cells(8, 12)), System.Drawing.Color.FromArgb(51, 204, 51), "Neue Zeile einfügen", "btnNeueZeile", WkSh).Click, AddressOf btnNeueZeile_Click
    4. AddHandler CreateKnopf(WkSh.Range(Cells(5, 24), Cells(6, 26)), System.Drawing.Color.FromArgb(255, 255, 204), "Auftrag erstellen", "btnAuftragsnummerNeu", WkSh).Click, AddressOf btnAuftrag_Click
    5. AddHandler CreateKnopf(WkSh.Range(Cells(5, 10), Cells(6, 12)), System.Drawing.Color.FromArgb(204, 255, 204), "Bestellformular erstellen", "btnBestellformular", WkSh).Click, AddressOf btnBestellformular_Click
    6. End Sub
    7. Function CreateKnopf(Range As Excel.Range, Farbe As System.Drawing.Color, text As String, name As String, ws As Excel.Worksheet) As Tools.Excel.Controls.Button
    8. Dim btn As New Tools.Excel.Controls.Button
    9. btn.Text = text
    10. Globals.Factory.GetVstoObject(ws).Controls.AddControl(btn, Range, name)
    11. btn.BackColor = Farbe
    12. Return btn
    13. End Function