Avatar billede hmlfc Praktikant
08. oktober 2014 - 14:32 Der er 7 kommentarer

copy commando i cmd.exe excel

Jeg søger en macro så jeg kan køre en shell med cmd.exe som kan køre en copy funktion.

Det jeg sørger er at jeg i:

Cell 1A har en sti: c:\Test
Cell 2A har jeg et fil navn:  ja.csv

Jeg ønsker cmd.exe kan køre denne command ud fra celle infomationerne:

copy x.csv ja.csv  i folderen c:\test 


Håber det giver mening?

På forhånd tak
Avatar billede claes57 Ekspert
08. oktober 2014 - 15:20 #1
skriv den fulde copy kommando i en fil, og kald denne for fx flyt.bat
flyt.bat kan du kalde fra shell.
du skal muligvis lægge en kort pause ind efter fliskrivning og før shellkald
Avatar billede hmlfc Praktikant
08. oktober 2014 - 16:06 #2
Hej claes57

Lyder som en god ide .....

Hvordan laver jeg en bat fil med de information som kommer fra celle 1A og 2A?

pfh

tak
Avatar billede claes57 Ekspert
08. oktober 2014 - 16:37 #3
det kan nok klares uden bat-fil, prøv med

strSti = Range("A1").Value
strFil = Range("A2").Value
strCmd = "Copy " & strSti & "\x.csv " & strSti & "\" & strFil & " /Y"
RetVal = Shell(strCmd, 6)

jeg har sat en /Y ind i copy, så den overskriver hvis A2-filen findes i forvejen. Du har jo ikke mulighed for at trykke på J til overskriv når du ikke ser vinduet (jeg har lavet det usynligt, og uden fokus)
Avatar billede hmlfc Praktikant
08. oktober 2014 - 20:30 #4
Hej Claes

Jeg får en debug på sidste linie. Og når jeg holder mouse over skriver den    RetVal = empty
Avatar billede hmlfc Praktikant
09. oktober 2014 - 08:25 #5
Har løst det med denne:

strSti = Range("A1").Value
strFil = Range("A2").Value
strCmd = "Copy " & strSti & "\*.csv " & strSti & "\" & strFil & " "
Shell "cmd.exe /k " & strCmd & ""

men hvordan lukker jeg automatis cmd.exe vinduet?
Avatar billede claes57 Ekspert
09. oktober 2014 - 09:09 #6
godt fundet ud af.
/k udfører og bliver - du skulle have brugt /c udfører og lukker
se evt i en kommandoprompt
cmd /?
for yderligere.
Avatar billede bvirk Guru
14. oktober 2014 - 10:21 #7
Tror ikke umiddelbart det kan lade sig gøre fra en shell command alene, at få lukket et cmd vindue automatisk, når det der ønskes udført er en intern cmd command - er copy ikke det?
Måske tar jeg fejl.
Hvis cmd blot deltager i at starte et program kan det godt lukkes automatisk:
 
  shell "cmd /c winver"

eller en associeret fil
 
  shell "cmd /c start """" ""d:\et selfi.jpg"""

Man behøver så ikke shell for udføre filkopiering, FileCopy er en af vba bibliotekets subrutiner - men så fik lanceret shell og cmd.exe her i forummet;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester