Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
batch befehlskette in vba umsetzen |
04.02.2020 08:08:52 |
Fritz Steiner |
|
|
|
04.02.2020 08:13:39 |
Fritz Steiner |
|
|
|
04.02.2020 09:13:53 |
Gast56701 |
|
|
|
04.02.2020 10:53:50 |
Fritz Steiner |
|
|
Von:
Fritz Steiner |
Datum:
04.02.2020 08:08:52 |
Views:
985 |
Rating:
|
Antwort:
|
Thema:
batch befehlskette in vba umsetzen |
Hallo liebe Leute,
ich habe mir zur Dateiverwaltung im Heimnetzwerk eine batch Datei erstellt, diese über vbs mit einer Excel Tabelle verknüpft und die .bat beim Starten im Hintergrund mit auszuführen. Das funktioniert so auch bestens. Nun ergibt sich aber das Problem, dass im Netzwerk das Ausführen der .vbs und auch der .bat extra bestätigt werden muss, was einfach nervt. Außerdem möchte ich nicht extra 3 Dateien haben, sondern am liebsten nur die .xlsm. Ich würde das Ganze daher gern optimieren und den Code in VBA übertragen und in einem Excel Makro ausführen.
Der Derzeitige Stand sieht so aus:
Es liegen insgesamt 3 Dateien vor. Eine .xlsm (Kennwort zum Bearbeiten gesetzt), eine .bat mit Befehlen und eine .vbs als Startintitiator für beide Dateien. Außerdem wird im Anschluss noch eine .txt erzeugt.
Die .vbs hat den code:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open _
("Pfad_und_Datei.xlsm")
If objWorkbook.ReadOnly = True Then
If MsgBox("Die Datei ist kennwortgeschützt bzw. wird zur Zeit bearbeitet. Soll die Datei schreibgeschützt geöffnet werden?", 33, "Datei wird verwendet") = 1 Then
objExcel.Visible = True
Else
objWorkbook.Close False
Set objExcel = Nothing
End If
Else
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "dat.bat",0,True
objExcel.Visible = True
End If
Beim Ausführen wird die Excel Tabelle geöffnet und im Hintergrund die .bat ausgeführt. Diese erstellt eine Übersicht über alle Dateien in bestimmten Ordnern, in denen die Zeichenfolge "log" vorkommt und außerdem eine Gesamtübersicht über die Dateistruktur in einem der Ordner.
Der Code der .bat lautet so:
echo %username% %computername% %date% %time% > user\%username%_%date%.txt
echo ------------------------------------ >> user\%username%_%date%.txt
echo. >> user\%username%_%date%.txt
echo log >> user\%username%_%date%.txt
echo ------------------------------------ >> user\%username%_%date%.txt
findstr /SIMP "log" H:\ "*.*" >> user\%username%_%date%.txt
findstr /SIMP "log" E:\ "*.*" >> user\%username%_%date%.txt
echo. >> user\%username%_%date%.txt
echo Struktur lokale Nutzerdaten >> user\%username%_%date%.txt
echo ------------------------------------ >> user\%username%_%date%.txt
cd H:\
tree H:\ /f /a >> user\%username%_%date%.txt
end
Anschließend übertrage ich die Informationen aus der generierten .txt Datei derzeit in ein neues Tabellenblatt innerhalb der vorliegenden Excel Tabelle, was nicht wirklich galant ist.
Ziel: Gibt es eine Möglichkeit die Befehle der .bat in ein Makro umzuformulieren um das gleiche Ergebnis zu erzielen (sich somit die .vbs zu ersparen) und dieses nachfolgend in ein neues Tabellenblatt zu schreiben, anstatt in eine zusätzliche .txt?
Ich hoffe ihr könnt helfen, ich wäre euch wirklich sehr dankbar. Leider habe ich nicht wirklich viel Ahnung von Programmierung und habe mir alle Codeschnipsel nur mühsam aus dem Internet zusammengetragen, bis ich ein Ergebnis hatte, mit dem ich für den Moment leben konnte.
LG Fritz
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
batch befehlskette in vba umsetzen |
04.02.2020 08:08:52 |
Fritz Steiner |
|
|
|
04.02.2020 08:13:39 |
Fritz Steiner |
|
|
|
04.02.2020 09:13:53 |
Gast56701 |
|
|
|
04.02.2020 10:53:50 |
Fritz Steiner |
|
|