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

Forumthread: Commandbutton finden

Commandbutton finden
05.08.2024 09:31:14
Sandra
Hallo Zusammen,

ich hab ein Arbeitsmappe in der sich sehr viele Tabellenblätter befinden.
Jetzt würde ich gern alle Arbeitsblätter durchsuchen, dessen Name mit "M_FL" anfängt, ob sich darauf ein Commandbutton mit dem Namen "Click_Print" oder "Click_Back_to" befindet. leider weiß ich nicht, wie ich das anstellen kann.
Diese sollen dann ausgeblendet werden.

Die meisten Arbeitsblätter werden hieraus geblendet sein und dies soll nach Ausblenden der Commandbutton auch so bleiben.
Ich hab es mit folgendem Makro probiert, (wenn ich den Namen der Tabellenblätter nicht berücksichtige und über alle suche) aber bei TypeOf hängt das Makro. Ich befürchte das ich hier was falsch deklariert habe, weiß aber nicht wie ich es richtig ist.

Vielleicht könnte mir jemand hier weiterhelfen.

Option Explicit


Sub HideCommanbutton()
Dim ws As Worksheet
Dim objOLEObject As OLEObject
Dim wsVisibleState As XlSheetVisibility
Dim targetName As String

targetName = "Click_Prnt"

For Each ws In ThisWorkbook.Worksheets

wsVisibleState = ws.Visible

ws.Visible = xlSheetVisible

For Each objOLEObject In ws.OLEObjects

If TypeOf objOLEObject.Object Is MSForms.CommandButton Then
If InStr(objOLEObject.Name, targetName) > 0 Then
objOLEObject.Visible = False

End If
End If
Next objOLEObject

ws.Visible = wsVisibleState
Next ws
End Sub


Danke schonmal im Voraus.

VG Sandra
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Commandbutton finden
05.08.2024 10:12:50
Beverly
Hi Sandra,

schreibe anstelle If TypeOf objOLEObject.Object Is MSForms.CommandButton Then
dieses: If objOLEObject.progID = "Forms.CommandButton.1" Then

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Commandbutton finden
05.08.2024 10:28:55
Sandra
Hallo an euch beide,
und schonmal vielen Dank.

Objekerstellung durch ActiveX-Komponente nicht möglich

Der Debugger markiert die Zeile : If objOLEObject.progID = "Forms.CommandButton.1" Then

VG Sandra


AW: Commandbutton finden
05.08.2024 10:21:35
daniel
Hi
da müsste man schon genau wissen , was du hast: Forumlarfeld-Button, ActiveX-Button oder sogar ein einfaches Grafikelement mit zugewiesenem Button.

oder probiers mal so, das geht mit allen Buttonvarianten.

Sub test()

Dim wsh As Worksheet
Dim shpe As Shape
For Each wsh In ActiveWorkbook.Worksheets
If wsh.Name Like "M_FL*" Then
For Each shpe In wsh.Shapes
Select Case shpe.Name
Case "Click_Print", "Click_Back_to": shpe.Visible = False
Case Else
End Select
Next
End If
Next
End Sub


warum willst du die Buttons ausblenden?
wenn es nur für den Ausdruck ist, dann kannst du in den Objekteigenschaften auch festlegen, dass diese Grafikelemente nicht ausgedruckt werden sollen.
Gruß Daniel
Anzeige
AW: Commandbutton finden
06.08.2024 11:44:50
Sandra
Hallo Daniel,

danke, Dein Makro hat funktioniert.

Mir war es wichtig, dass die Button komplett ausgeblendet werden, damit der Anwender diese Button nicht bedienen kann...
Mein Programm wäre dann nicht ganz sauber gelaufen. :-)

Also nochmal vielen Dank an Dich und natürlich auch an alle anderen!

VG
Sandra
Anzeige
AW: Commandbutton finden
05.08.2024 10:22:04
Alwin Weisangler
Hallo Sandra,

wenn es nur um den Namen des jeweiligen Controls und nicht ums Caption (lesbarer Text im Button) geht, wäre das so möglich:



Option Explicit

Sub HideCommanbutton()
Dim ws As Worksheet
Dim oleBtn As OLEObject
Dim wsVisibleState As XlSheetVisibility
Dim i&

For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, "M_FL", vbTextCompare) > 0 Then
wsVisibleState = ws.Visible
ws.Visible = xlSheetVisible
For Each oleBtn In ws.OLEObjects
If oleBtn.Name = "Click_Print" Or oleBtn.Name = "Click_Back_to" Then
MsgBox "Es existiert ein Button mit dem Namen: " & ws.Name
i = i + 1
End If
Next oleBtn
ws.Visible = wsVisibleState
End If
Next ws
If i = 0 Then MsgBox "kein Button gefunden"
End Sub


Gruß Uwe
Anzeige
AW: Commandbutton finden
05.08.2024 12:54:38
Ulf
Hi Sandra,
Tippfehler



targetName = "Click_Prnt"


should be



targetName = "Click_Print"


hth
Ulf
AW: Commandbutton finden
05.08.2024 10:26:22
Alwin Weisangler
kleine Änderung in der MsgBox Ausgabe:


MsgBox "Es existiert ein Button mit dem Namen: " & oleBtn.Name & " im Tabellenblatt: " & ws.Name


Gruß Uwe
Anzeige
AW: Commandbutton finden
05.08.2024 10:44:06
Sandra
Danke an euch alle... ich werde die einzelnen Makros ausprobieren und mich melden, welches am besten funktioniert hat.

VG
Sandra
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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