Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

xls ins Archiv verschieben

Frage Entwicklung Batch & Shell

Mitglied: Bacaaardi

Bacaaardi (Level 1) - Jetzt verbinden

18.09.2007, aktualisiert 21.09.2007, 2888 Aufrufe, 6 Kommentare

Hallo ich versuche ein Skript zu bauen in dem aus den Dateien daten.xls und info.xls jeweils immer die ersten 3 Zeilen und die letzte Zeile gelöscht wird.


Jeden Tag speichern wir eine neue daten.xls und info.xls in den Ordner.
Dabei werden die Dateien vom Vortag überschrieben. Ist es möglich anstatt die Daten zu überschreiben, die „alten“ Daten in den Ordner „Archiv“ zu verschieben am Besten mit dem Datum vor dem Dateinamen, z.B. 18.09.07_daten.xls und 18.09.07_info.xls.
Die neuen Daten heissen dann weiterhin daten.xls und info.xls nur der „Altbestand“ wird in den Ordner Archiv verschoben mit dem Datumszusatz.

Optimal wäre es wenn dies in 1 Schritt passieren würde, Zeilen löschen und archivieren ;)



Gruß Julia
Mitglied: bastla
18.09.2007 um 17:52 Uhr
Hallo Bacaaardi!

Das Archivieren selbst ist rein handwerklich etwa so zu lösen:
01.
Sub Archivieren() 
02.
Dim fso As Object, Dat As String, Dateien() As Variant, Datei As Variant 
03.
 
04.
Const Arbeit As String = "D:\Arbeitsordner" 'Quellordner 
05.
Const Archiv As String = "D:\Archivordner"  'Zielordner 
06.
Dateien = Array("daten", "info")            'Liste der Dateien 
07.
 
