erstmal ein dickes lob an das super forum, hier wird einem wirklich geholfen. Nun zu meinem Problem.
Ich möchte über ein UserForm einige Tabellenblätter erstellen. Bei einem Tabellenblatt soll noch eine CommandBox erstellt werden. Das erstellen habe ich mal über folgendes gelöst(Makro aufgenommen):
Public Sub addButton()
ActiveSheet.Range("A2").Select
Dim btn As Button
Dim dWidth As Double, dHeight As Double
With Selection
dWidth = .Cells(.Cells.Count).Left - _
.Cells(1).Left .Cells(.Cells.Count).Width
dHeight = .Cells(.Cells.Count).Top - _
.Cells(1).Top .Cells(.Cells.Count).RowHeight
Set btn = ActiveSheet.Buttons.Add(.Cells(1).Left, _
.Cells(1).Top, dWidth, dHeight)
End With
btn.Caption = "Aufrufen"
btn.OnAction = "Tabelle12.Meldung1"
End Sub
Dies funktioniert soweit recht gut, doch jetzt kommt mein eigentliches Problem. Die Prozedur Meldung1, soll die Spalten G - J auf knopfdruck ausblenden. Ein weiteres Problem ist dass ich einige Zellen in diesem Arbeitsblatt verbunden habe, und der Zellenverbund geht von D - OpenEnd(je nachdem welche einstellungen man in der Userform angegeben hat)
Das Ein/Ausblenden möchte ich hiermit machen:
ActiveSheet.Unprotect
If Columns("G").Hidden = True Then
Columns("G").Hidden = False
Columns("H").Hidden = False
Columns("I").Hidden = False
Columns("J").Hidden = False
Else
Columns("G").Hidden = True
Columns("H").Hidden = True
Columns("I").Hidden = True
Columns("J").Hidden = True
End If
Nun nach meiner Vorstellung sollte das recht gut klappen, zumal das Ein und Ausblenden funktioniert, wenn ich es direkt einem CommandButton zuweise. Aber über vba passiert entweder nichts, oder es kommt die Fehlermeldung "400".
Was mir noch aufgefallen ist, wenn ich das script über vba dem button zuweise, dann werden nicht nur die Spalten G-J ausgeblendet, sondern die kompletten Spalten meiner verbundenen Zelle, die z.b. von D - AZ geht. Nun endlich meine Frage, habe ich den richtigen ansatz? oder mache ich da etwas grundlegendes falsch?