PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAKörfelKörfel
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-12-10 05:03
 

 Jag har gjort ett stort tungt program med 1000-tals programmeringsrader. Programmet är lagrat som binärt. På arbetsplatsen fungerar det utmärkt men på min hemdator får jag körfel med förklaringen "Automationsfel. Det anropade objektet har kopplat ifrån sina klienter". Vad kan förklaringen till felet vara?

Nytt inlägg
 2019-12-10 07:12
 
 Ändrad av Christian  på 2019-12-10 08:13:13
Hej hej

Vilken kodsnutt triggade ditt fel? Stega gärna med f8 när felet är triggat så att du säkerställer att det är rätt rad. Har du olika excelversioner på hemdatorn och jobbdatorn. Fungerar verktyget lokalt eller kör du remote?. Ligger din kod i personal.xlsb? Anropar verktyget andra filer? Var ligger i så fall dessa?

Mvh
Christian
Nytt inlägg
 2019-12-10 12:47
 

 När datorn kommer till denna kod spårar det ur:

 

Application.DisplayAlerts = False

 

        Sheets("IT Timbehov").Delete

 

        Sheets("1-7 Sjukf Finans").Delete

 

        Sheets("1-7 Sjukf Kpost").Delete

 

        Sheets("Totalbudget").Delete

 

        Sheets("ITkonton").Delete

 

        Sheets("Totalbudget 3-nivå").Visible = True

 

        Application.DisplayAlerts = True

Datorn börjar köra en massa funktioner på de blad som tas bort och mitt i detta spårar den ur.

Nytt inlägg
 2019-12-10 13:23
 
Hej hej

Efterssom du ändå bara ska ta bort bladen så kan du lika gärna stänga av beräkningar.

Detta gör du med:
Application.calculation = xlCalculationManual

Sedan kan du även stänga av händelsehantering:
Application.enableEvents = false

-...och länkupdatering:
application.AskToUpdateLinks = false

Slå på dem islutet av koden:
Application.calculation = xlCalculationAutomatic
Application.enableEvents = true
application.AskToUpdateLinks = true

Nytt inlägg
 2019-12-11 05:23
 

 Det du föreslog fungerade inte.

Ju mer jag dyker in i problemet verkar det som om körfeley uppstår i samband med att funktioner som finns i cellerna på de olika flikarna triggas igång av programmet. När man stegar igenom koden fungerar det men när man kör koden i fart fungerar det inte. Går det på något sätt att inaktivera funktioner när koden körs?

Nytt inlägg
 2019-12-12 09:33
 
 Ändrad av Christian  på 2019-12-12 10:36:49
Hej hej

Just nu kör du kod med så kallad late binding, nedan kod kör med early binding istöället. Skillnaden är att med early binding så tilldelas objekten en minnesplats i datorn, samt deras under funktioner, såsom .delete, innan kod körs. Så istället för att dina objekt blir av typen variant/objekt, så blir de nu Worksheets, och har tillgång till .delete från tilldelad minnesplats direkt.

Vad gäller din fråga, om du syftar på excelfunktioner såsom =summa(), antal.om mfl, så stängs dessa av med Application.Calculation = xlCalculationManual. Du behöver byta ut bladnamnen mot dina egna för att koden ska fungera. Byt ut * mot en öppen parantes, finns tre styckna,, webeditorn ogillade dessa..

Option Explicit

Sub tjong()

Call mAlerts*False)
Dim ws As Worksheet
Dim wsARR As Variant: wsARR = Array("Blad5", "Blad6", "Blad7")
Dim i As Long
Dim str As String

For i = 0 To UBound(wsARR)
str = wsARR(i)
If WorksheetExists(str) Then
Set ws = ThisWorkbook.Sheets(str)
ws.Delete
End If
Next i
Call mAlerts*True)


End Sub
Function WorksheetExists(sName As String) As Boolean
WorksheetExists = Evaluate("ISREF('" & sName & "'!A1)")
End Function
Private Function mAlerts*onoff As Boolean)

Application.EnableEvents = onoff
Application.AskToUpdateLinks = onoff
Application.ScreenUpdating = onoff
Application.DisplayAlerts = onoff

If onoff Then
Application.Calculation = xlCalculationAutomatic
Else
Application.Calculation = xlCalculationManual
End If

End Function

Nytt inlägg
 2019-12-12 13:07
 
Hej igen

Om inte ovan lösning fungerar för dig så kan du behöva kasta in något som slöar ner proceduren. Exempelvis:

Sheets("IT Timbehov").Activate
Sheets("IT Timbehov").Delete

Sheets("1-7 Sjukf Finans").Activate
Sheets("1-7 Sjukf Finans").Delete

Sheets("1-7 Sjukf Kpost").Activate
Sheets("1-7 Sjukf Kpost").Delete

/c
Nytt inlägg
 2019-12-13 09:35
 
 Ändrad av short  på 2019-12-19 08:33:39

 Dessvärre hjälpte varken det ena eller andra förslaget. Mina funktioner är inte av worksheet-typ utan de består av Function/End Function. Det hjälper inte heller att bara hantera avsnittet där jag  tar bort flikar. Flera andra avsnitt triggar också igång mina funktioner varpå "Det anropade objektet har kopplats ifrån sina klienter" dyker upp. Programmet har körts regelbudet av flera hundra avändare utan proplem. Problemet är bara på min och fruns hemdatorer. Kan det vara något med olika versioner av Excel? Programmet kom till för nio år sedan. Jag har nu windows office 365 business.

När körfelet uppstår "lagar" Excel programmet. Den text man får fram om vad "lagningen" består av lyder:


error081240_01.xml

Fel påträffades i filen C:\Users\Tommy\AppData\Roaming\Microsoft\Excel\Budgetverktyg 2013 version 2 RENSNING (version 2).xlsbMinst ett ogiltigt villkorsformat har tagits bort från arbetsboken

Vad kan det vara för villkorsformat texten syftar på? Jag har provat med att ta bort all villkorad formattering men det hjälpte inte.

Nytt inlägg
 2019-12-19 14:32
 
Har ni kunnat köra verktyget hemifrån innan 365? Har kollegorna en äldre version? Om ja på båda q1så är det antagligen versionsproblem. Ofta går det att hantera sånt, men det är många många timmar av felsökning som behövs för ett sånt stort verktyg. Möjligtvis kan en code cleaner rätta problemen. Men om det smugit sig in buggar i själva cellerna behöver du lyfta över cell för cell till en ny arbetsbok. Där du endast hämtar cellens värde, detta måste göras med kod, då vanlig kopiering/klistra värden special, riskerar att få med felen ändå.
/c
Nytt inlägg
 2019-12-19 15:03
 

 Vilken code cleaner rekommenderar du?

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAKörfelKörfel

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter