Microsoft Excel

Herbers Excel/VBA-Archiv

excel dateien kopieren

Betrifft: excel dateien kopieren von: Max
Geschrieben am: 30.07.2014 12:33:44

Hallo Forum - Mitglieder,

ich habe folgendes Problem.

Ich habe ein Ordner mit sehr vielen Bildern. In meinen Zellen stehen Verzeichnisse drinn. Und meine Frage jetzt. Ich will, dass ich ein Button habe und wenn ich auf den Button draufdrücke, mir die Verzeichnisse in den Zellen abliest und diese Dateien in ein bestimmtes verzeichnis (z.B. C:\Max...\...) extrahiert.



Ist das möglich?



Vielen Dank im Voraus

  

Betrifft: und warum jetzt noch einmal die gleiche Frage? o von: neopa C (paneo)
Geschrieben am: 30.07.2014 12:43:31


Gruß Werner
.. , - ...


  

Betrifft: Doppelt hält besser :P owt von: Spenski
Geschrieben am: 30.07.2014 12:44:36




  

Betrifft: AW: excel dateien kopieren von: Michael
Geschrieben am: 30.07.2014 13:30:05

Hallo Max,

extrahiert oder kopiert? Oder gar verschiebt?

Wenn Du das nicht 500 mal machen willst, lohnt sich ein Makro gar nicht, da geht's händisch mit dem Explorer schneller.

Extrahieren:

Du rufst die Kommandozeilenversion von 7zip von Excel aus auf und übergibst die entsprechenden Parameter. Die sind etwas hakelig, da nicht DOS-konform (was *.* o.ä. angeht): zwei Stunden lesen und ausprobieren, dann tut das.

Kopieren:

Man kann alles mit Excel-Bordmitteln machen, aber schnell und einfach ist auch hier ein DOS-Aufruf aus EXCEL, mit dem Du die Geschichte ausführst.

Googel nach "Excel vba Kommandozeile aufrufen" oder so.

Alternative: Du stückelst Dir aus den hinterlegten Verzeichnissen die entsprechenden DOS-Befehle zusammen, also etwa so:

  A                B      C
1 von              nach   Befehl
2 c:\Bilder1\*.jpg c:\Max copy c:\Bilder1\*.jpg c:\Max
C2 enthält die Formel: ="copy "&A2&B2

Anschließend kopierst Du alle Befehle aus Spalte C ins Wordpad, speicherst sie (nicht als Text, sondern) als .bat ab und rufst diese auf.

Wenn Du es variabel haben möchtest, kannst Du die Formel in C auch in eine neue EXCEL-Datei ins erste Tabellenblatt setzen und diese dann als Textdatei mit der Endung .bat abspeichern (hab's jetzt nicht ausprobiert, müßte aber gehen), die Du dann händisch oder über Makro bzw. Button aufrufst.

Hast Du jemals mit der Kommandozeile, der guten "DOS-Box" gearbeitet?

Schöne Grüße,

Michael


  

Betrifft: AW: excel dateien kopieren-Nachtrag von: Michael
Geschrieben am: 30.07.2014 13:37:24

Ups!

In der Formel fehlt ein Leerzeichen zwischen A2 und B2, richtig also so:
="copy "&A2&" "&B2

Gruß,
M.


  

Betrifft: AW: excel dateien kopieren-Nachtrag2 von: Michael
Geschrieben am: 30.07.2014 14:05:53

Hallo Max,

das Grundgerüst sieht etwa so aus:

Option Explicit

Sub DOS_Aufrufen(ByVal Befehl As String)
  
  Dim objShell As Object
  Dim Kommando As String
  Kommando = "cmd /C " & Befehl
  Set objShell = CreateObject("WScript.Shell")
  objShell.Run Kommando, 1, True
  Set objShell = Nothing
  
End Sub

Sub machen()
  Dim zaehler As Long
  Dim Befehl As String
  
  zaehler = 2
  Befehl = Range("C" & zaehler).Value
  Do While Befehl <> ""
    DOS_Aufrufen (Befehl)
    zaehler = zaehler + 1
    Befehl = Range("C" & zaehler).Value
  Loop
End Sub
Hier werden alle Befehle ab C2 runterwärts ausgelesen und einzeln ausgeführt.

Fehlerhandling ist nicht vorhanden. Mann könnte sie noch abfragen und in die jeweilige Zelle der Spalte D schreiben. So setzt das Makro beispielsweise voraus, daß die Zielverzeichnisse vorhanden sind.

Schau Dir mal in der DOS-Box die Parameter von copy an:
C:\>copy /?
oder überprüfe jeweils vorher, ob das Zielverzeichnis vorhanden ist.

Ciao,

Michael


 

Beiträge aus den Excel-Beispielen zum Thema "excel dateien kopieren"