Avatar billede hepygula Nybegynder
08. april 2007 - 14:20 Der er 10 kommentarer og
1 løsning

Lave en ny mappe under gem som, hvis den ikke er oprettet.

Jeg er ved at lave et måleraflæsnings program.

Men jeg mangler lige den funktion, der gør at når man trykker på kommano knappen ( gem og udskriv ). At den så først kigger efter om mappen den skal gemme i er der el. ej.

Den skal kigge i G:\måleraflæsning

Og mappen den skal kigge efter kunne evt. hedde vogngade_9

Vogngade kommer fra en dropdown, i celle (B4)  ( Datavalidering )

9 = autonummering, findes i celle D8

Autonummeringen virker fra Thisworkbook og et modul.

Hvis du / i vil se hvordan det er lavet, er der en henvisning her :

http://www.eksperten.dk/spm/768588
Avatar billede kfdk Nybegynder
08. april 2007 - 14:36 #1
Når vinduet "Gem som" er åbent, er der nogle ikoner på værktøjslinien - bl.a. en mappe med noget der ligner en stjerne i toppen (ikon nr. 5 fra venstre). Dette ikon opretter en ny mappe...
Avatar billede kfdk Nybegynder
08. april 2007 - 14:37 #2
...undskyld, jeg læste ikke hele spørgsmålet.!! Vender tilbage senere...
Avatar billede hepygula Nybegynder
08. april 2007 - 14:40 #3
Kan du evt. fortælle mig hvordan jeg kan gøre det automatisk via vba ?

Da der er mange gange jeg skal gøre det i løbet af en dag.
Avatar billede word-hajen Nybegynder
08. april 2007 - 15:41 #4
Start med at sætte en reference til Microsoft Scripting Runtime; herefter kan du bruge nedenstående kode (obs! du skal lige sørge for at få hentet de rigtige data til dit foldernavn) til at tjekke, om folderen eksisterer. Hvis ikke, oprettes den. Vær i opmærksom på, at dine data ikke må indeholde specialtegn (såsom /,.;)
***********

Private Const m_strParentFolder As String = "G:\måleraflæsning"

Sub CheckAndCreateFolder()
    Dim objFS As New Scripting.FileSystemObject
    Dim strFolder As String
    Dim strFullPath As String
   
    strFolder = "Vogngade_9" 'her skal du selvfølgelig hente de rigtige data
    strFullPath = objFS.BuildPath(m_strParentFolder, strFolder)
   
    If Not objFS.FolderExists(strFullPath) Then
        objFS.CreateFolder strFullPath
    End If
   
    Set objFS = Nothing
End Sub

I øvrigt kan du selvfølgelig få strikket din sti til folderen sammen i et hug; jeg kan bare godt lide at skille tingene lidt ad.
Avatar billede hepygula Nybegynder
08. april 2007 - 15:54 #5
Hej word-hejen.

Jeg er ikke helt stiv i hvor jeg finder en reference til microsoft scripting runtime.

Så jeg håber at du kan føre mig frem til hvor jeg finder det. :-)
Avatar billede hepygula Nybegynder
08. april 2007 - 16:06 #6
Hej word-hejen

lige et spørgsmål mere.

Jeg har også lige været ved at kigge den vba kode igennem du sendte.

Jeg har lige et spørgsmål. henter den info til om filen er oprettet i cellerne D8 og B4?
Avatar billede word-hajen Nybegynder
08. april 2007 - 16:19 #7
hej hepygula

Referencer sætter du inde i vba ved at klikke på Tools-References. Her kommer så en liste med alle mulige (og umulige) ting og sager. De referencer, som vba allerede har "krydset af" på forhånd, står øverst, men derefter står de andre i alfabetisk orden. Så bare dernedaf i listen indtil du finder Microsoft Scripting Runtime. Hak den af.

Min ovenstående kode henter IKKE det mappenavn (folder), som du gerne vil have tjekket/oprettet (nu skriver du godt nok fil i ovenstående kommentar, men jeg går ud fra, at vi stadig taler om en mappe som beskrevet i dit oprindelige spørgsmål).

Det er linjen
strFolder = "Vogngade_9"
der skal ændres. Jeg skal nok hjælpe dig, men jeg skal lige høre - har du kun ét ark i din Excel-fil - hvis ikke, hvad hedder selve arket, hvor data om mappenavnet skal hentes fra?

I øvrigt kan jeg anbefale at navngive celler - og giver gerne en intro til, hvad det er :-)
Avatar billede hepygula Nybegynder
08. april 2007 - 16:33 #8
Word-hejen.

Jeg mente godt nok en mappe og ikke en fil. det må du undskylde hvis jeg fik dig forvirret.

Jeg har 4 ark i min excel-fil. og det er den der hedder "faktura" det skal hentes info fra.

Jeg vil gerne have mere intro om hvordan jeg giver cellerne navne. men troede ikke at man kunne gøre det når det ene felt var en dropdown.

Men er da villig til at lære noget nyt. :-)
Avatar billede word-hajen Nybegynder
08. april 2007 - 17:22 #9
hepygula

Du kan godt navngive en celle, selv om det er en dropdrown. Stil dig i cellen, klik i det felt, hvor du normalt kan se cellenavnet (B4), skriv i stedet (f.eks.) Gade. Klik derefter på D8, klik igen i feltet med cellenavnet, skriv Nummerering (igen et eksempel - du bestemmer selvfølgelig, hvad de skal hedde). Hvis du så derefter bruger min ovenstående kode, skal du erstatte linjen:

strFolder = "Vogngade_9" 'her skal du selvfølgelig hente de rigtige data
med
strFolder = ActiveWorkbook.Names("Gade").RefersToRange.Value & "_" & ActiveWorkbook.Names("Nummerering").RefersToRange.Value

Navnene, der er skrevet i (""), skal selvfølgelig modsvare de navne, som du har valgt at give dine celler i arket.

Navngivne celler er en god måde at styre på - forestil dig f.eks. at du på et tidspunkt tilføjer/sletter en kolonne, så dine nuværende B- og D-kolonner får "nyt navn". Så ville du - hvis du ellers refererede til B4 og D8 - også skulle huske at ændre din kode.
Avatar billede hepygula Nybegynder
08. april 2007 - 17:45 #10
Word-hejen

Ja, det kan jeg godt se at det er smarter. :-)

jeg havde ikke lige tænkt så langt. Men har nu fået lagt kode ind og den virker bare som den skal.

Hvis du ligger et svar, så giver jeg point.

Forsat god påske.
Avatar billede word-hajen Nybegynder
08. april 2007 - 19:01 #11
Super. God påske til dig ... og svar ;-)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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