Avatar billede folj Forsker
15. januar 2007 - 23:45 Der er 6 kommentarer og
1 løsning

Visning af data, uden at fælles excelark bliver påtaget.

Vi har i firmaet et fælles excelark, som vi alle kan åbne og indtaste data i.

Nu vil man gerne lave en konstant visning af dataene på en fælles skærm, og inden jeg går i dang med projektet vil jeg lige trække på andres erfaringer, med hvordan man gør det mest problemfrit.

- visning skal foregå sådan at filen ikke er optaget, når andre brugere vil åbne arket og indtaste data.
- det skal også gerne være sådan at visningen opdaterer sig selv med jævne mellemrum (f.eks. hver 10. minut).

Den mulighed jeg først tænker på, er at lave en anden fil der trækker dataene via link ('indsæt kæde'), men det det resultere i at alle de tomme felter n. får værdien '0'.

Er der nogen der allerede har erfaring med noget tilsvarende, så vil jeg gerne trække på dem, men ellers lytter jeg også gerne til dem der bare har nogle gode ideer til hvordan det bedst gøres.
Avatar billede kabbak Professor
16. januar 2007 - 08:21 #1
Det med  værdien'0'

Funktioner > indstillinger > vis

fjern flueben ved vis Nulværdier
Avatar billede folj Forsker
16. januar 2007 - 10:28 #2
Jamen, så er det med link ('indsæt kæde') måske alligevel en relevant mulighed...

Så skal jeg "bare" opfinde noget vba der opdaterer dataene med jævne mellemrum - ved du lige hvordan det skrives i vba ?

:-) så lige at der står påtaget i overskriften - skulle selvfølgelig have været optaget...
Avatar billede kabbak Professor
16. januar 2007 - 14:46 #3
Sub OpdaterKæder()
' ved start af denne makro, opdateres kæder hver 5 minut
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
Application.OnTime Now() + TimeSerial(0, 5, 0), "OpdaterKæder"

End Sub
Avatar billede folj Forsker
17. januar 2007 - 11:38 #4
kabbak: tak for løsningen til opdatering med jævne mellemrum - havde ikke selv lige regnet ud at man på den måde kan lade funktionen kalde sig selv...

løsningen med link har jeg afprøvet med dur ikke i vort tilfælde - vi bruger nemlig 'insert comment' flittigt, til at notere hvornår og af hvem noget er tilføjet, og kommentarer er ikke med på den måde.

Jeg har siddet og arbejdet på en anden løsning, hvor jeg også bruger en anden fil til at vise det aktuelle indhold. Her har jeg så lavet en sub der åbner planfilen og trækker et kopi af det aktuelle ark, og lukker planfilen igen.

----- /kode -----
Sub PlanCopy()

Dim oWB As Excel.Workbook
Dim oRng As Excel.Range
Dim WorkbookToGetFrom As String
Dim WorkbookToGetTo As String

WorkbookToGetFrom = "planfilnavn.xls"
WorkbookToGetTo = ActiveWindow.Caption

Application.ScreenUpdating = False

On Error Resume Next
Set oWB = Workbooks.Open(Filename:=WorkbookToGetFrom, ReadOnly:=True)

    Windows(WorkbookToGetFrom).Activate
    Sheets(2).Copy Before:=Workbooks(WorkbookToGetTo).Sheets(1)
    Windows(WorkbookToGetFrom).Close

    Windows(WorkbookToGetTo).Activate
    Sheets(2).Delete
    Sheets(1).Name = "visningsark"
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveWindow.Zoom = 75

'  efter opstart, opdateres arket hver 5 minut
'    Application.OnTime Now() + TimeSerial(0, 5, 0), "PlanCopy"

End Sub
----- /kode -----

Jeg mangler bare lige lidt hjælp til finpudsningen:
- som det er nu, spørger den om man er sikker på at man vil slette et ark, men hvordan er det man kan undgå det ?
- hvad nu hvis planfilen fejler af en eller anden grund, hvordan håndterer jeg bedst det ?
Avatar billede kabbak Professor
17. januar 2007 - 11:48 #5
Sub PlanCopy()

    Dim oWB As Excel.Workbook
    Dim oRng As Excel.Range
    Dim WorkbookToGetFrom As String
    Dim WorkbookToGetTo As String

    On Error GoTo Gentag    ' udskyder optateringen til næste gang

    WorkbookToGetFrom = "planfilnavn.xls"
    WorkbookToGetTo = ActiveWindow.Caption

    Application.ScreenUpdating = False

    On Error Resume Next
    Set oWB = Workbooks.Open(Filename:=WorkbookToGetFrom, ReadOnly:=True)
    Windows(WorkbookToGetFrom).Activate
    Sheets(2).Copy Before:=Workbooks(WorkbookToGetTo).Sheets(1)
    Windows(WorkbookToGetFrom).Close
    Windows(WorkbookToGetTo).Activate
    Application.DisplayAlerts = False    ' INDSAT
    Sheets(2).Delete
    Application.DisplayAlerts = True    ' INDSAT
    Sheets(1).Name = "visningsark"
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveWindow.Zoom = 75
Gentag:

    '  efter opstart, opdateres arket hver 5 minut
    '    Application.OnTime Now() + TimeSerial(0, 5, 0), "PlanCopy"

End Sub
Avatar billede kabbak Professor
12. marts 2007 - 23:35 #6
hvordan går det ??
Avatar billede folj Forsker
15. marts 2007 - 00:38 #7
Jo tak, det går fin med mig - hvad med dig ?
Ja, du minder mig om, at det er på tide at få afsluttet spørgsmålet, så prøver jeg...
Heller ikke løsningen med at kopiere det planarket over i en speciel visningsfil var optimal, fordi når kopieringen er gennemført, så er overskrifterne ikke fastfrosset i det kopierde ark, som de var i planarket.

Den optimale løsning viste sig at være, at have en visningsfil, der kun bruges til at åbne arket i readonly-version, og afvikle åbnings-makroen hvert 5. minut. Jeg har lavet en færdig testversion, men brugerne der skal bruge stadset, har endnu ikke deres visningsskærm klar, så der ka' måske opstå nye krav, som jeg ikke har dækket ind.

Tak for hjælpen med at komme frem til løsningen. Jeg havde selvfølgelig håbet, at en eller anden på eksperten havde erfaring med noget tilsvarende, så jeg havde sparet at lave mislykkede forsøg, men points skal du ha' for hjælp til selvhjælp, og med svar på konkrete spørgsmål undervejs.
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