Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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
Inhaltsverzeichnis

Makro das beim verschieben von Tabellen startet

Makro das beim verschieben von Tabellen startet
18.05.2016 22:57:28
Tabellen
Hallo, ich bin neu hier und hoffe auf eure Hilfe.
Ich versuche ein Makro zu erstellen, das automatisch starten soll sobald ein Tabellenblatt verschoben wird. Leider hat VBA kein Event, das das direkt auslöst. Nun habe ich probiert in die Tabellen, die dieses "Feature" haben sollen, ein Private Sub Worksheet_Activate zu schreiben, das erstmal die Position (Index) der Tabelle als Variable speichert und ein Weiteres Private Sub Worksheet_Calculate als zweites Makro , das checkt ob die "Neue Position" gleich der alten ist und falls nicht, eine Nachricht aufspuckt mit " Tabelle x hat sich verschoben". Dazu muss aber noch in eine beliebige Zelle eine hoch volatile Formel wie zb "=Jetzt()" geschrieben werden.
So weit so gut... Das Problem hierbei, die Datei ist dafür gedacht bearbeitet zu werden und kann unter Umständen viele Reiter haben, was dazu führt, dass bei jedem Eintrag in eine Zelle , sich die Makros zwei beschriebenen Makros in JEDEM Blatt in dem es sich befindet, aktiviert wird...
Gibt es vielleicht eine andere Lösung?
Ich weiss leider nicht wie ich hier eine Datei hochladen kann.. wenn mir das einer noch erklärt, lade ich natürlich gerne die Datei hoch.
Ich bin sehr dankbar für jeden Tipp, sitze schon seit ein paar Tagen daran...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro das beim verschieben von Tabellen startet
18.05.2016 23:12:57
Tabellen
Hallo,
das Hochladen von Dateien ist doch unter "Zum File Upload" erklärt.
Die dort benannten Beschränkungen beachten.
Datei auswählen - Datei zum Server - den generierten Link kopieren und im Beitrag einstellen.
Zur Lösung deines Problems kann ich wohl eher nichts beitragen.
Gruß Werner

AW: Makro das beim verschieben von Tabellen startet
19.05.2016 08:43:01
Tabellen
Hi
Ich denke die Kernfrage ist, was du mit der Aktion bezwecken willst. Warum braucht es diese Meldung (was ist das Problem wenn ein Blatt verschoben wird)? Was ist zu machen, wenn ein Blatt verschoben wurde?
Wenn du die Mappe permanent überwachen willst, dann kommst du wohl nicht darum herum die Prüfung immer und immer wieder durchzuführen. Ob dies im Rahmen eines Caluculate, Workbook Open oder Close etc. geschehen soll, kann ich aufgrund der vorhandenen Informationen nicht beurteilen.
Generell würde ich die Katze am Schwanz packen und das Vorhaben noch einmal grundlegend hinterfragen. Ist es richtig so viele Datenblätter anzulegen (wäre eine Datenbankstruktur nicht sinnvoller)? Könnte man das Verschieben der Blätter unterbinden (evtl. nur per Makro zulassen)?
In meinen Augen handelt es sich bei der Überwachung um eine "Bastelei", die ich mir nicht antun würde.
cu
Chris

Anzeige
AW: Makro das beim verschieben von Tabellen startet
19.05.2016 09:30:49
Tabellen
Vielen Dank für die Antwort!
https://www.herber.de/bbs/user/105650.xlsm
Das ist die Datei mit der ich Arbeite. Sinn der ganzen Sache ist, ich habe insgesamt 16 Stationen, die jeweils einen Namen drunter geschrieben haben (die "test1,test2" etc.) In den entsprechenden Reitern werden sachen bearbeitet und ausgerechnet (die hier für das Makro irrelevant sind). Am ende Soll auf dem Ersten reiter eigentlich nur eine Übersicht geboten werden, welche Prozesse (test1 test2 etc) in welcher Reihenfolge stattfinden. Zudem sind die Reiter der Prozesse farblich passend zur Station gekennzeichnet ( Die Farbe der Stationen ist Fix). Wenn ich jetzt merke, dass ein Prozess vergessen wurde, kann ich einfach ein Reiter hinzufügen und bearbeiten und dann in die Richtige Position verschieben und das Übersichtsblatt aktualisiert sich automatisch (Sowohl der Wert,also testx etc., als auch die Farbe). Was Eben nun geschehen soll, ist dass die aktualisierung der Farben ausgelöst werden soll, sobald sich einer der test- Reiter verschoben hat...
Hoffe es ist einigermaßen Verständ´lich.
Vielen Dank :-)
VG

Anzeige
AW: Makro das beim verschieben von Tabellen startet
19.05.2016 11:23:03
Tabellen
Hi
OK, ich verstehe jetzt etwas besser, worum es eigentlich geht. Die zündende Idee habe ich auch (noch) nicht, darum einfach mal ein paar Gedanken.
Die Zuordnung auf Tabelle1 könnte ja eigentlich unabhängig von der Blattreihenfolge geschehen. Die Blattreihenfolge könnte auch 1-n durchnummeriert sein und die Zuordnung auf Tabelle1 dennoch durchmischt.
Wenn ich richtig verstehe muss vor allem verhindert werden, dass eine Zuordnung stattfindet ohne Blatt resp. umgekehrt. Diese Plausibilitätskontrolle könntest du im Worksheet_Activate von Tabelle1 platzieren.
Generell scheint es mir nicht nötig, den Ist-Zustand bezüglich Blätter und Reihenfolge auf einem separaten Tabellenblatt festzuhalten, da der Ist-Zustand bereits in Tabelle1 vorhanden ist.
N.b. die Strukturen sind nicht unbedingt VBA-freundlich d.h. die Zuordnung in Tabelle1 wäre einfacher, wenn du in einer Tabellenstruktur bleibst anstelle von "Blöcken". Die "Spielerei" (Aussenbetrachtung) mit den Farben ist auch nicht unbedingt hilfreich.
cu
Chris

Anzeige
AW: Makro das beim verschieben von Tabellen startet
19.05.2016 09:33:21
Tabellen
Achja ich habe vergessen aus der Datei die Unnötigen Makros rauszulöschen, eines wird sich öffnen und sagen dass ein anderes nicht auffindbar ist, bitte einfach ignorieren oder rauslöschen.

AW: Makro das beim verschieben von Tabellen startet
19.05.2016 11:19:44
Tabellen
Hallo,
du hast die Antwort doch hier schon erhalten, bei Excel gut - VBA gut sollte man sich wenigstens die Antworten in anderen Foren durchlesen, mit dem Calculate-Event und volatiler Jetzt()-Formel läuft das wie geschnitten Brot....
Gruß, Mullit

AW: Makro das beim verschieben von Tabellen startet
19.05.2016 12:27:53
Tabellen
Hallo Mullit,
ich habe diesen Beitrag in deinem Link erstellt, falls du es genau wissen möchtest...
Ich habe auch sehr viel im Internet gesucht ehe ich diese Frage hier überhaupt gepostet habe. Angesichts der deadline morgen, blieb mir nichts anderes übrig, als sie hier ebenfalls zu stellen.
Das Problem hierbei hätte ich näher erläutern müssen, mein Fehler.. Durch die ständige Aktualisierung der Formeln bei und aktivieren dieses Makros, das in deinem Link gezeigt wird, auf jedem der (unter Umständen) vielen Reitern, wird viel Arbeitsspeicher beansprucht und der Vorgang dauert lange. Leider ist dieses Makro nicht das einzige, um genau zu sein ist das nur ein Stück vom Gesamtprojekt, an dem ich sitze. Es ist hierbei leider auch wichtig, dass das Gesamtprojekt dann flüssig läuft.
VG R3sul

Anzeige
AW: Makro das beim verschieben von Tabellen startet
19.05.2016 13:08:46
Tabellen
Hallo,
okidoki, war mir schon klar, aber ok, entweder Du ergänzt Dein Calculate-Event hiermit, oder noch besser, Du nutzt das Workbook_SheetCalculate-Event der Arbeitsmappe und nebenbei gewöhn Dir mal an immer Option Explicit zu setzen...
Private Sub Worksheet_Calculate()
If ActiveSheet Is Me Then
    If Me.Index <> Position Then
       'MsgBox Me.Name & " wurde verschoben!"
       'Call Reiterauflisten
       Call FarbenTauschen
       Position = Me.Index
    End If
End If
End Sub

Gruß, Mullit
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige