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

Makro erweitern, möglich?

Makro erweitern, möglich?
21.09.2007 09:19:21
Julia
Kann man dieses Makro erweitern?
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 (z.Bsp. 2007.10.21 daten.xls) in den Ordner Archiv verschoben werden.
An der Formatierung der Datei muss nichts geändert werden.
Hier mein bisheriges Makro:

Sub Makro2()
' Makro2 Makro
' Makro am 21.09.2007 von mir aufgezeichnet
Workbooks.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://meindedomain"
_
, Destination:=Range("A1"))
.Name = _
"order=DESC&tempMax=2000&os_username=username&os_password=password"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """issuetable"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
ChDir _
"J: \test\Graphiken"
ActiveWorkbook.SaveAs Filename:= _
"J: \test\Graphiken\daten.xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
End Sub


[/CODE]

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

Betreff
Datum
Anwender
Anzeige
AW: Makro erweitern, möglich?
21.09.2007 09:25:00
Gerd
Hallo Julia,
so?
...............................
...............................
..............................
ActiveWorkbook.SaveAs Filename:= _
"J: \test\Graphiken\" & Date &" daten.xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
End Sub
Gruß Gerd

AW: Makro erweitern, möglich?
21.09.2007 09:42:18
Julia
Wo bau ich das ein?
Kann es sein das deine Lösung die neue Webabfrage mit Datum speichert?
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.

Anzeige
AW: Makro erweitern, möglich?
21.09.2007 10:18:23
Gerd
Hallo Juli,
Kann es sein das deine Lösung die neue Webabfrage mit Datum speichert? Ja
Da habe ich dich falsch verstanden.
Ich stelle die Frage auf noch offen.
P.S. Du solltest noch mitteilen, ob die alte Datei "Datei.xls", die unter einem anderen Namen
gespeichert werden soll, wenn dein Code läuft, geöffnet ist oder nicht.
Gruß Gerd

AW: Makro erweitern, möglich?
21.09.2007 10:32:00
Julia
Also wenn ich das Makro ausführe, wird eine komplett neue (leere) xls geöffnet und diese soll dann als Daten.xls gespeichert werden. Die "alte" daten.xls ist dabei geschlossen. Diese soll dann vor dem Überschreiben der neuen aechiviert werden. Mit Datum + Dateiname
So verständlich?
Gruß
Julia

Anzeige
Zusatzinfo:
21.09.2007 10:35:02
Julia
Zusatzinfo:
Das Makro wird aus einer Datei namens Statistik.xls geöffnet.
Aus dieser wird dann die leere xls über Makro geöffnet, Web-Daten importiert und dann als daten.xls gespeichert.
Die alte Daten.xls die zu ist soll vor dem überschreiben archiviert werden

AW: Zusatzinfo:
21.09.2007 11:57:38
Gerd
Hallo Julia,
so zum Beispiel.

Sub Datei_verschieben_und_umbenennen()
Dim AlterName, NeuerName
AlterName = "C:\Eigene Dateien\Gerd\daten.xls"
NeuerName = "C:\Eigene Dateien\" & Format((Date - 1), "YYYY.mm.dd") & " daten.xls"
Name AlterName As NeuerName
End Sub


Anzeige
AW: Zusatzinfo:
21.09.2007 12:27:00
Julia
An dieser Stelle mekert er:
Name AlterName As NeuerName

AW: Zusatzinfo:
21.09.2007 13:23:00
Gerd
Hallo Julia,
hast Du die Pfadangaben angepasst ?
Gruß Gerd

AW: Zusatzinfo:
21.09.2007 13:54:27
Julia
ja habe ich

AW: fehlermeldung ? o.T.
21.09.2007 14:11:00
Gerd

AW: fehlermeldung ? o.T.
21.09.2007 14:28:00
Julia
Sorry es hat geklappt als ich es mit alt-f11 eingefügt habe
ich habe ja noch eine Webafrage als Makro
Kann ich das in ein Makro packen?
d.h. erst dein Makro dann meins?

Sub Makro6()
' Makro6 Makro
' Makro am 21.09.2007 von mir aufgezeichnet
Workbooks.Add
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://meineUrl
_
, Destination:=Range("A1"))
.Name = _
"order=DESC&tempMax=2000&os_username=user&os_password=pass"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """issuetable"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll ToRight:=3
Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Range("F1").Select
ActiveCell.FormulaR1C1 = "Status"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],LEN(RC[-1])/2)"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F1408"), Type:=xlFillDefault
Range("F2:F1408").Select
ActiveWindow.ScrollRow = 1360
ActiveWindow.ScrollRow = 1353
ActiveWindow.ScrollRow = 1344
ActiveWindow.ScrollRow = 1333
ActiveWindow.ScrollRow = 1319
ActiveWindow.ScrollRow = 1299
ActiveWindow.ScrollRow = 1276
ActiveWindow.ScrollRow = 1258
ActiveWindow.ScrollRow = 1235
ActiveWindow.ScrollRow = 1200
ActiveWindow.ScrollRow = 1166
ActiveWindow.ScrollRow = 1127
ActiveWindow.ScrollRow = 1094
ActiveWindow.ScrollRow = 1055
ActiveWindow.ScrollRow = 1021
ActiveWindow.ScrollRow = 992
ActiveWindow.ScrollRow = 969
ActiveWindow.ScrollRow = 940
ActiveWindow.ScrollRow = 908
ActiveWindow.ScrollRow = 874
ActiveWindow.ScrollRow = 834
ActiveWindow.ScrollRow = 791
ActiveWindow.ScrollRow = 762
ActiveWindow.ScrollRow = 744
ActiveWindow.ScrollRow = 728
ActiveWindow.ScrollRow = 705
ActiveWindow.ScrollRow = 678
ActiveWindow.ScrollRow = 638
ActiveWindow.ScrollRow = 604
ActiveWindow.ScrollRow = 581
ActiveWindow.ScrollRow = 561
ActiveWindow.ScrollRow = 547
ActiveWindow.ScrollRow = 532
ActiveWindow.ScrollRow = 518
ActiveWindow.ScrollRow = 498
ActiveWindow.ScrollRow = 480
ActiveWindow.ScrollRow = 461
ActiveWindow.ScrollRow = 443
ActiveWindow.ScrollRow = 423
ActiveWindow.ScrollRow = 400
ActiveWindow.ScrollRow = 376
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 339
ActiveWindow.ScrollRow = 321
ActiveWindow.ScrollRow = 301
ActiveWindow.ScrollRow = 278
ActiveWindow.ScrollRow = 260
ActiveWindow.ScrollRow = 243
ActiveWindow.ScrollRow = 229
ActiveWindow.ScrollRow = 215
ActiveWindow.ScrollRow = 200
ActiveWindow.ScrollRow = 188
ActiveWindow.ScrollRow = 177
ActiveWindow.ScrollRow = 166
ActiveWindow.ScrollRow = 157
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 143
ActiveWindow.ScrollRow = 134
ActiveWindow.ScrollRow = 125
ActiveWindow.ScrollRow = 118
ActiveWindow.ScrollRow = 109
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 94
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 71
ActiveWindow.ScrollRow = 66
ActiveWindow.ScrollRow = 58
ActiveWindow.ScrollRow = 53
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 28
ActiveWindow.ScrollRow = 26
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 23
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 1
Columns("F:F").Select
Selection.Copy
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("F:F").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A1").Select
ChDir _
"J:\IM\Projekte\ICeD\07 Testcenter\70 R 2007_P1-r0.5\10 Common\10 Cockpit\test\ _
Graphiken"
ActiveWorkbook.SaveAs Filename:= _
"J:\IM\Projekte\ICeD\07 Testcenter\70 R 2007_P1-r0.5\10 Common\10 Cockpit\test\ _
Graphiken\daten.xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Windows("Status Testvorbereitung_v0.2.xls").Activate
Windows("daten.xls").Activate
ActiveWindow.Close
End Sub


