Registriert seit: 06.03.2017
Version(en): 2007
18.04.2017, 09:13
(Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2017, 09:13 von M.Wichmann.)
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)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
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
Registriert seit: 29.09.2015
Version(en): 2030,5
Und hier:
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
End Sub
Registriert seit: 12.03.2016
Version(en): Excel 2003
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
Registriert seit: 06.03.2017
Version(en): 2007
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.
Registriert seit: 06.03.2017
Version(en): 2007
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.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 06.03.2017
Version(en): 2007
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.