Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
560to564
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
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Steuerelement einem Macro zuweisen

Steuerelement einem Macro zuweisen
04.02.2005 18:03:06
PK
Hallo liebe Excelaner!
Ich habe in meiner Tabelle eine Schaltfläche, die ein Macro ausführt. Nun habe ich zusätzlich ein Umschaltbutton (Hand/Auto) mit eingefügt, welches folgende Aufgabe haben sollte:
Bei Stellung HAND nicht ausführen, d.h. ich kann mit meiner normalen Schaltfläche per Klick mein Macro ausführen.
Bei Stellung AUTO soll er ,bei Eingabe in bestimmen Zellen, das Macro der normalen Schaltfläche ausführen. Folgendes steht bei mir, funktioniert aber nicht.

Private Sub ToggleButton1_Click()
With ToggleButton1
Select Case .Value
Case False: .Caption = "Auto"
Case True: .Caption = "Hand"
End Select
End With
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("I13:I21"), Range("M13:M21")) Is Nothing Then Exit Sub
If ToggleButton2.Value = False Then
Call sortierengesamt
End If
End Sub

Im Anhang die Datei: DANKE für Antworten
https://www.herber.de/bbs/user/17475.zip

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Steuerelement einem Macro zuweisen
04.02.2005 18:44:27
Cardexperte
Hello, versuch mal das:
Sub ToggleButton1_Click()
With ToggleButton1
Select Case .Value
Case False: .Caption = "Auto"
Case True: .Caption = "Hand"
End Select
End With
If ToggleButton1 = False Then Range("ac10").Value = 1 Else Range("ac10").Value = ""
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("I13:I21"), Range("M13:M21")) Is Nothing And Range("ac10").Value = "" Then Exit Sub
Call sortierengesamt
End Sub

AW: Steuerelement einem Macro zuweisen
04.02.2005 18:48:07
Cardexperte
ach so ist mir noch was aufgefallen, die Zelle AC10 muss der Blattschutz bei Fromat Schutz rausgenommen werden, sonst Fehler.
Gruss WS
Anzeige
AW: Steuerelement einem Macro zuweisen
04.02.2005 19:07:45
Cardexperte
If Intersect(Target, Range("I13:I21")) Is Nothing Or Intersect(Target, Range("M13:M21")) Is Nothing And Range("ac10").Value = "" Then Exit Sub
diese Zeile auch noch Ändern
Gruss WS
AW: Steuerelement einem Macro zuweisen
PK
Hallo Cardeexperte!
Untenstehend wie es jetzt bei mir aussieht, so wie Du es geschrieben hast.
Ich bekomme dann einen LAufzeitfehler
Sub ToggleButton1_Click()
With ToggleButton1
Select Case .Value
Case False: .Caption = "Auto"
Case True: .Caption = "Hand"
End Select
End With
If ToggleButton1 = False Then Range("ac10").Value = 1 Else Range("ac10").Value = ""
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("I13:I21")) Is Nothing Or Intersect(Target, Range("M13:M21")) Is Nothing And Range("ac10").Value = "" Then Exit Sub
Call sortierengesamt
End Sub

Anzeige
Schon fast auf dem richtigen Wg
PK
Hallo Cardexperte!
Es wird jetzt automatisch das Macro übernommen und auch ausgeführt. Allerdings auf AUTO sowie auch auf Hand. Wenn ich hier 1 mal hin und her wechsle, kommt ein Laufzeitfehler.
Genommen habe ich folgendes;
Sub ToggleButton1_Click()
With ToggleButton1
Select Case .Value
Case False: .Caption = "Auto"
Case True: .Caption = "Hand"
End Select
End With
If ToggleButton1 = False Then Range("ac10").Value = 1 Else Range("ac10").Value = ""
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("I13:I21"), Range("M13:M21")) Is Nothing And Range("ac10").Value = "" Then Exit Sub
Call sortierengesamt
End Sub



