Excel VBA Inhalte in anderes Sheet einfügen?

...komplette Frage anzeigen

2 Antworten

Du schreibst zuerst von Sheet, im Kommentar aber von Datei! In was Passwortgeschütztes kannst du nur eintragen, wenn es offen und zugänglich ist.

Du musst also Datei oder Blatt erst freigeben mit Passwort im Makro (das Modul seinerseits dann mit Passwort verbergen, das birgt aber die Gefahr, dass die Anwendung "abgestürzt wird" und die Datei zugänglich bleibt. Oder es geht nur über deinen Account.

Du kannst Blätter verbergen mit Passwort, das kann man aber leichter knacken als ich selbst je gedacht hab!

Wie wärs mit einer eigenen Datei für Mitteilungen, namensverwandt? Willst Du diese Mitteilungen an andere lesen?

Eine geöffnete Datei aktivieren ist ein FENSTER-Befehl: ..windows("Dateiname.xlsx").activate, und die Makrodatei sprichst Du -auch nicht aktiviert- mit ThisWorkbook im Makro an -. egal, wo sie in der Aktivierungsreihenfolge steht.

Kannst Du das Zielblatt nicht per .....copy destination:=... ansprechen, so musst du das Zielblatt erst aktivieren, um etwas einzufügen. (wobei ich glaube, mich zu erinnern, dass pastespecial(xlvalues; xlcomments; xlformats) da weniger anspruchsvoll ist. müsste ich aber aiuch alles erst wieder ausprobieren.

Hmm, die Ideen für den Plan B klappen (mein Wissensstand nicht) - eine Userform hängt an einer Exceldatei und via HTML geht Richtung Excel gar nix.

Ich verstehe das Gesamtkonstrukt nicht wirklich. Grundsätzlich kann man mit VBA andere Exceldateien öffnen und reinschreiben.

Workbooks.Open Filename:="C:\Users\xxxx\Desktop\Mappe2.xlsx" 

Nur, was genau ist das dann, wenn man Datei 1 öffnet, etwas in die Userform einträgt und in Datei 2 schreibt? Warum ist die Userform nicht direkt bei Datei2 integriert?

Die Herausforderung ist bei diesem Aufbau, wann die andere Excel geöffnet wird (vermutlich sinnvollerweise wenn die Userform geöffnet wird), wann geschrieben wird (bei jeder Aktion oder erst in Sheet 1 sammeln) und wann man die Sheet 2 wieder speichert und schließt. Das müsstest Du Dir überlegen.

DJBaem 24.11.2016, 19:36

Danke für deine Antwort.

Es geht darum: Die Datei 1 soll für jeden Kollegen zugänglich sein, dort kann er anonym ein Feedback für andere Kollegen eintragen können (Feedback bedeutet hier nicht, dass es nur negative Einträge sind).

Diese Einträge sollen in Date 2 eingetragen werden, welche mit einem Passwort geschützt ist. Daher kann die Datei 2 nur von Rang-hoheren Mitarbeitern geöffnet werden, die das Passwort für die Datei 2 kennen.

LG
Benny

0
Ninombre 25.11.2016, 13:52
@DJBaem

Es gibt spezielle Tools für solche Feedbacks (vovici etc.), aber das kostet natürlich immer Geld und Aufwand.

Wenn Du nicht mit "Excel-Hackern" rechnen musst, geht vielleicht auch diese schmale Lösung:

Ein Tabellenblatt kannst Du mit VBA so ausblenden, dass man es auch nicht über Rechtsklick > Einblenden wieder bekommt.
sheets("Tabelle2").visible=xlveryhidden

Über VBA kannst Du dort ganz normal reinschreiben, musst es also auch nicht einblenden, man sieht auch nicht, dass es ein ausgeblendetes Tabellenblatt gibt, außer im VisualBasic Editor.

Wer sich mit Excel auskennt, kann natürlich über ein Script das Tabellenblatt genauso wieder einblenden.

Wenn die Mitarbeiternamen kritisch sind, kannst Du diese gegen Nummern ersetzen (im Code, z.B. mit einer case struktur).
Oder Du machst es wie hier und verschlüsselst komplett
http://www.herber.de/forum/archiv/424to428/426765_textdatei_per_vba_verschluesseln.html

Damit hängt die Sicherheit allerdings daran, dass keiner an das Makro kommt. Den Code kannst Du unter Extras -> Eigenschaften von VBA Projekt mit einem Passwort versehen. Ich weiß nicht, wie leicht sich das knacken lässt.

Als "Tarnung" könntest Du zusätzlich eine passwortgeschützte Exceldatei ins gleiche Verzeichnis legen, die "Umfrageergebnisse" heißt. Das lenkt den naiven User davon ab, dass die Ergebnisse in der Datei mit der Userform selbst abgelegt werden.

Bleibt die Frage, was mit den Chefs und deren Zugang ist. Man könnte die Tarndatei natürlich verwenden, um dort die Ergebnisse einzulesen. Das geht problemlos, da die Datei mit der Erfassung nicht passwortgeschützt ist. Andersrum funktioniert es ja nicht.

0

Was möchtest Du wissen?