Microsoft Excel

Herbers Excel/VBA-Archiv

Disable Macros

Betrifft: Disable Macros von: VBAfelix
Geschrieben am: 13.08.2008 17:50:06

Hallo,
ich habe ein Macro welches einen paste values befehl innerhalb des worksheets ausfuehrt.
obwohl ich
Application.Calculation = xlManual

verwende, wird mir nach dem paste special befehl das sheeet neu berechnet. ich ahbe eine seber geschriebene funktion welche dann aufgerufen wird und ausgewertet wird.

Wie kann ich diese funktion ausstellen oder abstellen dass mein sheet bei paste special neu rechnet ?

danke
Felix

  

Betrifft: AW: Disable Macros von: Tino
Geschrieben am: 13.08.2008 18:39:33

Hallo,
dies geschieht bestimmt weil du die Berechnung wieder auf automatisch stellst.

Gruß Tino


  

Betrifft: AW: Disable Macros von: VBAfelix
Geschrieben am: 13.08.2008 18:56:43

Es passiert innerhalb des Makros:


Sub attribution()

Application.Calculation = xlManual

Dim Worksheet

worksheet = "WS1"

 Worksheets(Worksheet).Range("h4:h75").Copy
      Worksheets(Worksheet).Range("price_t").Select

     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

''''''''''''''''''''''''''''''''   hier wird dann das sheet neu berechnet    !!!!!!!!!!!!!!!!
 

End Sub




ich habe calculation auf manual anber dennoch rechnet das sheet ... was tun?


  

Betrifft: AW: Disable Macros von: Daniel
Geschrieben am: 13.08.2008 19:30:07

Hi
also ich habs ausprobiert, bei mir wird auch erst neu berechnet, wenn ich den Berechnungsmodus wieder auf "automatisch" setze.
daher ist dein Fehler so nicht nachvollziehbar, da hilft dann nur noch. Datei mit dem Fehler hochladen, damit man sich alle Einstellungen und äußeren Umstände ansehen kann.

Gruß, Daniel


  

Betrifft: AW: Disable Macros von: Erich G.
Geschrieben am: 13.08.2008 19:56:29

Hallo Felix,
eventuell schlägt da ein Ereignismakro zu. Probier mal

Sub attribution()
'  Dim Worksheet ' solltest du nicht verwenden, Worksheet ist ein Excel-Objekt
   Dim strWS As String  ' mit String wird klar, was für eine Variable das ist

   Application.Calculation = xlManual
   Application.EnableEvents = False

   strWS = "WS1"
   Worksheets(strWS).Range("h4:h75").Copy
'   Worksheets(strWS).Range("price_t").Select
'   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
' geht ohne Select:
   Worksheets(strWS).Range("price_t").PasteSpecial Paste:=xlPasteValues, _
      Operation:=xlNone, SkipBlanks:=False, Transpose:=False

   ''''''''''''''''''   hier wird dann das sheet neu berechnet    !!!!!!!!!!!!!!!!
   Application.EnableEvents = True
End Sub

' oder kürzer

Sub attribution2()
   Application.Calculation = xlManual
   Application.EnableEvents = False

   With Worksheets("WS1")
      .Range("h4:h75").Copy
      .Range("price_t").PasteSpecial Paste:=xlPasteValues, _
         Operation:=xlNone, SkipBlanks:=False, Transpose:=False
   End With

   Application.EnableEvents = True
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort