Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet Makro verursacht Paste Probleme

Worksheet Makro verursacht Paste Probleme
05.09.2018 09:16:22
Klemens
Hallo,
Ich habe folgendes Makro um meine Tabelle zu beschleunigen in einem Blatt stehen,
Private Sub Worksheet_Activate()
Worksheets(ActiveSheet.Name).Calculate
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("P1:S72")) Is Nothing Then
Worksheets(ActiveSheet.Name).Calculate
End If
If Not Application.Intersect(Target, Range("M3")) Is Nothing Then
Worksheets(ActiveSheet.Name).Calculate
End If
If Not Application.Intersect(Target, Range("E2")) Is Nothing Then
Worksheets(ActiveSheet.Name).Calculate
End If
End Sub

Da ich 24 Blätter habe die ansonsten sich ständig aktualisieren und alles sehr langsam machen
Deswegen steht hinter meinem Main Code Application.Calculation = xlCalculationManual
Leider habe ich jetzt die Situation das ich keine Daten aus einen anderen Tabellen Blatt in dieses Kopieren kann?!
Jetzt hab ich schon erfahren, das sobald ich eine Aktion ausführe der Kopier Modus abgebrochen wird. Da dies Excel nicht unterstützt, da es diese Daten nicht wirklich Kopiert sondern erst einen Verweis zwischen den Zellen herstellt
Da bekam ich den Tipp dies so zu lösen

Private Sub Worksheet_Activate()
If Application.CutCopyMode > 0 Then Exit Sub
Worksheets(ActiveSheet.Name).Calculate
End Sub

Dann wird aber beim wechseln nicht mein Daten Blatt aktualisiert was zwar zu 90% nicht relevant ist aber die 10% stören mich... Ausserdem kann ich dann nur einmal die Daten einfügen was auch nur zu 10% Relevant ist (Da ich die Daten ja in eine Zelle einfüge die wieder eine Calculation erfordert und dadurch eine neuberechnung des Blattes ausgelöst wird)
Jetzt suche ich nach einer Lösung für die restlichen 10% und das ohne Buttons wo ich von Kopier modus in den Calculations Modus schalten kann
Zwei Lösung Ansätze hab ich mir Gestern Nacht noch rausgesucht aber ich komme einfach nicht weiter
1.) Kann man sich irgendwie den kopierten Zellenbereich als Variable speichern das ich mir den später einfach abrufe?
Also das ich das Copy zwar verliere aber weiss wo die Zellen sind die kopiert waren und mir _ diese nach dem Calculate wieder reinlade?

Private Sub Worksheet_Activate()
Dim copyVA As Variant
If Application.CutCopyMode > 0 Then
copyVA.Paste
Worksheets(ActiveSheet.Name).Calculate
copyVA.copy
Else
Worksheets(ActiveSheet.Name).Calculate
End If
End Sub

Das es so nichts wird ist mir klar, aber vl hat da jemand einen umweg für mich?
2.) Ich vermute das geht nicht so einfach Plattform unabhängig. Also ich habs auf jedenfall nicht mit meinem Mac geschafft.
Das man sich sein Clipboard als DataObjekt abspeichert und wieder reinlädt (putText, getText)
Sub CopyToClipboard2()
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.SetText ActiveSheet.Range("B2")
clipboard.PutInClipboard
End Sub
Sub PasteFromClipboard3()
Dim clipboard As MSForms.DataObject
Dim str1 As String
Set clipboard = New MSForms.DataObject
clipboard.GetFromClipboard
str1 = clipboard.GetText
MsgBox str1
End Sub
Hier hab ich keine Ahnung warum, das nicht geht ich schätze das liegt am MSForms.DataObject (Das muss man glaub ich extra aktivieren)
So also gibt es hier jemanden der mir weiter helfen kann, bin mit jeden umweg zufrieden
oder auch einfach nur denk Anstöße :-)
Vielen Dank und Schöne Grüße

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet Makro verursacht Paste Probleme
05.09.2018 09:43:07
Jörn
Moin,
hast du mal versucht vor dem Kopieren die Events mit Application.EnableEvents = False zu deaktivieren und anschließend wieder zu aktivieren?
Grüße
Jörn
AW: Worksheet Makro verursacht Paste Probleme
05.09.2018 10:52:44
Klemens
Hallo Jan,
Ja das hatte ich schon ausprobiert, leider kein erfolg
AW: Worksheet Makro verursacht Paste Probleme
05.09.2018 10:53:40
Klemens
Meinte natürlich Jörn
Sorry
AW: Krücke für die Lücke
05.09.2018 11:59:49
Gerd
Moin Klemens,
also die Formelberechnung steht auf "manuell".
Private Sub Worksheet_Activate()
If Application.CutCopyMode = 0 Then Me.Calculate
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
With Application
If .CutCopyMode = 0 Then
.EnableEvents = False
If Not .Intersect(Target, Range("P1:S72,M3,E2")) Is Nothing Then
Me.Calculate
End If
.EnableEvents = True
End If
End With
End Sub

Bei vielen Blättern kann man diese Ereignisprozeduren für die relevanten im Modul DieseArbeitsmappe
zusammenfassen.
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige