2.2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Forum,

bei einer Excel-Datei erscheint beim öffen eine MsgBox mit dem Hinweis das es sich um die Originaldatei handelt und bitte erst eine Kopie erstell werden muss.
Nun möchte ich aber das beim öffen der Kopie die Msgbox nicht mehr erscheint also beim kopieren der Aufruf für die MsgBox gelöscht oder nicht mit kopiert wird.

Gruß HM

11 Antworten

0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hi HM,

leider hast Du nicht geschrieben mit welcher Version Du arbeitest.

In der Version 2013 erstelle die Kopie als Excel-Arbeitsmappe (.xlsx) und nicht als Excel-Arbeitsmappe mit Makros (xlsm). Möglicherweise ist das in früheren Versionen auch bereits so möglich.


Alternativ müsstest Du das Makro, der die Msgbox aufpoppen läßt, in der Kopie immer wieder löschen oder z.B. in der Originaldatei ein Makro einsetzen, dass Dir eine Kopie der Datei erstellt, in der die Msgbox nicht erscheint.

In diesem Sinne... have a nice Day... Gruß Helmut
0 Punkte
Beantwortet von
Sorry,
ich arbeite mit Excel 2010.

- immer wieder löschen ist keine Option.
- als .xlsx abspeichern geht auch schon unter 2010 und wäre zumindest eine Möglichkeit (Danke) obwohl ich nicht weis ob jeder Anwender das dann auch macht.
- besser wäre aber glaube ich, wenn der Aufruf der MsgBox gar nicht erst mitkopiert würde.
Vielleicht kann mir jemand mit einem VBA-code helfen.

Gruß HM
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hi HM,

leider sind Deine Angaben sehr dürftig.

Keiner kennt Deine Arbeitsmappe und das entsprechende Makro.

Du schreibst auch, dass es unterschiedliche Personen sind, die sich eine Kopie erstellen.

Erstellen die sich ihre Kopie immer in ein eigenes Verzeichnis oder ist es ein Verzeichnis für alle?

Gibt es Regeln, die den Dateinamen betreffen, so dass dieser immer variabel ist oder ist es einfach nur eine Kopie der gleichen Datei z.B. nur mit ergänzten Daten?

Ich könnte mir hier eine Button-Lösung vorstellen, aber ohne mehr Input was wie benötigt wird, wird es schwierig werden.

Alternativ habe ich dieses hier gefunden...
www.office-loesung.de/ftopic103206_0_0_asc.php

In diesem Sinne... have a nice Day... Gruß Helmut
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

hier mal ein Beispiel wie man so etwas lösen könnte:

Private Sub Workbook_Open()

Dim Neuer_Dateiname
Dim strFileName

'Messagebox mit Hinweis
MsgBox "Achtung, vor dem Bearbeiten muss diese Datei neu gespeichert werden! Das Speichern-unter-Menü wird jetzt aufgerufen", 64, "Wichtiger Hinweis!"

'in Variable Neuer_Dateiname wird Pfad - aktueller Pfad der Datei - und neuer Name geschrieben
'auch Vorgabe eines anderen Pfades möglich; Bsp: InitialFileName:="C\Test\" & strFileName_
Neuer_Dateiname = Application.GetSaveAsFilename( _
InitialFileName:=ThisWorkbook.Path & "\" & strFileName, _
FileFilter:="Excel(*.xlsx), *.xlsx", _
Title:="Speichern ohne Makros")
'Falls Abbruch gedrückt wird dann
If Neuer_Dateiname = False Then
MsgBox "Es ist keine Eingabe erfolgt! Die Datei wird geschlossen!", 16, "Abbruch" 'Hinweis schließen
ThisWorkbook.Close 'Arbeitsmappe schließen
Exit Sub
End If

'Notausgang für Admins zum Bearbeiten der Datei; diese Kombination ist bei Dateiname einzugeben und dann speichern drücken - kann natürlich geändert werden
If Right(Neuer_Dateiname, 11) = "123456.xlsx" Then Exit Sub

