Avatar billede nlr2000 Nybegynder
02. marts 2006 - 10:05 Der er 11 kommentarer og
1 løsning

Genskabe originale formler (evt. via makro)

Engelsk Excel.

Jeg håber ikke, følgende er for uforståeligt!

Jeg har et regneark (c:\original.xls), som indeholder indtastningsfelter i de første 30 linier og en masse formler i dele af resten. 

Andre brugere bruger regnearket, som åbner sig i en kopi i skrivebeskyttet tilstand. De indtaster i indtastningsfelterne, MEN nogle gange overskriver de nogle formler med tal.

Jeg kunne godt tænke mig, at brugerne, efter at have overskrevet nogle formler, har mulighed for at genskabe formlerne i det skrivebeskyttede ark, så de er ligesom i originalen. Man kan selvfølgelig bare åbne originalarket igen (i skrivebeskyttet tilstand), men så forsvinder alle andre indtastninger.

IDÉ:
Man kan måske i en makro bede den skrivebeskyttede version om at "refreshe" dele arket, så originalens formler genoprettes. Men
1) hvordan refresher man en et skrivebeskyttet ark og endnu vigtigere:
2) hvordan refresher man kun dele af et skrivebekyttet ark, f.eks.("k30:p45") (så andre indtastninger ikke slettes)

Jeg vil helst have svar på spg 2! Ellers løses mit problem nok ikke.

Tak
Avatar billede aksma Praktikant
02. marts 2006 - 12:39 #1
Det er relativt enkelt at forhindre at dine formler bliver overskrevet. Du beskytter blot arket og åbner dernæst for de fleter, hvor de må skrive noget.

Aksma
Avatar billede nlr2000 Nybegynder
02. marts 2006 - 13:07 #2
Det er jeg ikke interesseret i.

Brugerne skal netop have mulighed for at overskrive formlerne. Dette er nødvendigt i nogle tilfælde. Men såfremt de ønsker formlerne genskabt, burde det være muligt, da de ligger klar i det originale ark...
Avatar billede gammer Nybegynder
02. marts 2006 - 13:15 #3
Jeg har et regneark hvor jeg "refresher" formler, som en bruger har mulighed for at overskrive. Formlen er følgende:

Sub Fix_Formler()

Application.ScreenUpdating = False

For i = 3 To 36
    Sheets("ark1").Select
    Cells(i, 9).Formula = "=Ark2!n" & i
    Cells(i, 12).Formula = "=ark2!o" & i
    Next i

Application.ScreenUpdating = True

End Sub

Du skal lige huske at slå skrivebeskyttelsen fra og til i Sub'en.

Formlerne gendannes ved et tryk på en makro-knap
Avatar billede aksma Praktikant
02. marts 2006 - 13:19 #4
Så er der nok ingen vej uden om en makro. Det forudsætter, at du har et originalark, som ikke er det brugerne åbner, men mage til. Sæt en makro ind i det ark, som brugerne åbner og lad denne makro kopiere formlerne fra det originale ark's område med formler. Dete forudsætter, at originalarket er åbnet, hvilket måske ikke er så hensigsmæssig.

Alternativt kan du i det samme ark, kopiere opsætningen på arket til en andet ark i samme fil, og så kopiere derfra. Du kan evt. skjule arket, så det ikke er synlig for brugerne.
Aksma
Avatar billede kabbak Professor
02. marts 2006 - 13:25 #5
her er måske en måde, men makroerne må så ikke været slået fra.

I ThisWorkbook modulet

Private Sub Workbook_Open()
Formel = Worksheets("Ark1").Range("k30:p45")' ret til dit formelområde
End Sub


I et Modul

Option Explicit

Global Formel As Variant

Public Sub OpdaterFormler()
Worksheets("Ark1").Range("k30:p45") = Formel
' samme område som i Workbook_Open
End Sub
Avatar billede gammer Nybegynder
02. marts 2006 - 13:26 #6
Vedr. skrivebeskyttelse

I første linie efter Sub Fix_formler() indsætter du følgende:

ActiveSheet.Unprotect

Lige før End Sub indsætter du

ActiveSheet.Protect
Avatar billede kabbak Professor
02. marts 2006 - 13:34 #7
Koden i ThisWorkbook, skal se sådan ud

Private Sub Workbook_Open()
Formel = Worksheets("Ark1").Range("k30:p45").Formula
End Sub
Avatar billede nlr2000 Nybegynder
02. marts 2006 - 13:36 #8
Tak for kommentarerne indtil videre. Jeg prøver noget af. Kabbaks løsning ser umiddelbart smart ud.
Jeg vender tilbage
Avatar billede nlr2000 Nybegynder
02. marts 2006 - 14:27 #9
Jeg kan ikke få det til at virke.

Når den nedste makro køres, er det øverste gemt i "formel" væk. Det er vel fordi de ikke ligger i samme makro og variable slettes?
Avatar billede kabbak Professor
02. marts 2006 - 15:32 #10
har du husket denne øverst i modulet

Global Formel As Variant

Den bluver først læst ind når filen åbnes
Avatar billede nlr2000 Nybegynder
02. marts 2006 - 16:44 #11
Det er utroligt hvad en genstart kan gøre! Tidligere idag crashede Excel efter jeg testede makroer af.

Da jeg efterfølgende prøvede din makro duede den ikke før computer genstart....

Nu er alt godt igen! Læg et svar
Avatar billede kabbak Professor
02. marts 2006 - 18:32 #12
et svar ;-))

hvis de først har gemt inden de opdager fejlen, kan det ikke gøres, ellers skal vi have en kode på inden de lukker/gemmer
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