08.
Set fso = CreateObject("Scripting.FileSystemObject") 
09.
Dat = Format(Now, "YYYY-MM-DD") 'Datumsformat hier festlegen 
10.
For Each Datei In Dateien() 
11.
    If fso.FileExists(Arbeit & "\" & Datei & ".xls") Then 
12.
        fso.CopyFile Arbeit & "\" & Datei & ".xls", Archiv & "\" & Dat & "_" & Datei & ".xls", True 
13.
        fso.DeleteFile (Arbeit & "\" & Datei & ".xls") 
14.
    End If 
15.
Next 
16.
End Sub
Gleichnamige Dateien (vom selben Tag) im Archivordner werden in dieser Version durch die umbenannten Dateien aus dem Arbeitsordner überschrieben. Als Datumsformat würde ich allerdings eher zu "2007-09-18" tendieren (und habe es oben auch so verwendet). Dieses lässt sich aber leicht ändern (siehe "Format(...)").

Das "Verschieben" wird als Kombination von "Kopieren" (mit Überschreiben schon vorhandener Zieldateien) und nachfolgendem Löschen der Quelldateien ausgeführt, wobei eine etwas sicherere Variante anstatt die kopierten Dateien zu löschen diese einfach von den nachfolgenden Dateien überschreiben ließe.
Zum Thema "aus den Dateien daten.xls und info.xls jeweils immer die ersten 3 Zeilen und die letzte Zeile löschen" wäre anzumerken, dass Excel-Dateien keine Zeilen enthalten, sondern etwa Tabllenblätter mit Zeilen, und dass ich ohne zusätzliche Informationen als die "ersten 3 Zeilen" die Zeilen 1 bis 3 und als "letzte Zeile" die Zeile 65536 oder ihr Excel 2007-Pendant betrachten würde (was ja vermutlich nicht gemeint sein dürfte ) ...

Grüße
bastla
Bitte warten ..
Mitglied: Bacaaardi
19.09.2007 um 08:16 Uhr
Und das ist ein Makro welches ich in Excel einfügen soll??
Bitte warten ..
Mitglied: Bacaaardi
19.09.2007 um 09:25 Uhr
Vielen Dank, hat im Test teilweise geklappt (wobei der Fehler sicher bei mir liegt ;)

Leider hat mein Chef die Forderung umgeschmissen.

er will jetzt folgendes

Ich hab eine Datei Statistik.xls, dies macht über ein Makro 2 Webabfragen und speichert eine als daten.xls und die andere als info.xls ab. (Konnte die Webabfrage jetzt allein automatisieren, freu ;)

Da diese beiden Dateien aber berits vom Vortag bestehen, sollen die vorhandenen mit Datum im Dateinamen in der Ordner Archiv verschoben werden und die des aktuellen Tags im "normalen" Ordner als daten.xls und info.xls


Hier mein Makro (kann man die Archivierung hier einbauen??) Wenn ja wie
Als eigenes Makro, oder im gleichen Makro wie die Webabfrage?

01.
 
02.
Sub Makro4() 
03.
04.
' Makro4 Makro 
05.
' Makro am 19.09.2007 von mir aufgezeichnet 
06.
07.
 
08.
09.
Workbooks.Add 
10.
With ActiveSheet.QueryTables.Add(Connection:= _ 
11.
"URL;http://meinedomain.de" _ 
12.
, Destination:=Range("A1")) 
13.
.Name = _ 
14.
"order=DESC&tempMax=3000&os_username=xxx&os_password=xxx" 
15.
.FieldNames = True 
16.
.RowNumbers = False 
17.
.FillAdjacentFormulas = False 
18.
.PreserveFormatting = True 
19.
.RefreshOnFileOpen = False 
20.
.BackgroundQuery = True 
21.
.RefreshStyle = xlInsertDeleteCells 
22.
.SavePassword = False 
23.
.SaveData = True 
24.
.AdjustColumnWidth = True 
25.
.RefreshPeriod = 0 
26.
.WebSelectionType = xlSpecifiedTables 
27.
.WebFormatting = xlWebFormattingNone 
28.
.WebTables = """issuetable""" 
29.
.WebPreFormattedTextToColumns = True 
30.
.WebConsecutiveDelimitersAsOne = True 
31.
.WebSingleBlockTextImport = False 
32.
.WebDisableDateRecognition = False 
33.
.WebDisableRedirections = False 
34.
.Refresh BackgroundQuery:=False 
35.
End With 
36.
Range("A1:K1").Select 
37.
Selection.Font.Bold = True 
38.
With Selection 
39.
.HorizontalAlignment = xlCenter 
40.
.VerticalAlignment = xlBottom 
41.
.WrapText = False 
42.
.Orientation = 0 
43.
.AddIndent = False 
44.
.IndentLevel = 0 
45.
.ShrinkToFit = False 
46.
.ReadingOrder = xlContext 
47.
.MergeCells = False 
48.
End With 
49.
With Selection.Interior 
50.
.ColorIndex = 15 
51.
.Pattern = xlSolid 
52.
End With 
53.
Range("A2").Select 
54.
ChDir "C:\Dokumente und Einstellungen\ich\Desktop" 
55.
ActiveWorkbook.SaveAs Filename:= _ 
56.
"C:\Dokumente und Einstellungen\ich\Desktop\arvato.xls", FileFormat:= _ 
57.
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ 
58.
, CreateBackup:=False 
59.
ActiveWindow.Close 
60.
End Sub 
61.
 
Bitte warten ..
Mitglied: bastla
19.09.2007 um 14:24 Uhr
Hallo Bacaaardi!

Vielen Dank, hat im Test teilweise geklappt ...
Das ist wenigstens einmal ein Feedback, mit dem man etwas anfangen kann ...

Hier mein Makro (kann man die Archivierung hier einbauen??)
Obwohl nicht wirklich zu erkennen ist, an welcher Stelle die beiden Dateien gespeichert werden: ja - solange Du die Archivierung vorher machst .

Grüße
bastla

P.S.: Ich nehme an, Dein anderer Thread könnte mit einen Verweis auf diesen hier abgeschlossen werden ...
Bitte warten ..
Mitglied: Bacaaardi
21.09.2007 um 09:12 Uhr
Also mein Chef hat die komplett Forderung umgeschmissen


Ich mache jetzt aus meiner Datei ein Makro (über Button) welches mir eine neue Webabfrage erzeugt.
Es wird ein neues xls geöffnet, die Web-Daten werden importiert. Und dann wird die Datei als daten.xls gespeichert.

Klappt alles wunderbar. Aber da diese Webafrage 1mal täglich gemacht wird und diese immer als daten.xls gespeichtert werden soll. muss die daten.xls vom Vortag archiviert werden bevor Sie von der aktuellen überschrieben wird.
D.h. die Datei muss mit Datumspräfix+Dateiname in den Ordner Archiv verschoben werden.
Und ganz wichtig die ersten 3 und die letzte Zeile müssen NICHT gelöscht werden. Die Webafrage leifert mir das Format welches ich benötige ;) Kann man hier die Archvierung einbauen?


Es ist nämlich so:

Die Datei daten.xls wird benötigt um Pivot-Auswertungen zu machen. Wenn ich die neue Datei jedes mal mit Datum speichere muss ich jedes mal die Pivot-Abfragen anpassen

Die neue Datei muss immer als Daten.xls gespeichert werden, da aber immer eine daten.xls schon da ist, muss die alte nur mit Datum + Dateinamen in den Ordner Archiv verschoben werden.

Es muss immer eine daten.xls geben, nämlich immer die aktuelle bis zur nächsten Webabfrage.

es bringt mir also nix die Datei nur mit Datum zu speichern. Die aktuelle muss immer daten.xls heissen, und nur die "alten" müssen bevor sie ja quasi von der neuen date.xls überschrieben werden, mit Datum in den Ordner Archiv verschoben werden



Hier mein bisheriges Makro:

01.
Sub Makro2() 
02.
03.
' Makro2 Makro 
04.
' Makro am 21.09.2007 von mir aufgezeichnet 
05.
06.
 
07.
08.
    Workbooks.Add 
09.
    With ActiveSheet.QueryTables.Add(Connection:= _ 
10.
        "URL;http://jira.de/jira/secure/IssueNavigator.jspa?reset=true&&type=-2&pid=10221&sorter/field=issuekey&sorter/order=DESC&tempMax=2000&os_username=user&os_password=password" _ 
11.
        , Destination:=Range("A1")) 
12.
        .Name = _ 
13.
        "order=DESC&tempMax=2000&os_username=username&os_password=password" 
14.
        .FieldNames = True 
15.
        .RowNumbers = False 
16.
        .FillAdjacentFormulas = False 
17.
        .PreserveFormatting = True 
18.
        .RefreshOnFileOpen = False 
19.
        .BackgroundQuery = True 
20.
        .RefreshStyle = xlInsertDeleteCells 
21.
        .SavePassword = False 
22.
        .SaveData = True 
23.
        .AdjustColumnWidth = True 
24.
        .RefreshPeriod = 0 
25.
        .WebSelectionType = xlSpecifiedTables 
26.
        .WebFormatting = xlWebFormattingNone 
27.
        .WebTables = """issuetable""" 
28.
        .WebPreFormattedTextToColumns = True 
29.
        .WebConsecutiveDelimitersAsOne = True 
30.
        .WebSingleBlockTextImport = False 
31.
        .WebDisableDateRecognition = False 
32.
        .WebDisableRedirections = False 
33.
        .Refresh BackgroundQuery:=False 
34.
    End With 
35.
    ChDir _ 
36.
        "J: \test\Graphiken" 
37.
    ActiveWorkbook.SaveAs Filename:= _ 
38.
        "J: \test\Graphiken\daten.xls" _ 
39.
        , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ 
40.
        ReadOnlyRecommended:=False, CreateBackup:=False 
41.
    ActiveWindow.Close 
42.
End Sub 
43.
 
44.
 
45.
 
46.
 
Bitte warten ..
Mitglied: bastla
21.09.2007 um 13:16 Uhr
Hallo Bacaaardi!

Kann man hier die Archvierung einbauen?
Immer noch: ja.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...