30.04.2019, 11:21 (Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2019, 11:24 von König Ludwig.)
Hallo zusammen,
ich bin gerade dabei, ein kleines "Innenarchitekturtool" zu basteln und ja ich weiß, es gibt sicherlich besseres... Aber es muß wie immer bei den Vorgesetzten schnell gehen :19:
Bei der angehängten Datei habe ich das Problem, daß eine Prozedur nicht gestartet wird. Im Moment ist es so, daß das Makro "Abzug" startet, weil ich es mit "Gewalt" dazu zwinge. Mein Ziel ist aber, daß ich rechts bei den OptionButtons etwas auswähle und dann die entsprechende Prozedur startet. Mein Versuch klappt so bis jetzt nicht. Um zu testen, was passieren soll, bitte einfach mind. vier Zellen markieren und dann sollte die ausgewählte Prozedur starten. Also im Prinzip wird das immer eine Bezeichnung und eine andere Farbe sein. Für Eure Hilfe im voraus besten Dank und einen schönen Feiertag.
warum Optionbutton ? nimm doch CommandButton ... damit startest du gleich die Sub.
Du markierst den Bereich und klickst den Button, den du haben willst. Einfacher geht's doch nicht. Und wenn du geschickt mit Parameterübergaben arbeitest, brauchst du eventuell nur eine Sub, um alles anzuzeigen und zu formatieren.
ich dachte auch erst an den CommandButton, aber ich möchte sehr viele und verschiedene Objekte zeichnen. Daher würde ich mir so den Extraklick auf den CommandButton sparen, das war mein Gedanke. So könnte ich z.B. 40 Abzüge hintereinander zeichnen, dann Tische, dann Schränke usw.
ANSTATT den OptionButtons einfach einen CommandButton. Du markierst die Zellen und klickst dann den betreffenden Button ... mehr nicht ... keine OptionButtons.
Statt den CommandButtons kannst du auch Shapes nehmen, denen du ein Makro zuordnest, wenn die dir besser gefallen.
jetzt ist es so, daß ich z.B. ein Feld bestehend aus 8 Spalten und 4 Zeilen mit der Maus markiere. Dann soll mir Excel diesen Bereich einfärben und beschriften, mit einer Variante geht es jetzt, aber eben nur mit dem "Abzug" Ich möchte haben, daß ich bei den OptionButtons etwas auswähle, meinetwegen den "Abzug", dann wird die markierte Fläche blau. Wähle ich aber z.B. einen Schrank bei den Optionen, dann wird die Fläche gelb.
Im Prinzip soll diese Ereignisprozedur den gewählten OptionButton auswerten und dann zur richtigen Prozedur springen:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim Zeilen As Integer Dim Spalten As Integer Dim Breite As Double Dim strBreite As String Dim Höhe As Double Dim strHöhe As String Dim Fläche As Double Dim strFläche As String Zeilen = Selection.Rows.Count Spalten = Selection.Columns.Count Breite = 0.25 * Spalten strBreite = Breite & " m" Höhe = 0.25 * Zeilen strHöhe = Höhe & " m" Fläche = Breite * Höhe strFläche = Fläche & " m²" If Fläche < 0.25 Then Exit Sub Abzug ' Hier zwinge ich ihn, die Prozedur "Abzug" aufzurufen. If optAbzug = True Then Abzug <- Wie muß dieser Teil aussehen, damit die Ereignisprozedur den richtigen Sprung macht? End Sub
du bist ein klein wenig beratungsresistent ... kann das sein ?
Das wäre mal mein Vorschlag ... wird dir vermutlich nicht gefallen ... sind keine OptionButtons dabei :16: ... kannst ja mal sehen, was du draus machen kannst.:17:
erst mal vielen Dank für Deine Mühe. Das hat aber alles mit beratungsresistent nichts zu tun, auch bin ich kein OptionButton-Fetischist.
Es geht mir um folgendes: Ich will uns den Extra-Klick einfach ersparen. Wenn man nur einen Abzug zu zeichnen hat, dann mag das so ok sein. Aber hier liegt die Sache anders. Wir wollen erste Rohentwürfe für ein neues großes Labor machen. Wir sind keine Innenarchitekten, sollen aber erste Vorschläge machen, das wird vier Personen im Wesentlichen betreffen. Wenn wir über 100 Einzelposten einzeichnen möchten, ist es leider ein unnötig großer Aufwand, wenn ich jedes Mal einen Button anklicken muß, vor allem deshalb, weil jeder von uns mehrere Entwürfe machen wird - neben der normalen alltäglichen Arbeit... Deshalb war mein Wunsch, daß ich irgendwie einstelle, daß nur Abzüge gezeichnet werden, 40 Stück. Dann schalte ich um auf Schränke und mache 40 Stück usw. Ist mein Wunsch damit besser nachvollziehbar geworden?
ich hätte einen alternativen Vorschlag, bei dem Formularsteuerelement-Optionsfelder verwendet werden. Die Beschriftung entspricht ebenfalls den Objekten = Makros.
PrivateSub Workbook_SheetSelectionChange(ByVal Sh AsObject, ByVal Target As Range) Dim oOpt As OptionButton Dim strObjekt AsString
If Target.Cells.Count > 3Then ForEach oOpt In Sh.OptionButtons strObjekt = strObjekt & Left(oOpt.Caption, -(Len(oOpt.Caption) * (oOpt.Value = 1))) Next If Len(strObjekt) Then Application.Run strObjekt EndIf EndSub