Microsoft Excel

Herbers Excel/VBA-Archiv

MD und copy

Betrifft: MD und copy von: Dos_Fan
Geschrieben am: 20.10.2014 06:00:04

Hallo und guten Morgen
in einer Tabelle habe ich in Spalte C, ab Zeile 2 Dos-Befehle.
Es sind "MDs" und COPY-Befehle.
z.B. MD 456.88.11.aa und weitere und COPY 20141011.pdf \456.88.11.aa\doku.pdf
Es sind pro Sitzung jeweils ca 250 Befehle auszuführen.
Ich möchte gerne, nach Änderung des Excel-Sheets, diese Befehle mit vba ausführen lassen, statt die Befehle immer in einen Batch-Befehl einfügen zu müssen.
Kann mir jemand helfen - jetzt schon zum voraus besten Dank.
Dos_Fan

  

Betrifft: AW: MD und copy von: Uwe Küstner
Geschrieben am: 20.10.2014 09:15:34

Hallo,

in VBA gibt es die Entsprechungen

MkDir "VERZ1" ' Verzeichnis/Ordner neu erstellen.
FileCopy Quelldatei, Zieldatei ' Quell- in Zieldatei kopieren.

Gruß Uwe


  

Betrifft: AW: MD und copy von: Dos_Fan
Geschrieben am: 20.10.2014 09:21:25

Hallo Uwe
besten Dank, aber damit kann ich wenig anfangen.
Wie lautet das Makro um die Werte, bwz. Befehle in ein VBA zu bringen?
Danke
Dos_Fan


  

Betrifft: Uwes AW hat genausoviel InfoGehalt wie die Frage! von: Luc:-?
Geschrieben am: 20.10.2014 09:34:34

;->
Gruß, Luc :-?


  

Betrifft: AW: MD und copy von: Tino
Geschrieben am: 20.10.2014 09:34:02

Hallo,
evtl. so

Sub Beispiel()
Dim rng As Range

With Tabelle1 'Tabelle anpassen
    Set rng = .Range("C2", .Cells(.Rows.Count, 3).End(xlUp))
End With

For Each rng In rng.Cells
    If rng.Value <> "" Then
        Shell rng.Value, vbHide
    End If
Next rng

End Sub
Gruß Tino


  

Betrifft: AW: MD und copy von: Dos_Fan
Geschrieben am: 20.10.2014 09:57:21

Hallo Tino
Fast!
Excel meldet einen Laufzeitfehler ( 53 ).
Dos_Fan


  

Betrifft: ohne Hintergrundwissen, kein Plan! ... von: Tino
Geschrieben am: 20.10.2014 10:28:33

Hallo,
dazu kann ich so nicht sagen ohne den Code zu kennen und was geanu alles gemacht wird.

Aus der Hilfe:

Datei nicht gefunden (Fehler 53)
Zusatzinfo 

Die Datei wurde an der angegebenen Stelle nicht gefunden. Dieser Fehler hat die folgenden  _
Ursachen und Lösungen: 

Eine Anweisung (zum Beispiel Kill, Name oder Open) bezieht sich auf eine Datei, die nicht  _
vorhanden ist. 
Überprüfen Sie die Schreibweise des Dateinamens und die Pfadangabe. 

Es wurde versucht, eine Prozedur in einer Dynamic Link Library (DLL) oder einer Macintosh Code- _
Ressource aufzurufen, aber der im Lib-Abschnitt der Declare-Anweisung angegebene Name der Bibliotheksdatei oder der Ressourcendatei wurde nicht gefunden. 
Überprüfen Sie die Schreibweise des Dateinamens und die Pfadangabe. 

In der Entwicklungsumgebung tritt dieser Fehler auf, wenn Sie ein nicht vorhandenes Projekt ö _
ffnen oder eine nicht vorhandene Textdatei laden wollen. 
Überprüfen Sie die Schreibweise des Projekts oder Dateinamens und die Pfadangabe. 

Weitere Informationen erhalten Sie, wenn Sie das fragliche Element auswählen und F1 (unter Windows) oder HILFE (beim Macintosh) drücken. 

Gruß Tino


  

Betrifft: AW: MD und copy von: Dos_Fan
Geschrieben am: 20.10.2014 11:18:37

Hallo,
also: in C2 bis C5 stehen folgende "Dos Befehle".

md verzeichnis1
md verzeichnis2
copy hans.pdf verzeichnis1\fritz.pdf
copy sepp.pdf verzeichnis2\meier.pdf
Diese Zeilen kann ich beliebig anpassen, Sie sind aus einer anderen Tabelle verkettet.

Die Verzeichnisse, bzw. die zu kopierenden Dateien sollen alle im gleichen Pfad stehen,
wie die VBA/Excel-Datei.
muster_vba.xlsm liegt momentan in c:\vba_muster\
Vielleicht hift dies weiter.
Dos_Fan


  

Betrifft: AW: MD und copy von: Dos_Fan
Geschrieben am: 20.10.2014 11:19:35

Thema ist natürlich noch offen


  

Betrifft: AW: MD und copy von: Dos_Fan
Geschrieben am: 20.10.2014 11:19:41

Thema ist natürlich noch offen


  

Betrifft: ok. letzter versuch von: Tino
Geschrieben am: 20.10.2014 11:51:39

Hallo,
noch ein Versuch.

Sub Beispiel()
Dim rng As Range

With Tabelle1 'Tabelle anpassen
    Set rng = .Range("C2", .Cells(.Rows.Count, 3).End(xlUp))
End With

For Each rng In rng.Cells
    If rng.Value <> "" Then
        Shell "cmd.exe /k " & rng.Value, vbHide
    End If
Next rng

End Sub
Gruß Tino


  

Betrifft: AW: ok. letzter versuch von: Dos_Fan
Geschrieben am: 20.10.2014 13:49:18

Hallo
warum so kompliziert, wenn es auch einfacher geht.
Ich habe die Lösung.
Zuerst alle Zeilen für Batch aufbereiten (dos-befehle).
Dann Script für Dos schreiben.
Dos-File ausführen lassen.
Dos-File wieder löschen
Gruss
DosFan

und danke trotzdem für die Hilfe.


  

Betrifft: AW: ok. letzter versuch von: Dos_Fan
Geschrieben am: 20.10.2014 13:50:01

Hallo
warum so kompliziert, wenn es auch einfacher geht.
Ich habe die Lösung.
Zuerst alle Zeilen für Batch aufbereiten (dos-befehle).
Dann Script für Dos schreiben.
Dos-File ausführen lassen.
Dos-File wieder löschen
Gruss
DosFan

und danke trotzdem für die Hilfe.


  

Betrifft: weis nicht ob das einfach ist. von: Tino
Geschrieben am: 20.10.2014 14:29:59

Hallo,
könnte man bestimmt auch ohne Umweg im vba durchführen!
Egal!

Gruß Tino