Ich bin mit meinen bescheidenen Excelkenntnissen mal wieder am Ende. Ich habe ein Makro, das mir eine Datei mit der Endung .ALG öffnet und die Daten, die diese Datei enthält, in eine andere Exceltabelle hineinkopiert. Da habe ich schon mein erstes Problem. Am Ende des Makros soll die Datei, aus der die Daten stammen (.ALG) geschlossen werden. Nun kommt beim Beenden die Meldung, das eine große Menge Daten in der Zwischenablage vorhanden sind und damit auch die Abfrage ob diese dort verbleiben sollen oder gelöscht werden sollen. Wie kann man in das Makro einarbeiten, dass diese Abfrage immer mit NEIN bestätigt wird?
Das war die eine Frage. Die zweite Frage ist, kann man beim Starten des Makros eine Box öffnen lassen, in der man den Dateinamen von der .ALG Datei eingeben kann, von der die Daten eingelesen werden sollen, allerdings ohne die Dateiendung .ALG?
Ein Beispiel:
In dem Verzeichnis liegen Dateien deren Namen immer ein Datum wiederspiegeln. So z.B. 03010800.ALG, 03010700.ALG, 03010600.ALG. Möchte ich jetzt die Daten von der Datei 03010800.ALG auslesen und in meine Tabelle kopieren, wäre es schön, wenn eine Eingabebox öffnen würde, in der ich nur 030108, also nur das Datum (JJ/MM/TT) ohne die beiden Nullen und ohne .ALG, da diese Bezeichnung bei allen weiteren Dateien gleich ist, eingeben bräuchte und der Inhalt dieser Datei würde dann kopiert.
Ich habe mal mein bereits bestehendes Makro hier mit reingeschrieben.
Sub Textdatei_laden()
Workbooks.OpenText Filename:="R:\Hystorisches Alarmarchiv\03010800.ALG", _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1))
Range("A1:K150").Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
Windows("03010800.ALG").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
ActiveWindow.Close
End Sub
Ich hoffe, dass mich jemend von Euch kleinen Helferlein unterstützen kann. Für die Mühe schon mal im voraus besten Dank,
Oliver