Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

kopieren, sheet benennen, automatisch speichern

kopieren, sheet benennen, automatisch speichern
19.07.2008 11:34:00
Bastian
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kopieren, sheet benennen, automatisch speichern
19.07.2008 11:59:00
Daniel
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.

Anzeige
AW: kopieren, sheet benennen, automatisch speichern
19.07.2008 12:10:00
Bastian
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

AW: kopieren, sheet benennen, automatisch speichern
19.07.2008 12:21:27
Daniel
Hi
in dieser Zeile:
Dateiname = "c:\daten\archiv\" & Sheets("Tabelle1").Range("A1").Value & "_KW.xls"
Gruß, Daniel

AW: Vor-Kalenderwoche
19.07.2008 12:24:26
Erich
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:
 ABC
3DatumKWVor-KW
403.01.20042004w12003w52
503.01.20052005w12004w53
603.01.20062006w12005w52
703.01.20072007w12006w52
803.01.20082008w12007w52
903.01.20092009w12008w52
1003.01.20102009w532009w52
1103.01.20112011w12010w52

Formeln der Tabelle
ZelleFormel
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

Anzeige
AW: Vor-Kalenderwoche
19.07.2008 12:37:00
Daniel
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige