Sortierung von Daten soll Makro auslösen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Sortierung von Daten soll Makro auslösen
von: Silent_Warrior5
Geschrieben am: 16.09.2015 20:43:31

Hi Zusammen,
weiß jemand was für ein Event ich nutzen kann wenn ich einen Blattschutz in einer Arbeitsmappe habe und dort sollen Daten nicht nur gefiltert sondern auch sortiert werden. Nun möchte ich gerne das ich das Abfange wenn jemand sortieren will, den Blattschutz rausnehemn und dann wieder rein. Welches Event kann ich da nehmen? hab schon ein paar versucht, das Selection ist leider nachdem man die Fehlermeldung bekommen hat das das Blatt schreibgeschützt ist ;)
Danke & Gruß
Michi

Bild

Betrifft: Mit Calculate!
von: Sepp
Geschrieben am: 16.09.2015 20:49:55
Hallo Michi,
schreibe in irgendeine unbenutzte Zelle =JETZT(), dann kannst du das Calculate-Ereignis verwenden.

Gruß Sepp


Bild

Betrifft: AW: Mit Calculate!
von: Silent_Warrior5
Geschrieben am: 16.09.2015 21:50:40
Hi Sepp,
also irgendwie klappt das nicht. Er löst es nicht aus, auch wenn ich die Uhrzeit in einer Zelle drin habe. Habe es so versucht und mit Zellangabe:

Private Sub Worksheet_Calculate()
  If Not Intersect(Target, Range("P3")) Is Nothing Then
    MsgBox ("jetzt")
  End If
End Sub
Private Sub Worksheet_Calculate()
    MsgBox ("jetzt")
End Sub
Weis noch jemand nen Rat?
Danke & Gruß
Michi

Bild

Betrifft: AW: Mit Calculate!
von: Sepp
Geschrieben am: 16.09.2015 21:55:43
Hallo Michi,
beim Filtern und/oder Sortieren wird der Code ausgelöst, das wolltest du doch, oder?
Siehst du beim Calculate-ereignis einen Parameter "Target"? Ich nicht.
Ob Filtern und Sortieren erlaubt sind, kannst du doch beim Blattschutz festlegen.

Gruß Sepp


Bild

