online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon peko vom 29.12.2019, 22:59 Options

Lösung

Automatische Verzeichnisermittlung

Hallo liebe Helfer!

Ich habe in EXCEL folgendes VBA-Makro geschrieben:

Sub DateiSchreiben()
dp = ActiveWorkbook.Path
dl = Left(dp, 3)
ChDrive dl
ChDir dp
Workbooks("Vorlage.xls").Open
ds = Cells(2, 1)
Workbooks("Vorlage.xls").Close
neudatei = Cells(1, 1) & ".xls"
FileCopy "Vorlage.xls", neudatei
Cells(1, 1) = Left(neudatei, Len(neudatei) - 4)
Cells(2, 1) = ds
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

Das Makro existiert in der Datei "Neu anlegen.xls", die in der Zelle A1 einen Dateinamen enthält, z.B. "xyz".

In der Datei "Vorlage.xls" (im gleichen Verzeichnis) ist die Zelle B1 mit einem Text belegt, z.B. "Text".

Wird das Makro in "Neu anlegen.xls" gestartet, erzeugt es die Datei "xyz.xls" und beschreibt in dieser die Zelle B1 mit "Text".

Damit die neue Datei "xyz.xls" im gleichen Verzeichnis wie die Dateien ""Neu anlegen.xls" und "Vorlage.xls" entsteht, sorgen die ersten 4 Zeilen des Makros (Feststellen und Anwählen des Laufwerkes und des Pfades). Dies ist notwendig, wenn nicht zuerst EXCEL gestartet und dann die Datei "Neu anlegen.xls" geöffnet wird, sondern die Datei "Neu anlegen.xls" z.B. aus dem Explorer geöffnet wird.

So weit, so gut. Auf meinem heimischen Computer läuft das alles prima. Im Netzwerk in meiner Schule, wo sich die Dateien auf dem Server namens "srv" in einem beliebigen Verzeichnis befinden, läuft das allerdings nicht.

Wie muss ich die ersten 4 Zeilen meines Makros verändern oder ergänzen?

Ich weiß, dass sicher nur erfahrene VBA-Programmierer meine Frage beantworten können, aber vielleicht und hoffentlich gibt es unter Euch so jemanden.

Vielen herzlichen Dank jedenfalls im Voraus.

peko


Antwort schreiben

Antwort 1 von Marie vom 30.12.2019, 03:37 OptionsLösung

Lösung
Das liegt daran, dass der externe Server den Pfadnamen \\externerServer hat, also DU scheiterst an den Zeilen
dl = Left(dp, 3)
ChDrive dl
ChDir dp

aber die Zeilen brauchst Du doch gar nicht, wenn Du das Verzeichnis kennst, dann benutzt Du das dann halt eben immer so:
Dim dp As String
dp = ActiveWorkbook.Path
Workbooks.Open (dp & "\Vorlage.xls")

Ferner hast Du zeilen und Spalten verwechselt:
ds = Cells(2, 1)

Cells(2, 1) ist zeile 2 Spalte 1, also A2, in A2 hast Du aber nichts stehen. Wenn der Text in B1 steht, dann muss es heißen :
ds = Cells(1, 2)
desweiteren:
FileCopy "Vorlage.xls", neudatei
geht bei mir auch nicht ohne Pfadangabe, keine Ahnung wieso das bei Dir läuft.

Also hier Dein Code, von dem ich annehme, dass er funktionieren müsste wie Du es möchtest:

Gruß Marie

Sub DateiSchreiben()
Dim dp As String
Dim ds As String

dp = ActiveWorkbook.Path & "\"
Workbooks.Open (dp & "Vorlage.xls")
'ds = Cells(2, 1) falsch, ist Zelle A2 in neu anlegen.xls
ds = Workbooks("Vorlage.xls").Sheets("Tabelle1").Cells(1, 2)
Workbooks("Vorlage.xls").Close
neudatei = Cells(1, 1) & ".xls"
FileCopy dp & "Vorlage.xls", dp & neudatei
Cells(1, 1) = Left(neudatei, Len(neudatei) - 4)
Cells(2, 1) = ds
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

Antwort 2 von peko vom 30.12.2019, 14:04 Options

Hallo Marie,

leider komme ich erst im neuen Jahr dazu, Deinen Vorschlag auszutesten. Er klingt aber immerhin jetzt schon recht plausibel. Erst einmal danke für Deine Mühe, ich werde hier noch eine Rückmeldung schreiben.

Bis dahin guten Rutsch ins neue Jahr!

Gruß
Peter

Antwort 3 von peko vom 09.01.2020, 19:54 Options

Hallo Marie,

ich habe Deinen Vorschlag inzwischen zu Hause getestet, er funktioniert. Was noch aussteht, ist ein Test im Netzwerk.

Übrigens doch: A2 = cells (2,1)

Vielen Dank für Deine Mühe!

Gruß
Peter

Antwort 4 von peko vom 10.01.2020, 21:06 Options

Hallo Marie,

vielen Dank! Dein Vorschlag klappt auch in unserem Netzwerk. Damit warst Du eine große Hilfe. Noch einmal herzlichen Dank.

Liebe Grüße
Peter

Ähnliche Themen

Automatische Miniaturansicht
mxuxix  15.02.2007 - 270 Hits - 1 Antwort

automatische benutzeranmeldung aktivieren
broah  19.05.2007 - 346 Hits - 1 Antwort

automatische windows updates
Viper01  02.02.2008 - 125 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026