Excel 2010 Commandbutton und Label verschoben

:)

Einfach die Erste Methode in die jeweiligen Sheets einbauen und die Zweite kann in ein Modul gepackt werden.

Muss natürlich noch angepasst werden, aber ich denke, das ist genau das, was Du suchst :)

Grüße...

Visual Basic:
Public Sub setCommandBtns()
    setCommandButtonPositions Me
End Sub


Public Sub setCommandButtonPositions(ByRef actualSheet As Excel.Worksheet)
Dim cmdBtn As Object
On Error GoTo Exhandler
    
    'Iteriere durch alle ActiveX-Controls
    For Each cmdBtn In actualSheet.OLEObjects
        
        'Ist es ein CommandButton?
        If TypeName(cmdBtn.Object) = "CommandButton" Then
            
            'Je nach CommandButton, muss man hier unterscheiden,
            'wo dieser positioniert werden soll ...
            If cmdBtn.Name = "myCommandButton1" Then '<< Hier den "Name" des CommandButtons angeben
                cmdBtn.Top = 10
                cmdBtn.Left = 10
                'cmdBtn...
            ElseIf cmdBtn.Name = "myCommandButton2" Then
                cmdBtn.Top = 10
                cmdBtn.Left = 115
                'cmdBtn...
            ElseIf cmdBtn.Name = "myCommandButton3" Then
                cmdBtn.Top = 10
                cmdBtn.Left = 220
                'cmdBtn...
            End If
            
            'Die Größe ist bei jedem CommandButton gleich ...
            cmdBtn.Width = 100
            cmdBtn.Height = 50
        End If
    Next cmdBtn
Exit Sub
Exhandler:
    Debug.Print "Error in setCommandButtonPositions >> " & Err.Description
End Sub
 
Hallo jagga007

Ich habe lange mit dem Problem gekämpft und habe glaube ich den Grund herausgefunden. Die CommandButtons verändern sich, wenn man Sheets druckt oder ein PDF erstellt und nicht 1:1 ausdruckt sondern zum Bsp mit 80% der Originalgrösse.

Ein ähnliches Problem besteht beim Zuklappen von Zeilen oder Spalten, dort verschwinen nämlich die Tasten (Grösse 0). Ich habe 2 einfache Wege gefunden, um das zu umgehen (weil ich nicht bei jedem Sheet die Position immer im VBA Programmieren will).

1. Vor dem Druck oder vor dem Zuklappen, die Tasten hiden, danach wieder sichtbar machen.
2. Vor dem Druck abspeichern und nach dem Druck schliessen ohne zu speichern, dann ist alles nämlich wieder wie vor dem Druck.

In Code sieht das etwa so aus:

'*Tasten verbergen (werden beim Zeilen verbergen zerstört)
For i = 1 To 6
ActiveSheet.Shapes("Taste" & (i)).Visible = False
Next i

'(Drucken oder PDF oder sonst was )

'*Tasten anzeigen
For i = 1 To 6
ActiveSheet.Shapes("Taste" & (i)).Visible = True
Next i

Hoffe, ich konnte helfen.
 
Hab heut erst Deine Nachricht gelesen, war berufl. unterwegs. Werds mal ausprobieren wenn es klappt weis ich wieder etwas mehr, wenn nicht dann auch nicht so schlimm. Hab das ganze umgeschrieben und machs nun über eine Userform in der die ganzen Eingaben dann gemacht werden.

Dennoch sehr vielen Dank für Deinen Tipp.

Gruß
jagga007
 
Zurück