Betrifft: AW: Mit Calculate!
von: Silent_Warrior5
Geschrieben am: 16.09.2015 22:01:56
Hi,
eigentlich geht es nur um das sortieren, das filtern geht ja mit Blattschutz. und das was du meinst was man freigeben kann ist nicht das Sortieren in einer Tabelle mit Daten sondern nur über Daten sortieren oben im Menü (hab ich nachgelesen):
"
Das Sortieren bei eingeschalteten Blattschutz (in Excel 2010) ist nur über den Menüpunkt DATEN\Sortieren möglich und dann auch nur für den Tabellenbereich, der keine gesperrten Zellen hat. Das Sortieren über die Funktion im Autofilter funktioniert nicht.
Natürlich muss auch bei der Vergabe des Blattschutzes das Häkchen für die Sortierfunktion gesetzt werden.
"
WIe meinste das mit Target?`DU meinst das Target gar nicht da reingehört sondern nur bei Selection or Change?
Danke & Gruß
Michi

Bild

Betrifft: AW: Mit Calculate!
von: matthias
Geschrieben am: 17.09.2015 10:06:23
Hallo Michi,
er meint dass in der Klammer kein Target vorkommt, daher nicht übergeben wird und somit immer Nothing ist. Das Event gilt nämlich für das komplette Tabellenblatt.
Private Sub Worksheet_Calculate()
Wie andere bereits geschrieben haben, wirst du mit den Schaltflächen des Autofilters nichts auslösen können. Was du aber möglich ist, wäre deine Sortierung über ein Makro auszuführen. Als Auslöser dazu wären Button oder Doppelklick-Event in deine zu sortierende Spalte denkbar.
Für letzteres ein kurzes Beispiel:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
If Not Intersect(Target, Range("A:G")) Is Nothing Then
    If ActiveSheet.AutoFilterMode Then
        ActiveSheet.Unprotect "deinPW"
                ActiveSheet.AutoFilter.Sort.SortFields.Clear
                ActiveSheet.AutoFilter.Sort.SortFields.Add Key:= _
                Columns(Target.Column), SortOn:=xlSortOnValues, _
                Order:=xlDescending, DataOption:=xlSortNormal
        With ActiveSheet.AutoFilter.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Target.Offset(1, 0).Select
        ActiveSheet.Protect "deinPW"
    End If
End If
End Sub
Wie genau Sepp abfragen will, wann eine Sortierung in welcher Spalte vorgenommen werden soll über das Calculate-Ereignis, ist mir nicht ersichtlich.
lg Matthias

Bild

Betrifft: AW: Sortierung von Daten soll Makro auslösen
von: EtoPHG
Geschrieben am: 17.09.2015 09:06:39
Hallo Michi,
Du solltest dringend deine Levelangaben überdenken!
Sepp hat nichts von einer Msgbox "jetzt" geschrieben. Was sollte dieser Code den deiner Meinung nach auslösen?
Die Verwendung von Target (als Objektvariable) ist doch von Excel in den Ereignissen in Form von Parametern vorgegeben und _Calculate hat nun mal keine Parameter!
Die Ereignisse für die verschiedenen Objektklassen sind der Excelhilfe gut beschrieben und auch für mehr oder weniger erfahrene Anwender zum Lesen empfohlen. Zudem gehört die Option Explicit in jedes Codemodul!
Deine Beschreibungen sind z.T. sehr schwer interpretierbar und eine Beispielmappe würde für die Helfer mehr bringen, als das Beschreiben von (unsinnigen) Codeversuchen!
Sepp hat dir eine volatile Formel für eine Zelle vorgeschlagen, die bei jeder Inhaltsänderung des Blatts ein Neuberechnung auslöst, die mit dem _Calculate Ereignis abgefangen werden kann. Das Drücken eines Menübuttons wie 'Sortieren' löst kein spezifisches Ereignis aus, sondern ändert ggf. Dateninhalte, die dann u.U. eine Neuberechnung auslösen.
This are just my 5cents...
Gruess Hansueli
P.S. Auch Sancho Panza war so etwas wie ein Stiller Krieger und kämpfte auch gegen Windmühlen ;-)

Bild

Betrifft: AW: Sortierung von Daten soll Makro auslösen
von: Silent_Warrior5
Geschrieben am: 17.09.2015 18:11:41
Hi,
also 1. hab ich den code nur schnell zusammen kopiert von ner anderen Tabelle und da hatte ich ein Selection change Ereignis und daher stammt das Target und die msgbox ist dazu da um zu zeigen ob er das Ereignis auslöst? Zum Testen? Ja das hab ich mir bereits gedacht das der Code von Sepp nicht geht. Hier ist eine Beispielmappe. Hmm ich hab einfach irgendwas bei Rang geklickt. ist das hier etwa wichtig?
Und ein Code zum Sortieren kann ich auch selber schreiben, das Problem es gibt so viele Möglichkeiten das man das der Aufwand zu groß wäre. (z.b. Filtern nach Farbe usw.)
https://www.herber.de/bbs/user/100250.xlsx
PS: Wieso machste dich über meinen Nicknamen lustig?
Danke & Gruß
Michi

Bild

Betrifft: AW: Fata Morgana
von: Gerd L
Geschrieben am: 17.09.2015 18:28:10
....bereits gedacht das der Code von Sepp nicht geht
Hi,
Code von Sepp funktioniert zu 99%, also immer. Dir hat er aber nur eine Formel geschrieben, die du offenbar mit dem Calculate-Ereignis nicht auswerten kannst.
Frohes Schaffen
Gerd

Bild

Betrifft: Deswegen ihr nie Profis.
von: Silent_Warrior5
Geschrieben am: 17.09.2015 19:19:38
Hi Gerd, danke für deinen sehr hilfreichen und Informativen Beitrag. Man löst ja durch das Sortieren kein Calc Ereignis aus, also wird er auch nicht aktiviert und somit auch die Msgbox nicht angezeigt. Ich finde es ja immer interessant wie sogenannte Profis hier "meckern" aber selber keinen Beitrag dazu leisten um das Problem zu lösen. Weiste warum du und Hansueli nie so ein Profi sein wirst wie Nepumuk? Weil er nicht von oben herab schaut und sinnlose Antworten wie ihr schreibt. Ne ihr lasst euch über
meinen "Rang" aus. Wenn jemand neu bei VBA ist dann weis man eben noch nicht so viel. Nehmt euch ma nen Beispiel an Nepumuk ich hab so viele Beiträge von ihm gelesen und die haben geholfen und da stand nie ein abwertender Kommentar drin!
So das sind meine 50Cent für euch.
Gruß

Bild

Betrifft: Wenn jemand neu bei VBA ist -Levelangabe?
von: robert
Geschrieben am: 17.09.2015 19:27:44
kein weiterer Text.....

Bild

Betrifft: AW: Wenn jemand neu bei VBA ist -Levelangabe?
von: Silent_Warrior5
Geschrieben am: 17.09.2015 19:40:29
Hi Robert,
vielleicht solltest du nochmal in die Schule gehen, da lernt man lesen? Was habe ich denn in einem vorherigen Beitrag geschrieben zur Levelangabe? Ja genau kein weiterer Text, spart euch doch euren "dummen" Kommentare wenn ihr eh nicht helfen wollt.
Gruß

Bild

Betrifft: Du kapierst es einfach nicht..
von: robert
Geschrieben am: 17.09.2015 20:04:32
Hi,
Du gibst in deinem Beitrag Level: Excel-gut, VBA-gut an-
also - wer kann da nicht lesen was er angibt ?
Die Levelangabe hat ja einen Sinn.
Und dann der Satz: Wenn jemand neu bei VBA ist......
Also was jetzt? VBA bescheiden oder VBA gut?
Verstanden?
Und-Kommentare verbieten-geht nicht :-))
Gruß

Bild

Betrifft: AW: Du kapierst es einfach nicht..
von: Silent_Warrior5
Geschrieben am: 17.09.2015 20:27:46
Hi,
dann nenn mir ma den Sinn der Levelangabe? Es gibt ja hier kein Klassensystem wo schwierigkeiten einer Frage in eine Klasse zugeordnet werden und dann nur Leute ab Level "gut" oder so Antworten können oder? Also jemand der hier eine Frage stellt kann sonst wie gut sein, was nützt diese Aussage denn vorallem ist "gut" ein weitläufger Begriff. Definiere mal gut? So und da es dieses System hier nicht gibt ist es total egal was da drin steht, weil auch Leute fragen haben die schon fortgeschritten sind oder? Also kann ich da auch als Level "so lala" schreiben, gibt es aber leider nicht.
Nun verstanden?
Gruß

Bild

Betrifft: Zur Level-Angabe:
von: Luc:-?
Geschrieben am: 18.09.2015 15:29:08
Die Level-Angabe gibt dem Antwortenden einen Hinweis auf den Kenntnisstand des Fragestellers, ergo erleichtert ihm die Arbeit:
Ist das Level niedrig, muss er mehr erklären, ist es hingg höher oder gar hoch, muss er ggf nur Tips bzw Denkanstöße geben.
So einfach ist das - in der Theorie! In der Praxis denkt sich so mancher Frager nichts oder das Falsche hierzu, weil er das Lesen der Hinweise hierzu (FORUM & SERVICES) nicht für nötig hielt. Das ist dann aber seine Sache.
Ansonsten kann ich mich meinen Vorrednern anschließen, S-W,
besonders H'ue's letztstehendem Beitrag.
Zum Problem:
Wenn jede Aktion auf einem geschützten Blatt (auch das Sortieren!) nur per VBA erfolgen bzw erlaubt sein würde, könnte man das auch durch automatisches Setzen des Schutzes beim Öffnen der Datei regeln. Dabei kann nämlich der SchutzParameter UserInterfaceOnly:=True gesetzt wdn, der Nutzer­Aktionen verbietet, Programm­Aktionen aber erlaubt.
Gruß, Luc :-?

Besser informiert mit …

Bild

Betrifft: AW: Zur Level-Angabe:
von: Silent_Warrior5
Geschrieben am: 18.09.2015 19:24:19
Hi,
hatte ja geschrieben das ich es mit Excel Board Mitteln machen will weil ein Sortierungsmakro zu bauen ist mir zu umständlich dafür wo ich es brauche. Es ist nur für eine Temp Liste die später durch was besseres ersetzt wird. Da ich also das sortieren nicht nur per Makro machen will, kann ich die Idee leider nicht nehmen. Trotzdem danke für den Denkanstoß. Naja netter Text aber Luc jeder hat ne andere Definition von "gut" und den anderen Begriffen.
Gruß

Bild

Betrifft: Na, dann! ;-) Definition von 'Gut'
von: Luc:-?
Geschrieben am: 18.09.2015 22:18:58
Ja, sicher, S-W,
das sehen wir auch immer wieder. Wer fragen muss, geht aber davon aus, dass andere mehr wissen könnten, während viele Antworter davon ausgehen, dass sie nicht alles wissen. Folglich könnte gut irgendwo in der Mitte zwischen keine Ahnung und Experte liegen. Gemeinhin wird hier davon ausgegangen. Zumindest sollten alle sog VBA-Basics bekannt sein… ;-)
Luc :-?

Bild

Betrifft: AW: Pah! Testen!
von: Gerd L
Geschrieben am: 17.09.2015 19:40:50
Hallo Michi,
dass du meine Excel-Kenntnisse nicht beurteilen kannst, hatten wir schon in einem anderen Thread. Ich habe hier lediglich deine falsche Behauptung über vermeintlichen Code von Sepp korrigiert. Wenn du dies nicht abkannst - dein Problem.
Zur Sache mit dem Sortieren. Lass' bitte mal die erste Prozedur in einer leere Datei laufen, nachdem du die zweite ebenfalls ins Blattmodul geschrieben hast u. sortiere A1:A3 manuell um.

Sub tt()
Cells(1, 1) = 3
Cells(2, 1) = 2
Cells(3, 1) = 1
Cells(10, 5).Formula = "=NOW()"
End Sub

Private Sub Worksheet_Calculate()
    MsgBox Cells(10, 5).Text
End Sub
Weiterhin gutes Gelingen
Gerd

Bild

Betrifft: AW: Pah! Testen!
von: Silent_Warrior5
Geschrieben am: 17.09.2015 19:48:43
Hi Gerd,
du kannst ebenfalls nicht lesen oder? Es geht nicht um die Kenntnisse, es geht drum wie du mit den Menschen hier umgehst. Außerdem hatte ich dich damals gebeten du sollst auf meine Post's nicht mehr antworten. Entweder biste vergesslich oder machst es extra?
Super Code. Der auch nur klappt wenn kein Blattschutz drin ist. Und um was geht es mir? Ja richtig wenn einer drin ist?
Gruß
Michi

Bild

Betrifft: AW: Ja, dann ...
von: Gerd L
Geschrieben am: 17.09.2015 20:03:50
Super Code. Der auch nur klappt wenn kein Blattschutz drin ist.
... bin ich aber beruhigt, dass dein Excel mit Sortieren in Verbindung mit einer volatilen Formel ebenfalls das Calculate-Event auslöst. Hätten wir schon wieder eine, wenn auch nachträglich umgebogene, fehlerhafte Interpretation ausgeräumt.
Frohes Schaffen
P.S. Deiner Bitte, auf deine Beiträge nicht zu reagieren, werde ich überwiegend entsprechen.
Nur überwiegend, weil dies ein öffentliches Forum ist (Stichwort: Marktplatz). Ansonten mache ich es "extra".
Gerd

Bild

Betrifft: AW: Ja, dann ...
von: Silent_Warrior5
Geschrieben am: 17.09.2015 20:14:58
Hi,
wieder so nen super Spruch. Hast du es mal selber getestet? Dann würdeste merken das ohne Blattschutz es klappt, aber sobald man einen drin hat kommt die Fehlermeldung "Bla bla schreibgeschütztem Blatt" und die die Msgbox mit der aktuellen Uhrzeit wird nicht angezeigt !!!!!!! Teste es doch selber. Man bei so Leuten wie dir kann man sich nur aufregen.
Gruß

Bild

Betrifft: AW: Ja, dann ...
von: EtoPHG
Geschrieben am: 18.09.2015 09:07:11
Michi,
Bitte zuerst lesen, dann denken, dann schreiben!
Blattschutz: Siehe Excel-Hilfe. Um Dich von der Mühsal des Lesens und Verstehens ein bisschen zu entlasten: Lies und Versteh den Hinweis bei 'Sortieren' im 'Punkt 6', Abschnitt 'Schützen von Arbeitsblattelementen'.
Steht sonst noch irgendwo, dass man Zellwerte mit VBA verändern kann, wenn der Blattschutz aktiv ist?
Nein! Weder Benutzer noch VBA können in geschützten Zellen (Eigenschaft: .Locked) bei aktiviertem Blattschutz Werte ändern, hingegen werden Formelergebnisse auch in solchen Zellen richtig angezeigt. Nun kann selbstverständlich auch das Sortieren von Daten eine Neuberechnung auslösen, sofern Formeln sich auf Zellen im Sortierbereich beziehen und dazu sind auch keine volatilen Formeln sonst wo im Blatt erforderlich! Deine Beispielmappe, bei der du monierst, dass nicht Sortiert werden kann, spiegelt das Missverhältnis von deinem Verständnis (Blattschutz/Zellschutz/Deinem Problem) und von allgemeinen Kenntnissen von Excel-Standard-Verhalten auf. Wie zum Teufel soll den ein Bereich, bei aktiviertem Blattschutz, sortiert werden können, wenn alle Zellen in diesem im gesperrt sind? Schliesslich verändert das Sortieren Zellinhalte! Ist der Sortierbereich nicht gesperrt (das Blatt aber schon), kann ohne Probleme sortiert werden!
Du darfst Nepumuk zu Recht über den Klee loben, aber ich unterstelle Dir, dass Du seine Codes im Schnitt nicht mal zu 20% verstehst. Zwischen Verstehen und 'Copy/Paste and Use' klafft bei Dir eine Riesenlücke! Das Forum ist eine Hilfe zur Selbsthilfe. Du vermittelst den Eindruck, dass du pfannenfertige Lösungen suchst, die dich von weiterem Nachdenken entlasten.
Just another 2 Cents from my side. 50 Cents would be far too much!
Gruess Hansueli

Bild

Betrifft: AW: Ja, dann ...
von: Silent_Warrior5
Geschrieben am: 19.09.2015 11:57:11
Hi, was erklärst du mir denn jetzt den Blattschutz? Du schnallst es einfach nicht oder? Ich habe gefragt wie man das lösen kann und du laberst mich voll was Blattschutz bedeutet. Ein anderer hat mir ne Lösung geben können was du ja nicht hin bekommen hast. Wo is das denn ein super code der die Lösung nun ist? Da ist nix mit API und gar nix drinne. Also wo such ich fertige Lösungen? Der andere hat einfach nur einen Vorschlag gemacht wie man das lösen kann und das reicht.
ALso nochmal für dich zum Mitdenken:
Wenn du einfach nur dumme Kommentare schreiben willst dann such dir andere Beiträge (ich hab schon genug dumme Kommis bei andern hier gelesen die du abgelassen hast, kann dir gerne ma ne Liste geben wo sie alle drauf stehen) und wenn du wirklich helfen willst dann mach das mal als Profi und tue nicht ständig irgendwelche Ego Sachen hier rein machen. Ein Profi würde NIEMALS dumme Sprüche machen (z.b. wie du dich über meinen Nickname lustig gemacht hast) sondern würde sachlich helfen und nicht wie bereits gesagt "von oben herab" schauen!
So und nun tue mir den gefallen beantworte meine Beiträge nicht mehr. Das haben schon genug andere zu dir gesagt.
Gruß

Bild

Betrifft: AW: Sortierung von Daten soll Makro auslösen
von: Daniel
Geschrieben am: 17.09.2015 20:36:56
Hi
keines!
was du vorhast, kann so nicht funktionieren.
du bräuchtest ja ein Event, das ausgelöst wird wenn der Anwender einen Menübefehl anklickt und das gibt es nicht (zumindst nicht meinen Kenntnistand nach für Excel 2010).
Change- und Calculate starten immer nach einer Aktion und und du kannst dort nicht nachträglich feststellen, welche Aktion sie ausgelöst hat.
Du kannst aber in den Optionen beim Aktivieren des Blattschutzes doch angeben, dass das Sortieren trotzdem erlaubt ist, reicht das für deine Zwecke nicht?
ansonsten musst du für Sortieren bei geschützem Blatt ein kleines Makro schreiben:

Sub SortierenTrotzBlattschutz()
ActiveSheet.Unprotect "Dein Passwort"
Application.Dialogs(xlDialogSort).Show
ActiveSheet.Protect "Dein Passwort"
End Sub

und dieses dann einem Button zuweisen.
Gruß Daniel

Bild

Betrifft: AW: Sortierung von Daten soll Makro auslösen
von: Silent_Warrior5
Geschrieben am: 17.09.2015 20:54:04
Hi Daniel,
danke das du dich mit dem Thema beschäftigst. Hmm na endlich mal einer der mir ne brauchbare Lösung geben kann. Wenn man dem Makro vorher sagt das er ne Zelle anklicken soll die innerhalb der zu sortierenden Tabelle ist dann läuft das ganz gut. Ja leider kann man hier kein Event abfangen, wie bei Pivot z.b. da gibt es ja welche die man nehmen kann.
Danke Thema gelöst. Das gute ist man kann auch nach Farben usw sortieren und muss auf nix verzichten.
Gruß
Michi

Bild

Betrifft: AW: Sortierung von Daten soll Makro auslösen
von: EtoPHG
Geschrieben am: 18.09.2015 09:21:27
Hallo Michi,
Zitat:... und muss auf nix verzichten.
Denkste! Damit verzichtest du auf einen 'effektiven' Blattschutz.
Der Mechanismus kann mit einem einfachen Tastendruck (rate welcher!) letzteren aushebeln!
Gruess Hansueli

Bild

Betrifft: AW: Sortierung von Daten soll Makro auslösen
von: Silent_Warrior5
Geschrieben am: 18.09.2015 19:19:55
Hi,
na mit ESC aber das will ich sehen wie du es schaffst innerhalb von ein paar Millisekunden und dann zum richtigen Zeitpunkt die ESC Taste drücken um damit zu verhindern das der Blattschutz wieder rein kommt?Halte ich von dir für eine sehr gewagte aussage.
Du kannst mir gerne das Gegenteil beweisen.
Gruß
Michi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Sortierung von Daten soll Makro auslösen"