folgendes Problem:
ich möchte das beim Öffnen eines bestimmten Excel Dokuments ein
Makro (zum Importieren von Text) automatisch startet.
Die Daten sollen jedes mal in eine neue Spalte importiert werden
damit die alten nicht überschrieben werden.
Wie kriegt man das Makro dazu automatisch zu starten?
Das "Textimportmakro" funktioniert hat, aber den Schönheitsfehler
die vorhandene Tabelle zu aktualisieren bzw. zu überschreiben.
Lässt sich der Vorgang automatisieren - möglichst ohne Benutzer-
eingaben, so das ich mich nur mit dem Dokument beschäftigen muß
wenn ich die Tabelle brauche?
Danke im voraus
uli
Private Sub Workbook_Open()
DeinMakroName
End Sub
DeinMakroName muss natürlich entsprechend ersetzt werden. Die
Ereignisprozedur Workbook_Open wird bei jedem Öffnen des Excel
Dokuments durchlaufen.
> Das "Textimportmakro" funktioniert hat, aber den Schönheitsfehler
> die vorhandene Tabelle zu aktualisieren bzw. zu überschreiben.
> Lässt sich der Vorgang automatisieren - möglichst ohne Benutzer-
> eingaben, so das ich mich nur mit dem Dokument beschäftigen muß
> wenn ich die Tabelle brauche?
Ja das lässt sich automatisieren. Du musst zuerst die erste frei Spalte
suchen und dann diese für den Import gebrauchen.
>
> Danke im voraus
> uli
Gruss
Martin Fischer
"uli" schrieb:
> ich möchte das beim Öffnen eines bestimmten Excel Dokuments ein
> Makro (zum Importieren von Text) automatisch startet.
> Die Daten sollen jedes mal in eine neue Spalte importiert werden
> damit die alten nicht überschrieben werden.
>
> Wie kriegt man das Makro dazu automatisch zu starten?
schreibe den Code in das Workbook_Open-Ereignis in DieseArbeitsmappe
> Das "Textimportmakro" funktioniert hat, aber den Schönheitsfehler
> die vorhandene Tabelle zu aktualisieren bzw. zu überschreiben.
> Lässt sich der Vorgang automatisieren - möglichst ohne Benutzer-
> eingaben, so das ich mich nur mit dem Dokument beschäftigen muß
> wenn ich die Tabelle brauche?
Passe in der Prozedur noch den Tabellenblattnamen an deine Umgebung an.
Private Sub Workbook_Open()
Dim wks As Worksheet
Dim strFile As String
Dim intCol As Integer
Set wks = Worksheets("Tabelle1")
strFile = "C:\Eigene Dateien\Dateiname.txt"
' letzte benutzte Spalte in Zeile 1
intCol = wks.Cells(1, Columns.Count).End(xlToLeft).Column
' Textdatei einlesen
With wks.QueryTables.Add(Connection:= _
"TEXT;" & strFile, Destination:=wks.Cells(1, intCol + 1))
.Refresh BackgroundQuery:=False
End With
End Sub
--
Mit freundlichen Grüßen
Melanie Breden
Microsoft MVP für Excel
Wenn ich dies noch wüßte wäre ich glücklich. ;-)
Grüße vom
uli
über Extras - Makros - Sicherheit die Stufe auf Gering
setzen. Aber Vorsicht, alle Makros werden ausgeführt, auch
Makrovieren. Besser ist das Makro digital zu signieren.
Wie das geht findest du in der Hilfe.
mfg
Willi
>-----Originalnachricht-----
>.
>
Wie bewege ich Excel dazu die Aenderungen automatisch
abzuspeichern
und sich gegebenenfalls ohne irgendwelche Fragen zu
beenden?
klingt komisch, ist aber so. Ich mißbrauche Excel nur um
per Batch gesammelte Daten zu speichern und irgendwann
eine Statistik zu machen.
Grueße vom
uli
"uli" schrieb:
> Wie bewege ich Excel dazu die Aenderungen automatisch
> abzuspeichern
wenn diese Datei noch die aktive ist, dann einfach:
ActiveWorkbook.Close True
> und sich gegebenenfalls ohne irgendwelche Fragen zu
> beenden?
> klingt komisch, ist aber so. Ich mißbrauche Excel nur um
> per Batch gesammelte Daten zu speichern und irgendwann
> eine Statistik zu machen.
die Excel-Anwendung beendest du mit:
Application.Quit