kopieren, sheet benennen, automatisch speichern
Betrifft: kopieren, sheet benennen, automatisch speichern
von: Bastian Eberl
Geschrieben am: 19.07.2008 11:34:23
Guten Morgen,
ich habe mit der archivsuche mehrere Beispiele gefunden, aber leider nichts, was dem was ich suche wirklich entspricht.
Ich bin auf der Suche nach einem Makro, welches mir folgendes ermöglicht.
Inhalte eines bestimmten sheets (z.b. "Data") in eine neue Datei kopieren und das Sheet nach der Kalenderwoche vor der aktuellen (heute ist z.B. der 19.Juli, also Kalenderwoche 29 also soll das Sheet "28_KW" heissen).
Jetzt soll diese File in einem Bestimmten Ordner (z.B. c.\daten\archiv) als 28_KW.xls abgespeichert werden.
Und das alles soll ohne jegliche Useraktivitiät geschehen. Also möchte ich, dass der User dsa Makro ausführt ... und fertig.
Ich habe mal mit dem Makroeditor rumgespielt, damit geht es aber nicht.
Dann habe ich wie gesagt schon gegoogelt und im archiv geschaut, aber nur schnipsel wie:
-------------------
ActiveWorkbook.SaveAs Filename:=datname, FileFormat:=xlNormal, Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
datname = "daten" & Str(Year(Date)) & Str(Month(Date)) & ".xls"
----------------------
gefunden.
Aber daraus werde ich auch nicht so richtig schlau....
Könnt ihr mir helfen?
Danke und ein schönes Wochenende
Bastian
 |
Betrifft: AW: kopieren, sheet benennen, automatisch speichern
von: Daniel
Geschrieben am: 19.07.2008 11:59:00
Hi
zur berechnung der Kalenderwoche schreibst du diese Formel in irgendeine freie Zelle deiner Datei (nicht im Sheet "Daten")
=KÜRZEN((HEUTE()-WOCHENTAG(HEUTE();2)-DATUM(JAHR(HEUTE()+4-WOCHENTAG(HEUTE();2));1;-10))/7) -1
die Formel hab ich von WWW.excelformeln.de
zum Daten kopiern und Speichern nimmst du dieses Makro:
Sub Kopieren_und_Speichern()
Dim Dateiname As String
Dateiname = "c:\daten\archiv\" & Sheets("Tabelle1").Range("A1").Value & "_KW.xls"
ThisWorkbook.Sheets("Daten").Copy
ActiveWorkbook.SaveAs Dateiname
ActiveWorkbook.Close
End Sub
den Zellbezug für die berechnung des Dateinamens musst du noch anpassen, entsprechend dahin, wo deine Formel für die Berechnung der Kalenderwoche steht.
Gruß, Daniel
ps: die Funktion, die Excel für die Berechnung der KW bereitstellt, rechnet nach amerikanischer Norm, die von der deutschen abweicht. Daher muss man diese Formel verwenden.
Betrifft: AW: kopieren, sheet benennen, automatisch speichern
von: Bastian Eberl
Geschrieben am: 19.07.2008 12:10:36
Hallo Daniel,
danke für die schnelle Antwort.
Aber wo in dem Makro lege ich fest, wie der Dateiname sein soll und dass er sich die Informaton aus der Datei sucht.
Viele Grüsse
Bastian
Betrifft: AW: kopieren, sheet benennen, automatisch speichern
von: Daniel
Geschrieben am: 19.07.2008 12:21:27
Hi
in dieser Zeile:
Dateiname = "c:\daten\archiv\" & Sheets("Tabelle1").Range("A1").Value & "_KW.xls"
Gruß, Daniel
Betrifft: AW: Vor-Kalenderwoche
von: Erich G.
Geschrieben am: 19.07.2008 12:24:26
Hallo Bastian und Daniel,
bei der Berechnung der Vorwoche empfehle ich, das Jahr hinzuzunehmen.
Außerdem kann man wohl nicht einfach 1 von der KW abziehen - das gäbe am 4.1. oft eine Null...
Besser ist es wohl, die KW ausgehend von HEUTE()-7 zu bestimmen.
Hier ein paar Beispiele:
| A | B | C |
3 | Datum | KW | Vor-KW |
4 | 03.01.2004 | 2004w1 | 2003w52 |
5 | 03.01.2005 | 2005w1 | 2004w53 |
6 | 03.01.2006 | 2006w1 | 2005w52 |
7 | 03.01.2007 | 2007w1 | 2006w52 |
8 | 03.01.2008 | 2008w1 | 2007w52 |
9 | 03.01.2009 | 2009w1 | 2008w52 |
10 | 03.01.2010 | 2009w53 | 2009w52 |
11 | 03.01.2011 | 2011w1 | 2010w52 |
Formeln der Tabelle |
Zelle | Formel | B4 | =MIN(JAHR(A4-1-REST(A4-2;7)+4); JAHR(A4-REST(A4-1;7)+4))&"w"&KÜRZEN((A4-DATUM(JAHR(A4+3-REST(A4-2;7)); 1;REST(A4-2;7)-9))/7) | C4 | =MIN(JAHR(A4-8-REST(A4-9;7)+4); JAHR(A4-7-REST(A4-8;7)+4))&"w"&KÜRZEN((A4-7-DATUM(JAHR(A4-4-REST(A4-9;7)); 1;REST(A4-9;7)-9))/7) |
|
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Betrifft: AW: Vor-Kalenderwoche
von: Daniel
Geschrieben am: 19.07.2008 12:37:55
HI
nja, in der KW1 bin ich normalerweise im Urlaub, bzw haben wir Betriebsruhe, da stellt sich dann das Problem nicht ;-)
der einfachste Weg wäre vielleicht, in der Formel HEUTE()-7 anstelle von HEUTE() zu verwenden.
dann sollte das Berechnen der VOR-Kalenderwoche auch beim Jahreswechsel kein Problem mehr darstellen
(das -1 am Ende muss dann natürlich entfallen)
Gruß, Daniel
Beiträge aus den Excel-Beispielen zum Thema "kopieren, sheet benennen, automatisch speichern"