Anzeige
AW: Steuerelement einem Macro zuweisen
Luc
Hallo PK,
schon in die von Cardexperte angehängte Datei geschaut?
Ich sehe gar nicht, was der ToggleButton1 machen soll in deiner sub. Wie erhält er denn die Werte false/true? Für mich fkt ein UMSCHALTbutton nach dem Flip-Flop-Prinzip:
togglebutton1.value = not togglebutton1.value - mit jedem Click wird so das Gegenteil des bisherigen Wertes eingestellt. Dann machen die Caption-Änderungsanweisungen doch erst Sinn!? Und dann müsste auch die 2.sub fkt.
Gruß Luc
AW: Steuerelement einem Macro zuweisen
PK
Hallo LUC!
Ich hab den Anhang schon eingefügt.
Beim Umschalten von Toogle von HAND auf AUTO oder umgekehrt gibts einen Laufzeitfehler.
Auf Stellung HAND sollte keine Aktion stattfinden. Bei Umschalten auf AUTO soll das Macro "sortierengesamt" dann ausgeführt werden, wenn eine Eingabe in I13:I21 oder M13;M21 stattfindet. Vielleicht hast Du die Lösung.
DANKE für Bearbeiten.
Ansonsten hier noch mal der Link zur Datei:
https://www.herber.de/bbs/user/17475.zip
Anzeige
AW: Steuerelement einem Macro zuweisen
Luc
Hallo PK,
ist ja gigantisch, mir aber'n bisschen viel. Werd mal über deinen Ansatz nachdenken. Wird aber heute nichts mehr.
Gruß Luc
AW: Steuerelement einem Macro zuweisen
05.02.2005 08:02:36
Cardexperte
Hello luc und PK,
also bei mir kommt kein Laufzeitfehler, wenn bei dir ja, dann hast du in Zelle ac den Schutz nicht rausgenommen, da kann er in die Zelle nichts reinschreiben!! Hatte ich aber geschrieben, hier deine Datei zurück, die Zelle ac kannst du weiß formatieren, dann erscheint die 1 nicht mehr, schönes Wochenende!
https://www.herber.de/bbs/user/17488.zip
Gruss WS
AW: Steuerelement einem Macro zuweisen
05.02.2005 08:29:37
Cardexperte
Hello ihr beiden,
noch was ist mir aufgefallen, denn die Begrenzung auf Zellen mittels interesect usw. ist doch Blödsinn weil ich ja durch den Blattschutz nur die gelben Zellen bearbeiten kann, also lautete die Zeile nur noch: If Range("ac10").Value = "" Then Exit Sub
Gruss WS
Anzeige
AW: Steuerelement einem Macro zuweisen
PK
Hallo LUC!
Es klappt, bis auf eine Sache. Auf Auto werden nur die Zellen I13:I21 berücksichtigt, M13:M21 sollten wenn möglich auch noch dazugehören.
BINGO
PK
Cardexperte, herzlichen DANK, Du bist der King!
AW: BINGO
05.02.2005 09:13:30
Cardexperte
hello na endlich, noch ein kleiner Hinweis, z.Z. blinkert es ja wenn das Makro ausgeführt wird, (Sortierengesamt) schreib mal da am Anfang rein :
Application.ScreenUpdating = False
und am Ende
Application.ScreenUpdating = True
Gruss Ws
Hinweis
PK
Hallo WS!
Habe versucht deinen Tip umzusetzen, bekomme da aber eine fehlermeldung. Nachfolgend das Macro, vielleicht kannst du es ja vervollständigen.
' sortierengesamt Makro
' Makro am 31.01.2005 von PK aufgezeichnet
'
'
ActiveSheet.Unprotect
Range("U13:Y76").Select
Selection.Sort Key1:=Range("X13"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=51
Range("U85:Y100").Select
Selection.Sort Key1:=Range("X85"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("C85:G100").Select
Selection.Sort Key1:=Range("E85"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=-54
Range("C13:G76").Select
Selection.Sort Key1:=Range("E13"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=-12
Range("J26:Q43").Select
Selection.Sort Key1:=Range("M26"), Order1:=xlDescending, Key2:=Range( _
"Q26"), Order2:=xlDescending, Key3:=Range("N26"), Order3:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom, DataOption1:=xlSortTextAsNumbers, DataOption2:=xlSortNormal _
, DataOption3:=xlSortNormal
Range("I13:J13").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub
Anzeige
AW: Steuerelement einem Macro zuweisen
05.02.2005 08:59:27
Cardexperte
Hello PK,
versteh ich nicht bei mir geht es auch für die Zellen m13 bis m21, wie gesagt es steht nur if Range(" usw. drin.
Gruss Ws
AW: Steuerelement einem Macro zuweisen
PK
Habs hinbekommen!
Ich weiß garnicht wie ich Dir noch danken soll!
Eine kleine Frage hätte ich noch
Die gelbmarkierten Zellen, da wo die Tips eingegebne werden sind 4 Zeilen auseinander.
Wie könnte man es so einstellen, das wenn ich im Bereich I13:M21 nur in den Bereich I13:I21 + M13:M21 mit Cursor oder Maus kommen kann? Die anderen Zellen in diesem Bereich einfach ignoriert?
AW: Steuerelement einem Macro zuweisen
05.02.2005 11:44:19
Cardexperte
Hello PK,
schau mal bei Blattschutz nach, da gibt es bei alle Benutzer dieses Arbeitsblattes doch solche Häkchen zu vergeben, nimm beim Blattschutz einfach das erste Häkchen raus bei gesperrte Zellen auswählen, dann ist bei Blattschutz nur noch die Zellen auswählbar, anklickbar wo kein Schutz da ist!
Gruss WS
Anzeige
Ws bitte melden
PK
Hallo Ws!
Es gibt doch noch Probleme!
Für den 1. Spieltag wunderbar, aber nur da.
Ich habe dann in alle weiteren Spieltage alles einkopiert. Schon der Toogle springt am 2. Spieltag nicht von HAND auf AUTO oder umgekehrt. Ich kann hier das "ausführen" des automatischen Macros nicht abstellen. Ich habe dir die Datei noch einmal als Beispiel angehängt. Schade, dachte doch, ich hätte es ganz geschafft
https://www.herber.de/bbs/user/17491.zip
AW: Ws bitte melden
05.02.2005 11:58:28
Cardexperte
Hello PK,
ist klar, dass das so ist, denn du hast die Makros nur im Blatt drin, gehe gerade Essen, aber ich schau mir das gleich an. Eigentlich müsste es gehen wenn, du das Blatt direkt kopierst!
Gruss WS
Anzeige
Alles OK
PK
Sorry Ws!
Habs doch wieder alleine hinbekommen.
Herzlichen DANK für Deine Zeit und Mühe.
Bis demnächst mal wieder!
PK
AW: Alles OK
05.02.2005 12:38:47
Cardexperte
Hello PK,
ist mir eben aufgefallen, also wenn du das Blatt kopierst zählt Excel die Buttons hoch, deshalb muss im 2. Blatt tooglebutton 2 stehen! Aber das hast du ja eben auch wohl gemerkt!
Gruss WS

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige