Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nach Button drücken - deaktivieren

Nach Button drücken - deaktivieren
22.12.2005 09:54:44
Marco
Hallo zusammen,
ich habe ein Workbook mit ca. 200 Buttons. Wie kann ich komfortabel ein Makro erstellen, dass immer der Button, welcher gedrückt wurde anschliessend nicht mehr enabled ist ?!
Und wie kann ich dann im Umkehrschluss einen Makro machen, welches alle Buttons der Datei wieder enabled ?
Vielen lieben Dank
Grüsse
Marco

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

Betreff
Datum
Anwender
Anzeige
AW: Nach Button drücken - deaktivieren
22.12.2005 10:00:33
Hajo_Zi
Hallo Marco,
zu 1 schreibe doch den Code bei dem Makro mit rein.
zu 2 mache eine Schleife über alle CommandButton.


AW: Nach Button drücken - deaktivieren
22.12.2005 10:12:34
ede
hallo hajo,
kannst mal ein kleinen beispielcode geben?
danke
ede
AW: Nach Button drücken - deaktivieren
22.12.2005 10:14:27
Hajo_Zi
Hallo Ede,
Marco ist doch VBA Gut, da bekommt er es bestimmt hin und wird seine Lösung posten. Hoffen wir es mal.
Gruß Hajo
AW: Nach Button drücken - deaktivieren
22.12.2005 10:18:11
ede
hallo nochmal,
leider mache ich es immer für meine einzeln, wobei ich nicht so viele habe. daher würde mich die lösung über eine schleife interessieren.
gruss
Anzeige
AW: Nach Button drücken - deaktivieren
22.12.2005 10:31:44
Hajo_Zi
Hallo ede,
das stellen sich mehrere Fragen
1. Wo sind Sie Userform, Tabelle (für Userform ist ein Bispiel auf meiner HP das man anpassen kann)
2. falls Tabelle welche Symbolleiste (Formular lehne ich ab, für Steuerelemente in der Tabelle bin ich nicht der Fachmann)
Gruß Hajo
AW: Nach Button drücken - deaktivieren
22.12.2005 10:35:42
ede
hallo hajo,
auf einer userform, nenne sie immer in dieser Form "cmdName".
danke
AW: Nach Button drücken - deaktivieren
22.12.2005 10:45:15
Hajo_Zi
Hallo ede,
der Name ist Schalll und Rauch das wird über Typ festgestellt. Ich hatte cschon auf meine HP verwiesen mit dem Beispiel hier mal ein Code Auszug.

Sub Steuerelemente_auflisten1()
'* H. Ziplies                                     *
'* 24.08.03                                       *
'* erstellt von Hajo.Ziplies@web.de               *
'* <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a> *
'   auflisten aller Steuerelemente in der Userform
'   getrennt nach Typen
Dim ObCb As Object
Sheets.Add
ActiveSheet.Name = "Steuerelemente"
Cells(1, 1) = "Textbox"
Cells(1, 2) = "Listbox"
Cells(1, 3) = "Multipage"
Cells(1, 4) = "CommandButton"
Cells(1, 5) = "Label"
Cells(1, 6) = "Kontrollkästchen"
Cells(1, 7) = "OptionsButton"
Cells(1, 8) = "ToggleButton"
Cells(1, 9) = "Frame"
Cells(1, 10) = "ScrollBar"
Cells(1, 11) = "ScrollBar"
Cells(1, 12) = "Image"
Cells(1, 13) = "ComboBox"
Cells(1, 14) = "Rest"
For Each ObCb In Auftrag.Controls
Select Case TypeName(ObCb)
Case "TextBox"
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = ObCb.Name
Case "ListBox"
Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2) = ObCb.Name
Case "MultiPage"
Cells(Cells(Rows.Count, 3).End(xlUp).Row + 1, 3) = ObCb.Name
Case "CommandButton"
Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 4) = ObCb.Name
Case "Label"
Cells(Cells(Rows.Count, 5).End(xlUp).Row + 1, 5) = ObCb.Name
Case "CheckBox"
Cells(Cells(Rows.Count, 6).End(xlUp).Row + 1, 6) = ObCb.Name
Case "OptionButton"
Cells(Cells(Rows.Count, 7).End(xlUp).Row + 1, 7) = ObCb.Name
Case "ToggleButton"
Cells(Cells(Rows.Count, 8).End(xlUp).Row + 1, 8) = ObCb.Name
Case "Frame"
Cells(Cells(Rows.Count, 9).End(xlUp).Row + 1, 9) = ObCb.Name
Case "ScrollBar"
Cells(Cells(Rows.Count, 10).End(xlUp).Row + 1, 10) = ObCb.Name
Case "SpinButton"
Cells(Cells(Rows.Count, 11).End(xlUp).Row + 1, 11) = ObCb.Name
Case "Image"
Cells(Cells(Rows.Count, 12).End(xlUp).Row + 1, 12) = ObCb.Name
Case "ComboBox"
Cells(Cells(Rows.Count, 13).End(xlUp).Row + 1, 13) = ObCb.Name
Case Else
Cells(Cells(Rows.Count, 14).End(xlUp).Row + 1, 14) = ObCb.Name
Cells(Cells(Rows.Count, 15).End(xlUp).Row + 1, 15) = TypeName(ObCb)
End Select
Next ObCb
End Sub
Sub Steuerelemente_auflisten2()
'* H. Ziplies                                     *
'* 24.08.03                                       *
'* erstellt von Hajo.Ziplies@web.de               *
'* <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a> *
'   auflisten aller Steuerelemente, nicht getrennt nach Typen
'   Sortiert nach Typen
Dim ObCb As Object
For Each ObCb In Auftrag.Controls
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = ObCb.Name
Cells(Cells(Rows.Count, 2).End(xlUp).Row + 1, 2) = TypeName(ObCb)
Next ObCb
Range("A2").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("A:B").EntireColumn.AutoFit
Rows(1).Delete  ' erste Zeile löschen da in Zeile 2 begonnen
End Sub

Gruß Hajo
Anzeige
AW: Nach Button drücken - deaktivieren
22.12.2005 11:07:35
ede
hallo hajo,
danke erstmal für deinen code. werde ihn mal testen und für meine bedürfnisse anpassen.
danke und frohes fest
ede
AW: Nach Button drücken - deaktivieren
22.12.2005 10:26:23
Marco
VBA gut ist relativ...Da meine Lösung an ein Versionsproblem stösst...:-)
Grüsse
Marco
AW: Nach Button drücken - deaktivieren
22.12.2005 10:16:52
Marco
Hallo Hajo,
ich danke Dir für Deine Antwort...
Gibt es keine einfache Variante, so dass ich nicht ca. 200 Buttons "anfassen" muss.
Ich hatte einmal so versucht. Geht leider nicht, Fehlermeldung "Objekterstellung durch Active-X Komponenten nicht möglich" (Früher unter Excel 2000 ging es)
Die Buttons geben jeweils im Sheet RE (Variable für Sheets("REC") eine 1 in die Spalte D. Per Worksheet Change-Code wird dann das enablen bzw. disablen angestossen.
zu den Variablen
RE = Sheets("REC")
in Range Spalte "A" und k, wird aus einer Schleife gewonnen, steht jeweils
das Worksheet welches betroffen ist und in "B".. die Zeile in der die
Commandbutton in der Enabled-Funktion geänder werden sollen.
CommandButtonEnablen Worksheets(RE.Range("A" & k).Value), _
RE.Range("B" & k).Value, False
CommandButtonEnablen Worksheets(RE.Range("A" & k).Value), _
RE.Range("G" & k).Value, True
zu den Variablen
RE = Sheets("REC")
in Range Spalte "A" und k, wird aus einer Schleife gewonnen, steht jeweils
das Worksheet welches betroffen ist und in "B".. die Zeile in der die
Commandbutton in der Enabled-Funktion geänder werden sollen.
Grüsse

Sub CommandButtonEnablen(wks As Worksheet, lngRow As Long, blnVisible As
Boolean)
Dim objOLEObject As OLEObject
For Each objOLEObject In wks.OLEObjects
If objOLEObject.ProgId = "Forms.CommandButton.1" Then
If objOLEObject.TopLeftCell.Row = lngRow Then
objOLEObject.Object.Enabled = blnVisible
End If
End If
Next
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige