Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro, kopieren, sichern, drucken

Makro, kopieren, sichern, drucken
24.01.2004 22:15:08
Strutz
Hallo,
ich habe folgendes Problem:
Tabellenblatt 1 wird mit Daten ausgefüült, danach möchte ich die Daten in einer anderen Datei (Sicherung.xls) sichern. Die Werte + Formate (höhe breite farben) sollen alle mit übernommen werden die Formeln nicht. Die Datei mit Tabellenblatt 1 wird jeden Monat aktualisiert und die Daten müssen dann wieder in der Datei Sicherung.xls als NEUES Tabellenblatt gesichert werden. Hilfreich wäre dann noch einen Button in der Sicherung.xls zu haben mit dem mann die Tabelle ausdrucken kann.
Danke schon mal.
Strutz

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro, kopieren, sichern, drucken
24.01.2004 23:00:03
Matthias G
Hallo Strutz,
bin grade drüber, kurze Nachfrage: soll die Kopie im gleichen Verzeichnis gespeichert werden wie die Original-Mappe?
Matthias
AW: Makro, kopieren, sichern, drucken
24.01.2004 23:08:00
Pero
Ja.
AW: Makro, kopieren, sichern, drucken
24.01.2004 23:12:57
Strutz
ja, ich glaube das ist ok im gleichen Verzeichnis.
Ich danke dir das du dich bemühst.
Strutz
AW: So, schau mal...
24.01.2004 23:53:50
Matthias G
Hallo Pero,
Ich habe folgenden Code für Dich:
Option Explicit
Const SicherungsDatei = "Sicherung.xls"

Sub Sichern()
Dim Anz, Neu As Integer
Dim Dummy As String
Application.ScreenUpdating = False
On Error GoTo ok
Dummy = Workbooks(SicherungsDatei).Name 'Abfrage zum Fehler erzeugen, wenn nicht vorhanden
'kein Fehler = FEHLER: Datei schon vorhanden!
MsgBox "Sicherung kann nicht durchgeführt werden, da eine Datei mit Namen " & SicherungsDatei & _
" schon geöffnet ist." & Chr(10) & _
"Schließen Sie diese Datei und wiederholen sie den Vorgang.", vbCritical, "Fehler bei der Sicherung"
Exit Sub
ok:
On Error GoTo 0
Anz = Workbooks.Count
Sheets("Tabelle1").Copy
Workbooks(Anz + 1).Activate
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
'Prüfe, ob Datei schon existiert:"
'Ja
If Dir(ThisWorkbook.Path & "\" & SicherungsDatei) <> "" Then
If MsgBox("Die Datei " & SicherungsDatei & " existiert schon. Überschreiben?", vbYesNo + vbQuestion) = vbNo Then
MsgBox "Die Sicherungsdatei konnte nicht gespeichert werden!", vbCritical, "Fehler beim Speichern"
ActiveWorkbook.Close SaveChanges:=False 'schließt Kopie ohne Speichern
Exit Sub
Else
Kill ThisWorkbook.Path & "\" & SicherungsDatei
End If
End If
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & SicherungsDatei
'Kopie drucken?
If MsgBox("Soll die Kopie gleich gedruckt werden?", vbYesNo + vbQuestion, SicherungsDatei) = vbYes Then
ActiveSheet.PrintOut
End If
'Kopie schließen
ActiveWorkbook.Close
MsgBox "Kopie erfolgreich unter " & ThisWorkbook.Path & "\" & SicherungsDatei & " gespeichert.", vbInformation, SicherungsDatei
Application.ScreenUpdating = True
End Sub

Schau mal, ob das ok ist. Rückmeldung wäre sehr nett!
Grüße,
Matthias
Anzeige
AW: So, schau mal...
25.01.2004 10:27:42
Strutz
Hallo Matthias,
das ist super (freu mich wirklich), ich danke dir.
Selber hätte ich das nicht geschafft.
Strutz
AW: So, schau mal...
25.01.2004 10:51:12
Strutz
Hallo Matthias,
das Makro funktionier wirklich einwandfrei!! Nochmal Danke,
und jetz das ABER: ist es möglich das Makro so zu ändern, dass, wenn eine zweite Kopie angelegt wird, die in der Sicherung.xls als fortlaufendes also 2.,3., usw angelegt wird?
Ich möchte dann später die Resultate der Monate vergleichen.
Noch eine andere Frage:
Da ich mich mit der Erstellung von Makro's noch nicht befasst habe, möchte ich gerne alle Makro's in meiner Arbeitsmappe nachlesen können. Gibt es eine Möglichkeit diese in schriftlicher Form (ausgelesen) auf ein Arbeitsblatt der Arbeitsmappe zu kopieren. Ich würde sie mir dann ausdrucken, um eine schrift. Vorlage zum üben zu haben.
Danke noch mal.
Strutz
Anzeige
AW: So, schau mal...
25.01.2004 11:05:14
Matthias G
Hallo Strutz,
Zur ersten Fage: Das ist möglich, ich habe vor heute abend aber keine Zeit...
Makros drucken kannst Du doch einfach vom VBA-Editor heraus (Datei -> Drucken...), wozu das Ganze in ein Arbeitsblatt?
Grüße,
Matthias
AW: So, schau mal...
25.01.2004 12:02:33
Strutz
Hallo Matthias,
ich würde mich sehr freuen wenn du dich des Problems annehemen würdest, egal wann.
Danke, Strutz.
AW: So, schau mal...
25.01.2004 22:56:26
Matthias G
Hallo Strutz (ist das eigentlich Dein Vorname?)
Ich habe das Makro etwas umgeschrieben, hier ist es:
Option Explicit
Const Anz_Ziffern = 4 'Datei heisst dann Sicherungxxx.xls
'(bei 3 Sicherungxxx.xls, usw)

Sub Sichern()
Dim Sicherungsdatei As String
Dim Anz, Neu As Integer
Dim Dummy As String
Application.ScreenUpdating = False
Sicherungsdatei = ErsteFreieDatei(ThisWorkbook.Path, "Sicherung", Anz_Ziffern)
On Error GoTo ok
Dummy = Workbooks(Sicherungsdatei).Name 'Abfrage zum Fehler erzeugen, wenn nicht vorhanden
'(Prüfung ist vielleicht nicht mehr nötig, schadet aber nichts ;-)
'kein Fehler = FEHLER: Datei schon vorhanden!
MsgBox "Sicherung kann nicht durchgeführt werden, da eine Datei mit Namen " & Sicherungsdatei & _
" schon geöffnet ist." & Chr(10) & _
"Schließen Sie diese Datei und wiederholen sie den Vorgang.", vbCritical, "Fehler bei der Sicherung"
Exit Sub
ok:
On Error GoTo 0
Anz = Workbooks.Count
Sheets("Tabelle1").Copy
Workbooks(Anz + 1).Activate
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
ActiveWorkbook.SaveAs filename:=Sicherungsdatei
'Kopie drucken?
If MsgBox("Soll die Kopie gleich gedruckt werden?", vbYesNo + vbQuestion, Sicherungsdatei) = vbYes Then
ActiveSheet.PrintOut
End If
'Kopie schließen
ActiveWorkbook.Close
MsgBox "Kopie erfolgreich unter " & Sicherungsdatei & " gespeichert.", vbInformation, Sicherungsdatei
Application.ScreenUpdating = True
End Sub


'findet erste nicht exisierende Datei im Verz. Path mit Namen fn[xxxx].xls (Anzahl x in digits)

Function ErsteFreieDatei(Path As String, fn As String, digits As Integer) As String
Dim i As Long
Dim fo, filename As String
fo = String(digits, "0") 'Zahlenformat
For i = 1 To (10 ^ digits) - 1
filename = Path & "\" & fn & Format(i, fo) & ".xls"
If Dir(filename) = "" Then Exit For
Next i
ErsteFreieDatei = filename
End Function

Ich habe hier das Format Sicherungxxxx.xls gewählt, du kannst also 9999 Kopien machen, anschl. gibt es wohl Makrofehler...
Wenn du mehr willst, erhöhe einfach die Konstante Anz_Ziffern...
Viel Erfolg und Viel Spaß noch,
Matthias
P.S. Es wäre vielleicht besser, wenn der Name der Sicherungskopie sich am Erstelldatum orientieren würde? also z.B. Sicherung_04_01.xls für Sicherung im Januar 04, oder Sicherung_04_01_12__16-21.xls für die Sicherung am 12.1.2004 um 16:21, wie findest du das?
Anzeige
AW: Danke
26.01.2004 07:46:11
Strutz
Hallo Matthias,
ich danke dir noch mal ganz herzlich für deine Hilfe.
Du hast sicher Recht, es wäre dann einfacher die aktuelle Sicherung zu finden. Ich hatte daran noch garnicht gedacht. Ich wage garnicht dich zu fragen, ob du das Makro in diesem Sinne ändern könntest!
Strutz ist übrigens nicht mein Vorname sondern ein "Spitzname" aus meine Jugendzeit. Ich heiße Peter.
Danke
AW: Danke
26.01.2004 14:58:57
Matthias G
Hallo Peter,
Ein Makro welches Die Sicherung unter dem Datum als Teil des Dateinames speichert, ist eigentlich einfacher :-)
Da muss man nicht erst nach einem freien Dateinamen suchen.
Welches Format hättest Du denn gern?
Sicherungskopie_YY.MM.xls ?
Sicherungskopie_YY_MM_TT_hh-mm.xls ?
Sag mal, dann schreib ich dir bis morgen die Änderung.
Grüße,
Matthias
P.S. Matthias ist übrigens mein Vorname, mein "Spitzname" aus meiner Jugendzeit ist Matzy. ;-)
Anzeige
AW: Danke
26.01.2004 19:20:36
Strutz
Hallo Matthias,
schön wäre die zweite Variante.(YY.MM.TT.hh.mm.)
Danke, Peter.
AW: Danke
26.01.2004 21:01:36
Matthias G
Hallo Peter,
hier der Code:
_________________________________
Option Explicit
Public Sub Sichern()
Dim Sicherungsdatei As String
Dim Anz, Neu As Integer
Dim Dummy As String
Application.ScreenUpdating = False
Sicherungsdatei = ThisWorkbook.Path & "\Sicherung_" & Format(Now, "YY.MM.DD-HH.MM") & ".xls"
On Error GoTo ok
Dummy = Workbooks(Sicherungsdatei).Name 'Abfrage zum Fehler erzeugen, wenn nicht vorhanden
'(Prüfung ist vielleicht nicht mehr nötig, schadet aber nichts ;-)
'kein Fehler = FEHLER: Datei schon vorhanden!
MsgBox "Sicherung kann nicht durchgeführt werden, da eine Datei mit Namen " & Sicherungsdatei & _
" schon geöffnet ist." & Chr(10) & _
"Schließen Sie diese Datei und wiederholen sie den Vorgang.", vbCritical, "Fehler bei der Sicherung"
Exit Sub
ok:
On Error GoTo 0
Anz = Workbooks.Count
Sheets("Tabelle1").Copy
Workbooks(Anz + 1).Activate
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
If Dir(Sicherungsdatei) <> "" Then
'Datei existiert schon:
If MsgBox("Datei " & Sicherungsdatei & " existiert schon!" & Chr(10) & "Überschreiben?", vbQuestion + vbYesNo, _
"Sicherungsdatei erstellen") = vbYes Then
'alte Datei löschen:
Kill Sicherungsdatei
Else
'Abbruch
ActiveWorkbook.Close SaveChanges:=False
MsgBox "Datei wurde nicht gespeichert!", vbCritical, "Sicherungsdatei erstellen"
Exit Sub
End If
Hoffe, es funktioniert!
Grüße,
Matthias
Anzeige
AW: Danke
27.01.2004 07:50:06
Strutz
ok, das ist es.
Danke, Peter
AW: Danke für die Rückmeldung! - o.T.
27.01.2004 14:31:37
Matthias G
-

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige