Avatar billede the_edge Nybegynder
09. marts 2007 - 11:04 Der er 11 kommentarer og
1 løsning

Opret mappe.

Hvordan opretter man mappe med vbscript ? hvordan kopirer man dem andre steder hen ? jeg har dette kode indtil vider


Dim Input

'option explicit
'dim Initialer

    lengde = 0
    dim msgtekst
    msgtekst = "Indtast initaler"
    While lengde < 1
        Initialer = InputBox(msgtekst, "Indtast navn", "f.eks abc") 'her kommer input boksen som måler på lengden af initialer
        lengde = Len(Initialer)
       
    wend    
       
        while lengde <= 1 or lengde > 4  'tjekker om lengden er mindre end 1 og større end 5.
        Initialer = InputBox("Du intasted", "fejl" , Initialer) ' hvis den er det bliver vi herinde.
        lengde = Len(Initialer)
     
    wend

        if lengde > 1 And lengde < 5 then 'hvis lenden er mellem 1 og 4 så går vi herned.
        MsgBox ("Du indtasted: " & Initialer)
        end if

-----------------------------------------------------------------
den tomme mappe skal oprettes med initialer
Avatar billede supertekst Ekspert
09. marts 2007 - 11:16 #1
Lidt inspiration - hvori der også oprettes en mappe, hvis den ikke eksistere i forvejen:

Private Sub udførGem()
Dim sti As String

Rem check drev
    On Error GoTo fejl_drev
    ChDir Me.t_drev

Rem drev OK
    sti = Me.t_drev
    If Right(sti, 1) <> "\" Then
        sti = sti + "\"
    End If
   
Rem check mappe
    On Error GoTo opret_mappe
    ChDir sti + Me.t_mappe
   
Rem gem filen
    ActiveWorkbook.SaveAs sti + Me.t_mappe + "\" + Me.t_filnavn + ".xls"
    Exit Sub
   
opret_mappe:
    MkDir sti + Me.t_mappe
    Resume Next
   
fejl_drev:
    MsgBox ("Fejl i Drev-angivelse")
End Sub
Avatar billede killerclown Nybegynder
09. marts 2007 - 11:27 #2
Her oprettes biblioteket i c:\

    lengde = 0
    Set fso = CreateObject("Scripting.FileSystemObject")
    dim msgtekst
    msgtekst = "Indtast initaler"
    While lengde < 1
        Initialer = InputBox(msgtekst, "Indtast navn", "f.eks abc") 'her kommer input boksen som måler på lengden af initialer
        lengde = Len(Initialer)
       
    Wend   
       
        while lengde <= 1 or lengde > 4  'tjekker om lengden er mindre end 1 og større end 5.
        Initialer = InputBox("Du intasted", "fejl" , Initialer) ' hvis den er det bliver vi herinde.
        lengde = Len(Initialer)
     
    Wend

        if lengde > 1 And lengde < 5 then 'hvis lenden er mellem 1 og 4 så går vi herned.
        MsgBox ("Du indtasted: " & Initialer)
        fso.CreateFolder ("c:\" & initialer)
        end If

/Killer
Avatar billede the_edge Nybegynder
09. marts 2007 - 11:32 #3
hmm jeg får fejl på første linje.. tegnet er ugyldigt
Avatar billede the_edge Nybegynder
09. marts 2007 - 11:35 #4
cool... hvad gør  Set fso = CreateObject("Scripting.FileSystemObject") ?
Avatar billede morten_leth Nybegynder
09. marts 2007 - 11:35 #5
Dim Input

'option explicit
'dim Initialer

    lengde = 0
    dim msgtekst
    msgtekst = "Indtast initaler"
    While lengde < 1
        Initialer = InputBox(msgtekst, "Indtast navn", "f.eks abc") 'her kommer input boksen som måler på lengden af initialer
        lengde = Len(Initialer)
       
    wend   
       
        while lengde <= 1 or lengde > 4  'tjekker om lengden er mindre end 1 og større end 5.
        Initialer = InputBox("Du intasted", "fejl" , Initialer) ' hvis den er det bliver vi herinde.
        lengde = Len(Initialer)
     
    wend

        if lengde > 1 And lengde < 5 then 'hvis lenden er mellem 1 og 4 så går vi herned.
            MsgBox ("Du indtasted: " & Initialer)
            Set objFSO = CreateObject("Scripting.FileSystemObject")
            If not objFSO.FolderExists("C:\" & Initialer) Then
                Set objFolder = objFSO.CreateFolder("C:\" & Initialer)
            Else
                wscript.echo "mappen er der"
            End If
        end if
Avatar billede morten_leth Nybegynder
09. marts 2007 - 11:40 #6
tjah jeg lavede vel egentlig samme kode som killerclown gjorde bare lidt langsommere.. :D hehe men jeg tjekker på om biblioteket er der i forvejen...
en anden gang så vil jeg råde dig til at google sådan noget først.. hehe.. der findes tonsvis af meteriale derude...
scripting.filesystemobject er det object man skal initialisere for at kunne benytte sig af objfso.createfolder.. :D
Avatar billede killerclown Nybegynder
09. marts 2007 - 12:07 #7
Hehe ... Ja, den lå lige til højrefoden :o)

M.h.t. fso, så er der lidt, at tygge på her :
http://www.microsoft.com/technet/scriptcenter/guide/sas_scr_xfxi.mspx?mfr=true

/Killer
Avatar billede thesurfer Nybegynder
09. marts 2007 - 13:12 #8
Kontrol af længden på den indtastede tekst, kan omskrives til dette:

dim msgtekst
    msgtekst = "Indtast navn." & vbCrLf & vbCrLf & "Navnet skal bestå af mindst 1 tegn og maks 5 tegn."

    dim ok
    ok = false

    while ok = false

    initialer = InputBox(msgtekst, "Indtast navn", "f.eks abc")
    if len(initialer) > 0 and len(initialer) < 5 then ok = true
   
    wend

Det er mere logisk og forklarer også brugeren hvad der forventes af ham/hende.
Avatar billede thesurfer Nybegynder
09. marts 2007 - 13:13 #9
Man kunne også bare bruge Exit While i stedet for at bruge "ok = true".. men det bestemmer man selv..
Avatar billede the_edge Nybegynder
28. marts 2007 - 20:14 #10
hvem vil have point ?
Avatar billede killerclown Nybegynder
28. marts 2007 - 20:19 #11
Kan du ikke bare lukke den..
Det blev mere til en lille workshop end et spørgsmål, så for min skyld ingen alarm :o)

/Killer
Avatar billede morten_leth Nybegynder
28. marts 2007 - 20:20 #12
tjah jeg er faktisk ligeglad hvis du føler for at give mig så gør du bare det.. men får jeg ikke noget så bliver jeg ikke sur.. :D hehe
/Leth
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
Kategori
Kurser inden for grundlæggende programmering

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