24. august 2004 - 11:17Der er
11 kommentarer og 1 løsning
Popup: "der er ikke systemressourcer til at vise alt"
Jeg bruger Excel 2003. min computer har 750 Mb ram og mit regneark er på ca. 5 Mb.
Excelarket indeholder ca. 9.500 formler på 13 forskellige ark.
Fejlbeskeden kommer som oftest når jeg kører en makro der gendanner data i nogle celler. Den har ingen indvirkning på beregninger (tilsyneladende), men beskeden er ret irreterende.
Sjap: Jeg kører både med Application.ScreenUpdating = False samt EnableCalculation = false under forløbet!
Bak: Jeg kender artiklen men mit dokument ligger langt under de tal der er angivet der!
Fejlen kommer også nogen gange bare ved at ændre værdien i en celle.
Vi snakker måske i alt om hver 20. gang der bliver lavet en ændring i dokumentet. Fejlen er i øvrigt opstået efter jeg gik over til Office 2003 for en måned siden.
1. memoryforbruget har intet at gøre med filstørrelsen. brug =INFO("brugthuk") 2. bruger du autofill ? 3. har du prøvet at sætte Application.Calculation = False, mens makroen kører, således at den ikke laver genberegning ?
sorry, så ikke lige at du havde svaret på 3. Det var faktisk heller ikke det jeg ville spørge om. har du prøvet at sætte Application.DisplayAlerts = False, så slipper du da for meddelelsen :-)
næææh, det havde du faktisk ikke svaret på. Du har brugt EnableCalculation = false. prøv Application.Calculation =xlCalculationManual. Dette er to forskellige ting.
Bak: Kan du forklare mig hvad forskellen er på EnableCalculation = false og Application.Calculation =xlCalculationManual. Jeg har bygget mit projekt op på den måde at 9 ud af 12 ark altid er sat til EnableleCalculation = false, disse ark bliver sat = true når jeg aktiverer arkene og = false når jeg vælger et andet ark. De sidste 3, hvor brugeren i øvrigt kun skal bruge det første, står altid til = true medmindre jeg kører nogle af mine mange makroer... nå nu fik jeg lige beskeden igen bare ved ak klikke for at åbne Module1 i VBA
Jeg har ikke prøvet at sætte Application.DisplayAlerts = False da skærmbilledet ikke opdaterer sig selv når fejlen har været der. Ment på den måde at hvis jeg får meddelelsen ved luk af en UserForm bliver billedet af UserFormen stående på skærmen, indtil jeg scroller lidt frem og tilbage i dokumentet. Der er altså noget galt. Derfor ønsker jeg ikke at bruge den formel, jeg skal have fundet årsagen!
Det er som sagt ikke ved en bestemt makro at fejlen kommer, men generelt når jeg arbejder i projektet. bare ved en ændring af en celle kan fejlen komme. Jeg bruger ikke autofill. Bak: Kan du forklare mig hvad forskellen er på EnableCalculation = false og Application.Calculation =xlCalculationManual.
Private Sub Worksheet_Change(ByVal Target As Range)
ProtectedJa = False If Worksheets("PROJEKT").ProtectContents = True Then ActiveSheet.Unprotect ProtectedJa = True End If
On Error GoTo SLUT 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD PLC If Target.Name.Name = "CPU_MRK" Then Range("SERIE").Value = "VÆLG SERIE" Range("CPU").Value = "VÆLG CPU" Range("SLOT").Value = "VÆLG SLOT (KUN FOR ALLEN BRADLEY & SIEMENS 400 SERIE)" Range("SLOT3_18").Select Selection.ClearContents
Range("CPU_MRK").Select End If
i = 1 For i = i To 18
If Target.Name.Name = ("SLOT" & i) Then If ActiveCell.Value = "" Or ActiveCell.Value = "VÆLG CPU" Then Ark2.OLEObjects("SaetIO" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("SaetIO" & CStr(i)).Object.BackColor = &HFF& End If End If Next
If Target.Name.Name = "SERIE" Then Application.ScreenUpdating = False Range("SLOT3_18").Select Selection.ClearContents Range("SERIE").Select
If ActiveCell.Value = "400 SERIE" Then
ActiveCell.Offset(3, -1).Value = Ark6.Range("PLCSIDE1").Value * 10 i = 14 For i = i To 18 Range("SLOT" & i).Select ActiveCell.RowHeight = 12.75 Next
Range("CPU").Select ActiveCell.FormulaR1C1 = "VÆLG CPU I S7-400 SERIEN" 'Range("SLOT2").Select 'ActiveCell.FormulaR1C1 = "=CPU_FORSYNING"
Ark2.OLEObjects("SaetIO1").Object.BackColor = &H8000& Ark2.OLEObjects("SaetIO2").Object.BackColor = &H8000& Ark2.OLEObjects("SaetIO3").Object.BackColor = &H8000& Range("SERIE").Select Else i = 14 For i = i To 18 Range("SLOT" & i).Select ActiveCell.RowHeight = 0 Next Range("SERIE").Select End If
If ActiveCell.Value = "300 SERIE" Then ActiveCell.Offset(3, -1).Value = "" Range("CPU").Select ActiveCell.FormulaR1C1 = "VÆLG CPU I S7-300 SERIEN" Range("SLOT1").Select ActiveCell.FormulaR1C1 = _ "=IF(OR(EXACT(""ALLENBRADLEY"",R[-4]C),EXACT(""SIEMENS"",R[-4]C)),OFFSET(DATA2!CPU_LISTE,R[-2]C[9],1,1,1),""VÆLG CPU"")" Range("SLOT2").Select ActiveCell.FormulaR1C1 = _ "=IF(OR(EXACT(""ALLENBRADLEY"",R[-5]C),EXACT(""SIEMENS"",R[-5]C)),OFFSET(DATA2!CPU_LISTE,R[-3]C[9],2,1,1),""VÆLG CPU"")" Range("SLOT3").Select Selection.ClearContents
Range("SERIE").Select End If
If ActiveCell.Value = "200 SERIE" Then ActiveCell.Offset(3, -1).Value = "" Range("CPU").Select ActiveCell.FormulaR1C1 = "VÆLG CPU I S7-200 SERIEN" Range("SLOT1").Select ActiveCell.FormulaR1C1 = _ "=IF(OR(EXACT(""ALLENBRADLEY"",R[-4]C),EXACT(""SIEMENS"",R[-4]C)),OFFSET(DATA2!CPU_LISTE,R[-2]C[9],1,1,1),""VÆLG CPU"")" Range("SLOT2").Select ActiveCell.FormulaR1C1 = _ "=IF(OR(EXACT(""ALLENBRADLEY"",R[-5]C),EXACT(""SIEMENS"",R[-5]C)),OFFSET(DATA2!CPU_LISTE,R[-3]C[9],2,1,1),""VÆLG CPU"")" Range("SLOT3").Select ActiveCell.FormulaR1C1 = ""
Range("SERIE").Select End If
If ActiveCell.Value = "1746 SERIE" Then ActiveCell.Offset(3, -1).Value = Ark6.Range("PLCSIDE1").Value * 10 Range("CPU").Value = "VÆLG CPU I 1746 SERIEN" Range("SLOT").Value = "VÆLG SLOT (KUN FOR ALLEN BRADLEY & SIEMENS 400 SERIE)" End If If ActiveCell.Value = "1756 SERIE" Then ActiveCell.Offset(3, -1).Value = Ark6.Range("PLCSIDE1").Value * 10 Range("CPU").Value = "VÆLG CPU I 1756 SERIEN" Range("SLOT").Value = "VÆLG SLOT (KUN FOR ALLEN BRADLEY & SIEMENS 400 SERIE)" End If
Application.ScreenUpdating = True End If
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD FLEX i = 2 For i = i To 18 If Target.Name.Name = ("FLEX" & i) Then If ActiveCell.Value = "" Or ActiveCell.Value = "VÆLG DECENTRAL I/O" Then Ark2.OLEObjects("SaetFLEX" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("SaetFLEX" & CStr(i)).Object.BackColor = &HFF& End If End If Next
If Target.Name.Name = "FLEX_CPU_MRK" Then If ActiveCell.Value = "ALLENBRADLEY" Then Range("FLEXSERIE").Select Selection.ClearContents ActiveCell.RowHeight = 0 Range("FLEX").Select ActiveCell.RowHeight = 12.75 Range("FLEXSLOT").Select ActiveCell.RowHeight = 0
Range("FLEX_CPU_MRK").Select End If End If
If Target.Name.Name = "FLEX_CPU_MRK" Then If ActiveCell.Value = "SIEMENS" Then Range("FLEXSERIE").Select ActiveCell.RowHeight = 63.75 Range("FLEX").Select ActiveCell.RowHeight = 0 Range("FLEXSLOT").Select ActiveCell.RowHeight = 12.75
Range("FLEX_CPU_MRK").Select End If End If
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 'D D 'D ALLE SERVO D 'D D 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
If ActiveCell.Row > TOPSERVO And ActiveCell.Row < BUNDSERVO Then
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SERVO1 i = 1 For i = i To 6 If Target.Name.Name = ("SERVO1_" & i) Then If ActiveCell.Value = "" Then Ark2.OLEObjects("saetSERVO1_" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("saetSERVO1_" & CStr(i)).Object.BackColor = &HFF& End If End If Next
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SERVO2 i = 1 For i = i To 6 If Target.Name.Name = ("SERVO2_" & i) Then If ActiveCell.Value = "" Then Ark2.OLEObjects("saetSERVO2_" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("saetSERVO2_" & CStr(i)).Object.BackColor = &HFF& End If End If Next
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SERVO3 i = 1 For i = i To 6 If Target.Name.Name = ("SERVO3_" & i) Then If ActiveCell.Value = "" Then Ark2.OLEObjects("saetSERVO3_" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("saetSERVO3_" & CStr(i)).Object.BackColor = &HFF& End If End If Next
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SERVO4 i = 1 For i = i To 6 If Target.Name.Name = ("SERVO4_" & i) Then If ActiveCell.Value = "" Then Ark2.OLEObjects("saetSERVO4_" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("saetSERVO4_" & CStr(i)).Object.BackColor = &HFF& End If End If Next
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SERVO5 i = 1 For i = i To 6 If Target.Name.Name = ("SERVO5_" & i) Then If ActiveCell.Value = "" Then Ark2.OLEObjects("saetSERVO5_" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("saetSERVO5_" & CStr(i)).Object.BackColor = &HFF& End If End If Next
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SERVO6 i = 1 For i = i To 6 If Target.Name.Name = ("SERVO6_" & i) Then If ActiveCell.Value = "" Then Ark2.OLEObjects("saetSERVO6_" & CStr(i)).Object.BackColor = &H8000& Else Ark2.OLEObjects("saetSERVO6_" & CStr(i)).Object.BackColor = &HFF& End If End If Next
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD Servo i = 1 For i = i To 6 If Target.Name.Name = ("SERVO" & i & "TYPE_VALGT") Then AKTUEL_SERVO_NR = i SERVO_ARBEJD End If Next End If
'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD Frekvens i = 1 For i = i To 32 If Target.Name.Name = ("FREKVENS" & i) Then If ActiveCell.Value = "" Or ActiveCell.Value = "VÆLG PRODUCENT" Then ActiveCell.Offset(2).Range("A1:A19").Select Selection.EntireRow.Hidden = True Else ActiveCell.Offset(2).Range("A1:A19").Select Selection.EntireRow.Hidden = False End If Range("FREKVENS" & i).Select End If Next 'FREKVENS1
SLUT: If ProtectedJa = True Then ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveSheet.EnableSelection = xlUnlockedCells End If
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.