Sortiermacro bei Blattwechsel/schliessen
#1
Guten Morgen,

ich habe die in diesem Tread behandelte Datei erweitert um mehrere Sachen zu erweitern.

Jetzt habe ich 3 Blätter in der jeweils ein Sortiermacro auf Knopfdruck ausgeführt werden kann.
Und eine "Startseite" die jeweils das erste Datum abfragt und mir als Ampel darstellt. Das diese immer als erste beim öffnen angezeigt wird habe ich schon eingebaut.

Jetzt hätte ich eigentlich gerne noch, das das Sortiermacro unter 2 Bedingungen automatisch startet.

1. wenn man von einem Blatt ins andere wechselt
2. wenn man das Dokument schließt, oder gegebenenfalls beim öffnen

Um sicherzustellen das meine Startseite auch wirklich aktuell ist.


Edit: möglich wäre auch ein Einbau der Sortierfunktion in die "Neustartfunktion" (aber nur wenn die Funktion davon nicht negativ beeinflußt wird)
Antworten Top
#2
Hi,

(18.04.2017, 09:13)M.Wichmann schrieb: 1. wenn man von einem Blatt ins andere wechselt
2. wenn man das Dokument schließt, oder gegebenenfalls beim öffnen

es gibt da 4 verwendbare Ereignisse:
unter "DieseArbeitsmappe":
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   'sortiermarko aufrufen
End Sub

Private Sub Workbook_Open()
   dim i as long
   For i = 1 to worksheet.count
      'sortiermarko aufrufen
   next i
Worksheets("Überwachung").Select
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   dim i as long
   For i = 1 to worksheet.count
      'sortiermarko aufrufen
   next i
End Sub

und hinter jedem zu sortierenden Arbeitsblatt:
Code:
Private Sub Worksheet_Activate()
   'sortiermarko aufrufen
End Sub
Antworten Top
#3
Und hier:


Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
Hallo

ich schliesse mich Ralf an, er hat bereits eine Lösung benannt, werde aber als alter Praktiker etwas konkreter.
Ich würde bei Datei Öffnen und Überwachung Activate die Sortier Makros integrieren, das sollte ausreichen.

Nachteilig ist, das jedes Makro nichts sagende Namen hat wie "aktualisieren" oder "Makro2". Das halte ich für ungünstig, weil man so nicht ersehen kann zu welcher Tabelle dieses Makro gehört, und welche Funktion es hat!  Deshalb habe ich im Makro für Dateri Öffnen eine Empfehlung gegeben wie man die Makros neu benennen kann, denn ab 10-20 Makros verliert man sonst schnell die Übersicht welches Makro man für welchen Zweck geschrieben hat !!  In VBA Ordnung halten beim Namen vergeben erleichtet einem selbst die Übersicht über seine eigenen Makros zu behalten.  

Ist nur ein Tipp von mir ...  (langjaehrige Praxis)

mfg  Gast 123 

Code:
'Makro in: Workbook Open
Private Sub Workbook_Open()
Worksheets("Überwachung").Select
 
  Schaltfläche1_KlickenSieAuf   'Wartungs Makto
  aktualisieren                 'Messmittel
  Makro2                        'Prüfmittel

'   Wartung_sortieren     '= Schaltfläche1_KlickenSieAuf
'   Messmittel_sortieren  '= aktualisieren
'   Prüfmittel_sortieren  '= Makro2

'oder:  nach Kategorie (Thema)
'   Sortieren_Wartung     '= Schaltfläche1_KlickenSieAuf
'   Sortieren_Messmittel  '= aktualisieren
'   Sortieren_Prüfmittel  '= Makro2
End Sub


'Makro in: Tabelle Überwachung bei Activate
Private Sub Worksheet_Activate()
  Schaltfläche1_KlickenSieAuf   'Wartungs Makto
  aktualisieren                 'Messmittel
  Makro2                        'Prüfmittel
End Sub
Antworten Top
#5
Danke für die Antworten.

Das mit den Makronamen weiß ich. Werde mich bessern^^ Wurden halt per Aufnahme erstellt.

Hatte mich an den ersten Lösungsansätzen schon versucht und war gescheitert.
Hatte dann jetzt erst eínmal mir noch ein Button auf der Übersicht platziert und diesen per Aufnahme programmiert das alle 3 Tabellen sortiert werden. Ich denke mal diesen werde ich dann in den Schließvorgang integrieren.
Antworten Top
#6
Hallo,

habe es so gemacht wie beschrieben.
Neues Macro aufgenommen um alle 3 zu aktualisieren und diesen zum einen auf eine Schaltfläche in der Übersicht gelegt und zum zweiten in den Code gepackt damit er beim schließen der Datei zwangsläufig ausgeführt wird.

Zwei kleine fragen hätte ich im Zusammenhang mit dieser Datei aber noch.

1. Wir haben ab und zu das Problem, das der Code zum Neustarten des Intervalls nicht reagiert.(schreibe ja in J)
2. Ich benutze um die Fälligkeit darzustellen ja eine bedingte Formatierung.( Gelb= Termin ist aktuell, Rot= Fälligkeit in der Vergangenheit)
    Im Moment nutze ich dafür =HEUTE()  bzw =HEUTE()+1. Wie bekomme ich bei Heute wirklich nur das Datum? Die Tabelle zeigt mir ja zumindest ein paar Termine auch schon von morgen als Gelb an. Also scheint er ja mit Datum und Uhrzeit zu rechnen.
Antworten Top
#7
Hallöchen

zu 1.
Eventuell gab es vorher einen Fehler mit Abbruch des Makros, sodass die Events nicht wieder angeschalten wurden.

zu 2.
In den Zellen steht auch eine Uhrzeit. Wenn da Gestern Mittag ist, dann ist die Differenz zu Heute() nur ein halber Tag und kein ganzer.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Danke für die Antworten.

zu 1.  wir werden das mal beobachten wie sich die Tabelle verhält und ob man das nachvollziehen kann wann das nicht geht.

zu 2. habe ich glaube ich gelöst indem ich nicht +1 sondern +0,99999. Auf jeden Fall markiert er so nur noch die Daten die er auch markieren soll.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste