Avatar billede perhol Seniormester
04. januar 2012 - 16:46 Der er 10 kommentarer og
1 løsning

VBA i Excel 2003 / 2007

Jeg har lavet en regnearksfil til at holde styr på beboernes økonomi på et bosted (lavet på baggrund af en downloadet fil til dobbelt bogholderi).

Den er lavet til Excel 2003 og indeholder en del VBA kode, bla. til at oprette en menu og til at hindre utilsigtet overskrivning af filen ved månedsskifte.
Nu skal vi til at gå over til Excel 2007, og i den er der flere ting der ikke virker.
Her er hvad jeg foreløbig har fundet:

Ved start af filen skulle der blive oprettet en menu ved navn PensionsRegnskab med 9 punkter.
Det virker ikke i Excel 2007. Er det overhovedet muligt i Excel 2007?

Ved start af regnskab for ny beboer (= ingen saldi i beholdningskonti) skulle der komme en dialogboks til at udfylde startsaldi.
Det virker ikke i Excel 2007

Herefter skulle der komme en påmindelse om at vælge beboernavn og startdato hvis dette ikke er udfyldt.
Det virker ikke i Excel 2007

Håber der er nogen der kan hjælpe!

Jeg har lagt filen her:
http://dl.dropbox.com/u/5145268/NytBeboerRegnskab-test.xls
Avatar billede store-morten Ekspert
04. januar 2012 - 17:35 #1
Avatar billede perhol Seniormester
04. januar 2012 - 17:53 #2
Det ser jo (delvist) rigtigt ud, men!

Sådan virker det ikke i min Excel 2007 (ny installeret Enterprise Edition).

Fanen Tilføjelsesprogrammer vises først efter manuel kørsel af makroen =pretMenu. Ellers vises min egen menu slet ikke.
Avatar billede store-morten Ekspert
04. januar 2012 - 18:18 #3
Avatar billede perhol Seniormester
04. januar 2012 - 18:26 #4
Efter at ha' været inde og tilføje komponenter i Office 2007 virker det på samme måde her.
Men det ville være rart om menuen kom frem uden at den lå i fanen Tilføjelsesprogrammer.
Mon det er muligt?

På bostedet vil det være Office 2007 Standard på en Citrix platform.
Mon det i det mindste virker ligesådan i den?
Avatar billede perhol Seniormester
04. januar 2012 - 18:31 #5
PS. Efter at ha' tilføjet komponenter indlæste den selv de nødvendige tilføjelsesprogrammer (Analysis Toolpak og Analysis Toolpak - VBA).
Men det der med menuen?
Avatar billede store-morten Ekspert
04. januar 2012 - 19:12 #6
Tilpasning af båndet
Excel har (næsten) altid været kendt for de meget omfattende muligheder
for at tilpasse næsten hvad som helst, fx ved oprettelse af egne
menuer, værktøjslinjer mv.
Med undtagelse af muligheden for tilpasning af den næsten usynlige
værkstøjslinje Hurtig adgang forsvandt stort set alle tilpasningsmuligheder
i Excel 2007.

http://webcache.googleusercontent.com/search?q=cache:38253Q6FzIcJ:http://www.libris.dk/files/other/bilag/P-R/955-0-profexcel-2010.pdf
Side 16 og nedaf
(Klik på linket øverst, så åbnes som PDF)
Avatar billede perhol Seniormester
04. januar 2012 - 22:03 #7
Jow, men sådan som menuen præsenteres i båndet nu er næsten acceptabelt.
Men til gengæld mangler jeg noget jeg lagde ind som sikkerhed mod brugernes Fejl40.
Kode i filen gjorde at at filnavn og placering blev valgt ud fra beboernavn og startdato. Men brugerne havde det med at gemme filen under samme navn efter at de havde skiftet til ny måned.
Ikke så godt, sidste måneds regnskab blev overskrevet hver gang de gjorde det.
For at forhindre dette lavede jeg kode der spærrede for de almindelige gemmefunktioner (Gem og GemSom i menuen Filer i Excel 2003) og lægge et punkt i min menu der kaldte min egen gemmefunktion hvor brugerne ikke fik lov til at vælge filnavn og placering.
Spærringen de almindelige gemmefunktioner virker ikke i Excel 2007.

Jeg spærrer dem med denne kode:
    With Application
        .CommandBars("Worksheet Menu Bar").Controls("Filer").Controls("Gem").Enabled = False
        .CommandBars("Standard").Controls(3).Delete
    End With

der ligger i en Workbook_Open Sub

Den første .CommandBars deaktiverer punktet Gem i Filer menuen, den anden fjerner 'disketten' i værktøjslinjen.

En anden kode der ligger i en Workbook_BeforeSave Sub omdirigerer GemSom til min egen gemmekode:
    If SaveAsUI Then
        Cancel = True
        Call Test_Navn
    End If


Men disse virker ikke i Excel 2007!

Hvordan mon jeg får dem til det?
Avatar billede perhol Seniormester
05. januar 2012 - 00:20 #8
Mindre fejltagelse!

Koden
    If SaveAsUI Then
        Cancel = True
        Call Test_Navn
    End If

virker faktisk, 'man' opdager det bare ikke lige med det samme ;-b

Har også prøvet
    If SaveUI Then
        Cancel = True
        Call Test_Navn
    End If

Det kunne jo være, men desværre virker det ikke!
Avatar billede perhol Seniormester
21. januar 2012 - 10:14 #9
store-morten
Det meste virker nu, og det var dine henvisninger der viste mig løsningen.
Læg et svar.
Avatar billede store-morten Ekspert
21. januar 2012 - 12:30 #10
Det lyder godt :-)
Avatar billede perhol Seniormester
21. januar 2012 - 14:26 #11
Værsgo'
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