Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eine Datei automatisch in 2 Versionen speichern

Eine Datei automatisch in 2 Versionen speichern
19.07.2006 07:44:25
Anja
Guten Morgen!
Ich habe eine Datei, die aus ca. 1000 Zeilen besteht und bis Spalte AF geht.
Inhalt sind Kunden-Daten, die teilweise vertraulich und nur für den internen Gebrauch sind. Die nicht vertraulichen Daten werden per Mail an Lieferanten verschickt.
Ich möchte diese Datei 1x komplett haben, so wie sie ist, als auch eine Version davon, in der die Spalten AC-AF (vertrauliche Angaben) fehlen (verbergen geht ja nicht, ist zu leicht zu knacken).
Ich möchte mir die Arbeit ersparen, die Datei manuell in zwei Versionen zu speichern und die jeweiligen Spalten zu löschen. Kann man mit einem einfachen Befehl - oder wie auch immer - die Datei gleichzeitig unter zwei verschiedenen Namen und Versionen speichern?
Ich wäre begeistert, wenn mir jemand helfen kann!
Schon jetzt vielen Dank und herzlichen Gruß!!!
Anja

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 08:02:42
Matthias
Hallo Anja,
mit Alt+F11 öffnest du den VBA-Editor.
in DieseArbeitsmappe:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
KopieSpeichern
End Sub

Dann ein neues Modul erzeugen mit Menü Einfügen, Modul.
dahinein:

Sub KopieSpeichern()
Sheets("Tabelle1").Copy 'Tabellennamen anpassen
Range("AC:AF").Delete
Application.DisplayAlerts = False
With ActiveWorkbook
.SaveAs Filename:=ThisWorkbook.Path & "\Kopie zum Versenden.xls" 'Dateinamen anpassen
.Close
End With
Application.DisplayAlerts = True
End Sub

Gruß Matthias
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 08:37:37
Anja
Hallo Matthias,
vielen Dank für deine Hilfe. Kenne mich ja nicht wirklich mit VBA aus, habe aber versucht, deinen Lösungsweg in meiner Datei unterzubringen.
Bekomme aber immer eine Fehlermeldung, wenn ich teste.
Wo muß ich:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
KopieSpeichern
End Sub

eintragen?
Wenn ich auf "diese Arbeitsmappe" klicke weiß ich nicht wie und wo ich das eintragen muß...
Vielleicht bist du nochmal so lieb und hilfst mir weiter?
Ach so, Frage: wohin wird die "abgespeckte Datei" gespeichert? Automatisch in den gleichen Ordner der Ursprungsdatei?
Lieben Gruß
Anja
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 08:46:33
Matthias
Hallo Anja,
Wenn ich auf "diese Arbeitsmappe" klicke weiß ich nicht wie und wo ich das eintragen muß...
Doppelklicke auf "DieseArbeitsmappe", dann erscheint rechts das Codefenster. Hier hinein...


wohin wird die "abgespeckte Datei" gespeichert? Automatisch in den gleichen Ordner der Ursprungsdatei?
Das macht diese Codezeile:

.SaveAs Filename:=ThisWorkbook.Path & "\Kopie zum Versenden.xls" 'Dateinamen anpassen

Hier wird also der Dateiname aus dem Pfad der Ursprungsdatei (ThisWorkbook.Path) und einem neuen Namen zusammengesetzt. Du kannst auch schreiben:

.SaveAs Filename:="C:\test\Kopie.xls" 'Dateinamen anpassen

Dann wird die Kopie immer nach C:\test gespeichert.
Gruß Matthias
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 08:57:08
Anja
Ist ja supergeil! Es funktioniert!!!
Vielen vielen vielen Dank für die Hilfe! Ich bin immer wieder begeistert, wenn mir im Excel-Forum - vor allem sooooo schnell!!! - geholfen wird!
Lieben Gruß und schönen Tag,
Anja
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 09:08:01
Anja
Ups, jetzt hatte ich total übersehen, daß die Ursprungsdatei aus 2 Arbeitsblättern besteht. In die Kopie der Datei wird natürlich nur das eingefügt, bei dem die 4 Spalten fehlen. Wie kann ich die gesamte Arbeitsmappe kopieren? Oder muß ich einfach nur den Namen des 2. Arbeitsblattes irgendwo mit einfügen?
Ich denke, wenn ich das noch hinbekommen habe, war es das dann auch...! ;-))
Lieben Gruß
Anja
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 09:09:45
Matthias
Hallo Anja,
müssen bei der Kopie des zweiten Blattes auch bestimmte Daten gelöscht werden?
Gruß Matthias
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 09:14:52
Anja
Nein, es kann da alles bleiben wie es ist.
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 09:24:49
Matthias
Hallo Anja,
ok, dann so (ich hab's auch noch ein wenig erklärt und eine Fehlerabfrage eingebaut):

Sub KopieSpeichern()
'Konstanten können angepasst werden:
Const Tab1_Name = "Tabelle1"
Const Tab2_Name = "Tabelle2"
Const Kopie_Name = "Kopie zum Versenden.xls"
Dim WB_neu As Workbook 'Zeiger auf neue Mappe
Application.ScreenUpdating = False 'damit es nicht so "flackert"
'Erstes Blatt kopieren (in neue Mappe):
Sheets(Tab1_Name).Copy
Set WB_neu = ActiveWorkbook 'Variable auf neue (=aktive) Mappe setzen
On Error GoTo errhandler 'Fehlerbehandlung
Range("AC:AF").Delete
'Zweites Blatt kopieren (zu neuer Mappe hinzu):
ThisWorkbook.Sheets(Tab2_Name).Copy After:=WB_neu.Sheets(Tab1_Name)
Application.DisplayAlerts = False 'Warnmeldung "Datei überschreiben?" abschalten
With WB_neu
.SaveAs Filename:=ThisWorkbook.Path & "\" & Kopie_Name
.Close
End With
Application.DisplayAlerts = True 'nicht vergessen, wieder einzuschalten
Application.ScreenUpdating = True
Exit Sub 'Prozedur verlassen (kein Fehler)
'hierher geht es nur, wenn ein Fehler auftrat:
errhandler:
Application.DisplayAlerts = True 'auch hier nicht vergessen, wieder einzuschalten
WB_neu.Close SaveChanges:=False 'neue Mappe verwerfen
MsgBox Err.Description, vbCritical, "Fehler beim Speichern der Kopie" 'Fehler ausgeben
End Sub

Gruß Matthias
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 10:32:21
Anja
Matthias, du bist echt genial!!!!!
Vielen vielen Dank!
Eine Klitzekleinigkeit hätte ich noch...
Kann man programmieren, daß, wenn die Datei geöffnet wird, das erste Arbeitsblatt angezeigt wird, und nicht das 2.? (Das 2. ist "unwichtiger" als das 1. Momentan ist das 2. Blatt aufgerufen, wenn ich die Datei öffne.)
Ich hoffe, ich nerve nicht, aber wenn ich auch das noch hinbekomme, wäre das die absolute Krönung...!!!!
Bist du nochmal so nett? :-)) Danke!
Anja
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 14:08:43
Matthias
Hallo Anja,
ergänze den Code wie folgt:

'Zweites Blatt kopieren (zu neuer Mappe hinzu):
ThisWorkbook.Sheets(Tab2_Name).Copy After:=WB_neu.Sheets(Tab1_Name)
WB_neu.Sheets(Tab1_Name).Activate

Nur die dritte Zeile ist neu, die anderen sind zum Auffinden der richtigen Stelle!
Gruß Matthias
Anzeige
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 14:17:25
Anja
Das ist ja einfach superspitzenklasse!!!!!!!!!
Vielen vielen vielen Dank!!!!!!!!!
Herzliche Grüße
Anja
AW: Eine Datei automatisch in 2 Versionen speicher
19.07.2006 08:50:36
Sylvio
Hallo Anja,
genau richtig Anja, einfach den Text bei "DieseArbeitsmappe" in das weiße rechte große Fenster reinkopieren.
Und ja die Datei wird in den selben Ordner abgelegt, wo deine Ursprungsdatei liegt.
Befehl dazu: ThisWorkbook.Path
gruß Sylvio

136 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige