Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA-Buttonerstellung an Tabellenende anpassen
#1
Moin,

ich habe folgendes Problem:
Per VBA erstelle ich eine Kopie von einem Tagesbericht und lasse mir in diese Kopie einen "Tagesbericht validieren"-Button erstellen. Nun sieht mein Code derzeit so aus, dass ich den Button an eine bestimmte Zeile und Spalte anhefte Eine schönere Lösung wäre jedoch, die Postion des Buttons von der Länge des Tagesberichts abhängig zu machen. Gibt es da eine Möglichkeit?
Code:
Sub Schaltfläche3_Speichern()

    Sheets("Tagesbericht_Muster").Copy Before:=Sheets(Worksheets.Count - 1)
    Sheets("Tagesbericht_Muster (2)").Select
   
    With ActiveSheet
            With .Buttons.Add(517.5, 1323, 382.5, 30)
                .Left = Cells(87, 5).Left
                .Top = Cells(87, 5).Top
                .OnAction = "Schaltfläche5_Validieren"
                .Characters.Text = "Tagesbericht validieren"
            End With
        End With

    With Selection.Characters(Start:=1, Length:=17).Font
        .Name = "Calibri"
        .FontStyle = "Standard"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 1
    End With

   ActiveSheet.Name = Range("E2").Value
   Range("A1").Select
End Sub
Antworten Top
#2
Moin!
Statt .Left = Cells(87, 5).Left
nimmst Du halt .Left = Cells(erste_freie_Zeile, 5).Left

Und wenn ich Deinen Code sehe, bin ich mir sehr sicher, dass Du erste_freie_Zeile umsetzen kannst.
Schließlich wirft mir Bing schlappe 3.500.000 Fundstellen aus:
https://www.bing.com/search?FORM=FCDE01&PC=MC07&q=erste+leere+Zeile

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Dorzen14
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste