2016-07-10 14 views
0

Ich spiele schon seit einiger Zeit mit VBA und stehe fest auf ein bestimmtes Problem. Ich habe ein Stammdatenblatt für eine Anzahl von Leuten und dann spezifische Profile für jede Person. Alle Daten sind im Master enthalten und werden im Profil einfach referenziert. Benutzer werden jedoch meistens auf das PROFIL schauen. Und alle vorgenommenen Änderungen werden wahrscheinlich auf das Profil und nicht auf den Master angewendet, wodurch der vorhandene Code im Profil überschrieben wird.Wie Änderungen nur in einem anderen Blatt erscheinen

Gibt es eine Möglichkeit für den Benutzer, eine Änderung in einem Blatt (Profil) einzugeben, aber diese Änderung in einem anderen Blatt (Master) und nur dieses Blatt angezeigt wird, ohne das Original (Profil) zu beeinträchtigen?

Danke für jede Hilfe angeboten.

Ps.s. Ja, ich habe die Option eines Worksheet-Änderungsunterwortes in Betracht gezogen, das dann die Ergebnisse auf das andere Blatt kopiert, aber ich weiß nicht, wie ich das Profil erstellen und dann wieder den ursprünglichen Code in dieser Zelle ändern kann. Zusätzlich würde dies die Fähigkeit zu STRG + Z durcheinander bringen, um eine einzelne Änderung rückgängig zu machen.

Antwort

0

Sie können ein drittes Blatt ('Vorlage') hinzufügen, in dem Sie die Standardwerte und Formeln beibehalten, die Sie in 'profile' verwenden möchten. Dann können Sie einfach eine Schaltfläche zum Speichern in das Profilblatt einfügen. Auf diese Weise kann der Benutzer Änderungen an seinem Profil vornehmen, indem er den integrierten Rückgängig-Mechanismus von Excel bei Bedarf verwendet und seine Änderungen am Ende speichert. Ihr Makro wird alle Änderungen in 'Master' kopieren und alles im 'Profil' in das Template-Formular zurücksetzen.

Beachten Sie, dass, sobald der Benutzer "speichern", sie nicht rückgängig machen können, was eine Einschränkung bei der Verwendung von Makros ist, aber da die Sicherungsaktion nur am Ende ausgeführt werden soll, sollte es nicht ' t ein großes Problem sein.

Sie könnten dies noch weiter automatisieren, indem Sie das Ereignis Worksheet_Change verwenden und die Schaltfläche zum Speichern überspringen. Aber da Sie die Undo-Anforderung erwähnen, ist diese Option nur möglich, wenn Sie bereit sind, Ihren eigenen Undo-Code/Makro zu schreiben, was Sie dazu zwingen würde, alle Änderungen am Profil zu verfolgen, was nicht einfach zu bewerkstelligen ist.