Avatar billede JAHT Nybegynder
15. november 2010 - 08:19 Der er 3 kommentarer og
1 løsning

VBA kode - Excel lukker når man afspiller makro (indeholder målsøgning)

Hej alle......

Jeg har lavet et excel ark i 2007 versionen. Arket skal bruges til at finde ud af hvor mange km godgørelse man kan få godtgjort.

Jeg har lavet nedenstående VBA kode:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

Raekke = ActiveCell.Row
Kolonne = ActiveCell.Column


If Cells(26, 5) > Cells(30, 5) Then
ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 10
    Rows("39:1048576").Select
    Selection.EntireRow.Hidden = False
    ActiveWindow.ScrollRow = 11
    ActiveWindow.ScrollRow = 12
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 14
    ActiveWindow.ScrollRow = 15
    ActiveWindow.ScrollRow = 16
    ActiveWindow.ScrollRow = 17
    ActiveWindow.ScrollRow = 18
    ActiveWindow.ScrollRow = 19
    Range("E43").Select
    Selection.Copy
    Range("E46").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E46").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "656"
    Range("E44").Select
    Range("E44").GoalSeek Goal:=656, ChangingCell:=Range("F44")
    Rows("40:40").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Hidden = True
 
    ElseIf Cells(26, 5) < Cells(30, 5) Then
            Exit Sub

    End If
 
   
Cells(Raekke, Kolonne).Activate

Application.ScreenUpdating = True

End Sub

Som i kan se, så skal makroen "køre" hvergang der sker en ændring i excel arket, men kun hvis celle(26,5) [de totale omkostninger] er større end celle(30,5) [max. refusion]. Er dette ikke tilfældet, så skal makroen ikke køre!

Udregningen af antal km. sker, hvis ovenstående er tilfældet, vha. målsøgning.

Mit problem er at Excel lukker ned hver gang jeg taster i det.

Håber at der er en der kan hjælpe

På forhånd tak
Avatar billede supertekst Ekspert
15. november 2010 - 11:15 #1
Har prøvet koden. Tilsyneladende looper koden og dette giver et problem.

Når du skriver "lukker ned" - hvordan udtrykker det sig?
Avatar billede JAHT Nybegynder
15. november 2010 - 12:33 #2
Wxcel kommer frem med følgende boks, hvori der står følgende:

Microsoft Office Excel has stopped working.

Windows can try to recover your information and restart the program

Valgmuligheder:
- Restart the program
- Debug the program
Avatar billede supertekst Ekspert
15. november 2010 - 12:55 #3
Ok - prøv at checke forløbet når betingelsen er opfyldt.

Læg et stop ind (klik på den grå ramme i VBA-vinduet / eller F9 udfor den linje, hvor der skal stoppes). Step gennem koden med F8 - så kan du følge forløbet.
Avatar billede gafi Nybegynder
17. november 2010 - 09:17 #4
Jeg har selv haft problemet, hvilket er at du i koden ændre i en celles værdi, hvilket får Worksheet_Change til ar starte igen, og dermed gå ind i en uendelig løkke.
Worksheet_Change er jo netop sat til at kører når der sker en ændring i arket

Dette kan du fjerne ved at indsætte "EnableEvents" sammen med "Application.ScreenUpdating".
Derved opfattes dine ændringer ikke som ændringer og programmet starter ikke sig selv igen og igen.

...
Application.ScreenUpdating = False
Application.EnableEvents = False
...
...
Application.EnableEvents = True
Application.ScreenUpdating = True
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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