Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Über VBA Makro in Excel DOS Befehle ausführen

Frage Microsoft Microsoft Office

Mitglied: Shaggy84

Shaggy84 (Level 1) - Jetzt verbinden

18.07.2007, aktualisiert 20.07.2007, 26746 Aufrufe, 8 Kommentare

Guten Morgen

Ich habe folgendes Problem. Ich möchte gerne in Excel ein VBA Makro schreiben, welches mir ermöglicht mehrere DOS Befehle nacheinander aus zu führen.

Momentan mache ich dies über CMD, es soll aber nun in Excel automatisiert werden, da ich dort die Ergebnisse dieser Befehle, eine TXT, später importiere.

Grüße, Shaggy84
Mitglied: 8644
18.07.2007 um 09:00 Uhr
Hi,

warum denn keine Batch-Datei? Hier kannst du genauso mitloggen!

Psycho
Bitte warten ..
Mitglied: bastla
18.07.2007 um 09:14 Uhr
Hallo Shaggy84!

In VBA gibt es dafür "Shell", allerdings würde ich auch, so wie Psycho Dad, eine Batchdatei empfehlen, und sei es nur wegen des zeitlichen Ablaufes: Mit "Shell" kannst Du zwar das Programm starten, aber es wird nicht gewartet, bis dieses zu Ende ist, sondern in VBA gleich die nächste Anweisung ausgeführt ...

Grüße
bastla
Bitte warten ..
Mitglied: Shaggy84
19.07.2007 um 13:46 Uhr
Das stellt kein Problem dar. Es soll nur eine kleine Anweisung ausführen:

01.
'MSINFO32 Report erstellen 
02.
Dim x 
03.
x = Shell("cmd /c winmsd.exe /report c:\msinfo32.txt /categories +SystemSummary+ComponentsStorage")
Jetzt soll die Befehlzzeile allerdings noch um das Attribut
01.
 /computer 123xyz 
erweitert werden.
Dieses Attribut "123xyz" würde ich gerne direkt einer Excel Zelle entnehmen. Kann mir jemand helfen, wie ich so etwas in den Code implementiere?
Bitte warten ..
Mitglied: bastla
19.07.2007 um 13:55 Uhr
Hallo Shaggy84!

Entweder ín eine Variable schreiben oder gleich direkt so:
01.
x = Shell("cmd /c winmsd.exe /report c:\msinfo32.txt /categories +SystemSummary+ComponentsStorage /" & Sheets("Tabelle1").Range("B9").Value)
Anstelle von Range() kannst Du auch Cells(Zeile, Spalte) verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: Shaggy84
19.07.2007 um 15:05 Uhr
Danke bastla, funktioniert wunderbar!

kannst du mir noch verraten, wie ich in VB Skript mehrere Eingaben im gleichen Fenster nacheinander ausführen kann?

Es geht um den Bewnutzerwechsel, die anschließende Eingabe des Passwortes, und das ausführen eines PRogrammes, aber sieh am besten selbst mal kurz hier:
01.
'MSINFO32 Report erzeugen 
02.
Dim x, y, z 
03.
x = Shell("runas /user:" & Sheets("Auswertung").Range("A29").Value & " cmd") 
04.
y = Shell(Sheets("Auswertung").Range("B29").Value) 
05.
z = Shell("/c winmsd.exe /computer " & Sheets("Auswertung").Range("C29").Value & " /report c:\msinfo32.txt /categories +SystemSummary+ComponentsStorage")
Die erste "x" Zeile wird noch ausgehührt. Danach wird im Fenster die Eingabe des Passwortes verlangt. Dieses möchte ich mit der "y" Zeile übergeben und anschließend "z" ausführen. Wenn ich nur x'se eingebe funktioniert es auch nicht und in einer Zeile kann ich es nicht schreiben.

Wo liegt der Trick?
Bitte warten ..
Mitglied: bastla
20.07.2007 um 09:37 Uhr
Hallo Shaggy84!

Der Trick wurde eigentlich oben schon genannt: eine Batch-Datei.

In der von Dir beschriebenen Form rufst Du 3 verschiedene Shells auf, die nix miteinander zu tun haben. Wenn Du es vorweg schaffst, alle erforderlichen Infos per VBA zu erhalten und daraus eine einzige Kommandozeile zu bauen, kann es klappen - einfacher ist es, per "Shell" nur eine einzelne Batchdatei aufzurufen, in welcher der Rest abgehandelt wird.

Ein manchmal auch funktionierender Ausweg könnte noch die Verwendung von "&" sein, um CMD-Befehle zu verknüpfen.

Grüße
bastla
Bitte warten ..
Mitglied: Shaggy84
20.07.2007 um 15:16 Uhr
Ich schau mal.

Es sollte im VBA Code bleiben, da ich direkt dort auf Excel Zellen zugreife. Wüsste net wie ich das aus einer Batch Datei machen sollte.

Ich find schon noch ne Lösung die ich dann auch hier präsentiere ;)
Danke für die schnelle Antworten
Bitte warten ..
Mitglied: bastla
20.07.2007 um 18:08 Uhr
Hallo Shaggy!

Einer Batchdatei kannst Du beim Aufruf ja eine Menge Parameter (die ausgelesenen Tabellenwerte) mitgeben ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Microsoft Office
gelöst CSV-Datei mit einem VBA Makro in Excel einlesen und leicht anpassen (5)

Frage von JoSiBa zum Thema Microsoft Office ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...