'Mögliche Nachfragen und Hinweise ausschalten
Application.DisplayAlerts = False

'Speichern
ThisWorkbook.SaveAs Neuer_Dateiname, 51

Application.DisplayAlerts = True

End Sub


Das Makro gehört in das VBA-Projekt der Arbeitsmappe. Für den Fall, dass berechtigte Personen die Arbeitsmappe bearbeiten müssen, habe ich einen "Notausgang" eingebaut.
Ab Office 2007 reicht es aus, die Arbeitsmappe als normale Mappe ohne Makros zu speichern. Nach dem Speichern ist das Makro noch vorhanden, erst nach dem neuerlichen Öffnen ist es nicht mehr da.

Gruß

M.O.
0 Punkte
Beantwortet von
Ok dann versuch ich es etwas genauer.
Ich hab ein Kalkulationsblatt erstellt und in Ordner "A" gespeichert.
Wenn jetzt ein Sachbearbeiter das Kalkulationsblatt öffnet erscheint eine MsgBox mit der Meldung

!!!!! Achtung !!!!! Originaldatei - bitte erst eine Kopie erstellen

dafür habe ich unter VBAProjekt - DieseArbeitsmappe
volgenden Code eingegeben

Private Sub Workbook_Open()
' Aufruf einer mehrzeiligen Mitteilungsbox
MsgBox "!!!!! Achtung !!!!!" & vbCrLf & "Originaldatei" & Chr(10) & "bitte erst eine Kopie erstellen" & Chr(13) & "!!!!!"
End Sub

Wenn der Sachbearbeiter die Datei jetzt mit dem Befehl "Speichern unter"
in sein Arbeitsverzeichnis speichert (also eine Kopie erstellt) soll der Aufruf der MsgBox gelöscht werden, sonst würde ja immer beim öffnen der Kopie auch die MsgBox erscheinen und das wäre nicht richtig.

Gruß HM
0 Punkte
Beantwortet von
Hallo M.O.

sorry, hat sich überschnitten.
Super, genau das ist es, Danke!!!

Helmut Dir auch Danke.

Gruß HM
0 Punkte
Beantwortet von
Etwas zu früh gefreut.
Mit dem Notausstieg komme ich nicht wieder an die Original-Datei sondern an eine Kopie die dann den Namen des Notausstieg-Kürzel trägt.
An die Originaldatei komme ich nur über deaktivieren der Makros.

Gruß HM
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

da bei mir das Makro richtig arbeitet, schau mal nach, ob das Passwort richtig ist.
Ansonsten ändere die Zeile
If Right(Neuer_Dateiname, 11) = "123456.xlsx" Then Exit Sub

mal in
If Left(Neuer_Dateiname, 6) = "123456" Then Exit Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Also irgendwas läuft bei mir noch falsch.

Meine Original-Datei ist eine .xlsm-Datei (da Makros)
Wenn ich die Datei speichere schlägt mir Excel aber nur .xlsx als Endung vor egal ob ich eine Kopie erstelle oder über den Notausstieg auf das Original zugreifen will.
Insofern erstellt mir das Makro immer eine neue Datei.
Das Makro führt den Befehl exit sub nach einegabe des, ich nenne es mal Passwort, "123456" auch nicht aus sonder führt auch noch die letzte Zeile

ThisWorkbook.SaveAs Neuer_Dateiname, 51

aus und das bedeutet doch, daß die Original-Datei immer unter einem neuen Dateiname abgespeichert wird.
Im Falle des Notausstieg heißt die Datei dann 123456.xlsx

Gruß HM
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

hier mal eine Beispieldatei: KLICK MICH!

Speichere die Datei und öffne Sie dann. Gib als neuen Dateinamen 123456 ein und drücke auf speichern.

Gruß

M.O.
...