Avatar billede madiedk Nybegynder
04. august 2008 - 14:53 Der er 14 kommentarer og
1 løsning

excel fejlmeddelse ifm. userform Underlig fejl

Hej

jeg har en meget underlig fejl.

min userform fejler når jeg klikker på nogle af knapperne jeg har oprettet, Så jeg bliver nødt til at lukke excel.
Men hvis jeg har VBA koden åben i baggrunder så fejler den ikke.

Kan det være et ressourceproblem og så bruger den færre ressourcer når koden (microsoft visual basic) er åben i baggrunden?

Håber der er nogle der kan komme med nogle ideer til fejlen?
Avatar billede zxa Nybegynder
04. august 2008 - 16:03 #1
Du kan prøve at sende den til mig så kan jeg prøve at se om den gør det samme her, hvis det er en hjælp
zxasqwxz@hotmail.com
Avatar billede madiedk Nybegynder
04. august 2008 - 16:40 #2
har prøvet på en masse forskellige computere. desuden trækker programmet fra 2 databaser som skal være der for at det virker. ellers tak.
Avatar billede zxa Nybegynder
04. august 2008 - 16:49 #3
okay
Avatar billede jkrons Professor
04. august 2008 - 22:18 #4
Hvad gør knappen?
Avatar billede kabbak Professor
04. august 2008 - 22:32 #5
Du kan jo prøve at eksportere moduler og userforms , og så tage dem ind i en ny excelmappe, hvis det nu var noget i resten af mappen der gav problemet.
Avatar billede madiedk Nybegynder
04. august 2008 - 22:51 #6
jeg har prøvet at exporterer det. userformer regner bare nogle ting ud med nogle formler, alt efter hvad der står i databasen den henter fra.
det er ikke et bestemt sted den fejler, jeg har prøvet at sætte msgbox ind og se hvor meget den for skrevet ud inden excel fejler og lukker ned. og det er lidt forskelliget alt efter hvilke udvidelse jeg laver til mit program. nogle gange fejler den, bare at jeg sætter linien textbox173.text = "300" ind i koden.
men det virker jo hvis jeg bare åbner visual editor og klikker på modulet koden står i. også selvom jeg lukker visual editor igen. bare at det har været åbent.
Avatar billede kabbak Professor
04. august 2008 - 23:15 #7
Excel har en begrænsning på hvor meget der kan stå i en procedure.

Det mellem " Sub og end sub"

Hvis du virkelig har en lang smøre der, så se om du ikke kan plukke noget kode ud og ligge det ud  i nogen funktions kald, Så din hoved kode bliver kortere.
Avatar billede madiedk Nybegynder
05. august 2008 - 10:02 #8
jeg har læst lidt om det og det er vidst 64 kb ca. som en procedure max må være og det er der ikke nogle der er. desuden ville fejlmeddelsen vidst være at "proceduren var for stor" men hvorfor virker det hvis jeg bare åbner VBE og vælger modulet og så bare lukker den igen eller lader den være åben
Avatar billede madiedk Nybegynder
05. august 2008 - 10:34 #9
f.eks. har jeg fundet ud af at hvis jeg kører den har kode som kommentar så virker det men hvis selve koden skal køres så virker det ik. kan det være userformen der er blevet for omfattende/stor?


    hendata(afdindex, 22) = Hensættelser.txtbk1.Text
    hendata(afdindex, 23) = Hensættelser.txtbk3.Text
    hendata(afdindex, 24) = Hensættelser.txtbk5.Text
    hendata(afdindex, 25) = Hensættelser.txtbk7.Text
    hendata(afdindex, 26) = Hensættelser.txtbk9.Text
    hendata(afdindex, 27) = Hensættelser.txtbk11.Text
    hendata(afdindex, 28) = Hensættelser.txtbk13.Text
    hendata(afdindex, 29) = Hensættelser.txtbk15.Text
    hendata(afdindex, 30) = Hensættelser.txtbk17.Text
    hendata(afdindex, 31) = Hensættelser.txtbk19.Text
    hendata(afdindex, 32) = Hensættelser.txtbk21.Text
    hendata(afdindex, 33) = Hensættelser.txtbk23.Text
    hendata(afdindex, 34) = Hensættelser.txtbk25.Text
    hendata(afdindex, 35) = Hensættelser.txtbk27.Text
    hendata(afdindex, 36) = Hensættelser.txtbk29.Text
    hendata(afdindex, 37) = Hensættelser.txtbk31.Text
    hendata(afdindex, 38) = Hensættelser.txtbk33.Text
    hendata(afdindex, 39) = Hensættelser.txtbk35.Text
    hendata(afdindex, 40) = Hensættelser.txtbk37.Text
    hendata(afdindex, 41) = Hensættelser.txtbk39.Text
Avatar billede kabbak Professor
05. august 2008 - 22:29 #10
Hvis Hensættelser er den aktive userform, kan du skære koden ned til.

X = 1
For I = 22 To 41
    Hentdata(afdindex, 22) = Me.Controls("txtbk" & X).Text
    X = X + 2
Next
Avatar billede kabbak Professor
05. august 2008 - 22:30 #11
X = 1
For I = 22 To 41
    Hentdata(afdindex, I) = Me.Controls("txtbk" & X).Text
    X = X + 2
Next
Avatar billede madiedk Nybegynder
06. august 2008 - 09:14 #12
tak, men den fejler stadig.

fejler kommer som sagt ikke hvis jeg åbner visual editor. men hvis jeg åbner visual editor og lukker excel helt og åbner det igen så virker det, men lukker jeg det andet gang og åbner det igen så fejler den. sådan er det hver gang. kan det have noget at gøre med at jeg ikke "clearer" objekterne. altså xxx = nothing?
Avatar billede kabbak Professor
06. august 2008 - 14:25 #13
du skal kun clear, hvis du bruger 'set'

Set Ws = Worksheets("Ark1")

så når du ikke bruger den mere

Set Ws = Nothing
Avatar billede madiedk Nybegynder
09. august 2008 - 13:27 #14
tak, men den fejler stadig, hvis jeg gøre programmet lidt mindre på forskellige måder, ved at fjerne forskellige dele, så virker det for det meste igen.
Avatar billede madiedk Nybegynder
19. august 2008 - 10:03 #15
okay, tak for hjælpen, men problem er desværre stadig ikke løst
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