Anzeige
AW: fehlermeldung ? o.T.
21.09.2007 14:54:00
Gerd
Hallo Julia

Sub Gesamt()
Call Makro1
Call Makro6
End Sub


oder


Sub Makro6()
Call Makro1
End Sub


Gruß zurück Gerd

AW: fehlermeldung ? o.T.
21.09.2007 15:13:00
Julia
Hab es lokal getestet auf Laufwer H
Klappt prima
Jetzt will ich das bei mir auf das Netzlaufwerk zim laufen bringen geht nicht
Habe ein neues Makro erstell

Sub archiv()
Dim AlterName, NeuerName
AlterName = "J:\IM\Projekte\ICeD\07 Testcenter\70 R 2007_P1-r0.5\10 Common\10 Cockpit\test\ _
Graphiken\daten.xls"
NeuerName = "J:\IM\Projekte\ICeD\07 Testcenter\70 R 2007_P1-r0.5\10 Common\10 Cockpit\test\ _
Graphiken\_Archiv\" & Format((Date - 1), "YYYY.mm.dd") & " daten.xls"
Name AlterName As NeuerName
End Sub


Wenn ich dieses Makro ausführe kommt immer Projekt oder Biblithek nicht gefunden und dabei markiert er Date
Habe doch nix geändert auser dem Pfad
Verstehst du das?
Kleiner Wunsch es muss nicht ein Tab abgezogen werden. Zur Archivierung kann man gerne das heutige Datum immer nehmen

Anzeige
AW: Syntax f. Netzlaufwerkpfad gesucht
21.09.2007 16:34:51
Gerd
Hallo!
Kleiner Wunsch:
statt:
& Format((Date - 1), "YYYY.mm.dd") & " daten.xls"
dann
& Format(Date, "YYYY.mm.dd") & " daten.xls"
Bei Netzlaufwerkpfaden muss irgendwo ein Doppelbackslash \\ rein.
Ich habe aber kein Netz zum Testen u. weis nicht mehr genau wo rein.
Evtl. beantwortet dir dies ein anderer oder Du googelst danach.
Gruß zurück Gerd

AW: Syntax f. Netzlaufwerkpfad gesucht
21.09.2007 17:50:00
Julia
Aber wieso kmmt dann die Fehlermeldung bei Date und nicht bei dem Pfad?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige