Avatar billede spoi Nybegynder
03. april 2007 - 07:06 Der er 9 kommentarer og
1 løsning

opdatere filer baseret på Excel

Hej

Jeg har omkring 2x120(ens parvis) filer baseret på en bestemt skabelon

Hvis skabelonen med tiden går hen og ændrer sig lidt kan jeg så opdatere denne ændring på de filer der allerede er lavet via denne fil? Det er ganske ok, hvis man skal ind på hver enkelt dokument og opdatere. Det er stadig bedre end at starte forfra.

LN
Avatar billede supertekst Ekspert
03. april 2007 - 08:34 #1
Indholdet fra de enkelte filer, baseret på "den gl. skabelon" skal vel fastholdes i den nye?
Avatar billede supertekst Ekspert
03. april 2007 - 10:38 #2
Udgave 1 - indholdet fra bestående v-filer flyttes uændret og gemmes i nyt skabelon-format:

Rem Opdatering af ændret skabelon
Rem =============================
Const vSti = "C:\instruktioner\version\"
Sub knap()
    findVfiler
   
    MsgBox ("Opdatering af v-filer m/ændret skabelon er udført")
End Sub
Private Sub findVfiler()
Dim fs, f, f1, fc, s

Rem Søg efter versions-fil
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(vSti)
    Set fc = f.Files
    For Each f1 In fc
        If LCase(f1.Name) <> "skabelon.xlt" Then
            opdaterVfil f1.Name
        End If
    Next
End Sub
Private Sub opdaterVfil(filNavn)
Dim xlT, xlS, antalRæk, antalKol, knr

    knr = Left(filNavn, 4)
   
Rem Åbn ændrede skabelon
    Set xlT = CreateObject("Excel.application")
    With xlT
        .Visible = False
        .Workbooks.Open Filename:=vSti + "Skabelon.xlt"
    End With
   
Rem Åbn v-filen
    Set xlS = CreateObject("Excel.application")
    With xlS
        .Visible = False
        .Workbooks.Open Filename:=vSti + filNavn
       
        antalRæk = .ActiveCell.SpecialCells(xlLastCell).Row
        antalKol = .ActiveCell.SpecialCells(xlLastCell).Column
    End With
   
Rem flyt data fra V-fil til ny skabelon
    For k = 1 To antalKol
        For r = 1 To antalRæk
            xlT.Cells(r, k) = xlS.Cells(r, k)
        Next r
    Next k
   
Rem luk bestående v-fil
    xlS.ActiveWorkbook.Close
    xlS.Application.Quit
    Set xlS = Nothing
   
Rem gem ny version af v-fil - afbryd evt. meddelelser
    xlT.Application.DisplayAlerts = False
   
    xlT.ActiveWorkbook.SaveAs vSti + knr + "v.xls"
    xlT.ActiveWorkbook.Close
    xlT.Application.Quit
    Set xlT = Nothing
End Sub
Avatar billede spoi Nybegynder
03. april 2007 - 10:39 #3
Ja data skal men feks kan det over tid ske at der kommer ekstra felter ind med nye data. Eller at et felt slettes og ikke benyttes mere.

Men ja ellers skal data bibeholdes.

På de enkelte filer har jeg en knap der kan hente fra de store ark med alle data.

LN
Avatar billede supertekst Ekspert
03. april 2007 - 10:56 #4
Kan det styres via celler i skabelonen - formler - formatering - eller ?
Avatar billede spoi Nybegynder
03. april 2007 - 11:12 #5
Øhhh hvad mener du.

prøver at forklare hvad jeg er ved at lave - du er jo snart med til hele opgaven kan jeg se;O).

Er ved at overføre nogel pakkerivejledninger til excel. de har hidtil ligget i papir format. Disse vejledninger skal være versionsstyret og pakkeriet skal kun kunne se den nyeste version(og skal ikke kontant sige ja til makroer).

Alle filer er ens oprbygget.
Tænkte så at det kunne være smart at oprette en excelfil der indeholdt alle data. Og så fra de enkelte filer hente data.

Nu her i  oprettelsestidspunktet eller hvis der kommer nye kunder kunne det dog være smart at oprette alle filer på en gang ud fra skabeloner.

I selve filerne(skabelonen er der nogle beregnede felter) bla datoer. Ellers er det bare alm data der via makro føres fra det store ark(vedligeholdeslesark) med alle kunder til de enkelte filer.

I de situationer hvor der rettes i en vejledning rettes der i selve det store (vedligeholdesark) og fra den pågældende vejledning(kundebestemt) hentes data så over.

Prøver så at forudse alle de ting der kan komme.

Det kan nok ikke helt undgås at der over tid kommer nogle større ændringer på filerne end blot datavedligeholdese. At der feks forsvinder et felt eller kommer et nyt felt. Her skal jeg jo så selvfølgelig rette i de makroer der henter data så de leveres i de enkelte felter.

Men stdig kunne det være rart ikke at skulle slette eller oprette et felt manuelt på alle filer - men bare kunne rette i skabelonen. Opdater og ja så hente data igen så de placeres korrekt.

Og ja det giver sikkert noget rod med daoerne??

Har gjort opalds i mine skabeloner til at der kan komme ekstre felter nederes i filerne, så det hele ikke rykker sig.

Giver det hele mening?

LN

LN
Avatar billede supertekst Ekspert
03. april 2007 - 11:45 #6
Det jeg mener og det som du også selv kommer ind på:

Lidt tanker herom:
"Hvis man via skabelonen - når denne over tid ændres - kunne se hvilke felter, der fremover skulle være gældende - så ville man jo kunne styre opdateringen af v-filerne herfra. Dettes kunne være at cellerne i skabelonen havde en bestemt farve el. lign. Hvis et felt fjernes i skabelonen - så ville det tilsvarende felt fra v-filen ikke komme med. Hvis et felt tilføjes vil det jo fremgå af skabelonen".

I/du har aldrig overvejet om en database-løsning ville være mere fleksibel?
Avatar billede spoi Nybegynder
03. april 2007 - 15:12 #7
Jo har overvejet access - men kender ikke noget til Access.
Og det er noget de ret hurtigt har brug for i pakkeriet.

Men version 3 er planen at jeg vil have den over i access.
Er i gang med version 1 nu - så det har lidt udsigter - mit skud er efter sommerferien.

LN
Avatar billede spoi Nybegynder
03. april 2007 - 15:13 #8
Hvad med tekst. Kunne man ikke sige at udgåede felter indeholder rød skrift?

LN
Avatar billede spoi Nybegynder
03. april 2007 - 15:42 #9
hmmm tror jeg lige lader lige denne her ligge et øjeblik. ;O)

LN
Avatar billede spoi Nybegynder
10. oktober 2007 - 06:51 #10
hmm kan ikke lige se en løsning andet end hårdt manule arbejde ;O)
LN
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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

IT-JOB

Rambøll Management Consulting

Senior AI Engineer

Riskpoint A/S (Riskpoint Solutions Limited)

IT Business Analyst

JP/Politikens Hus

Digital Workplace Supporter