Microsoft Excel

Herbers Excel/VBA-Archiv

Marko Beschleunigen ?


Betrifft: Marko Beschleunigen ?
von: Ray
Geschrieben am: 29.11.2018 12:29:52

Hallöchen zusammen,

ich hätte da mal wieder ein Anliegen.
Und zwar nutze ich ein Makro, die mir die Zelle Färbt in der ein Kommentar eingefügt wird.



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Dim zelle As Range
 For Each zelle In ActiveSheet.Range("D11:NJ72")
 If Not zelle.Comment Is Nothing Then
 zelle.Interior.ColorIndex = 35
 Else
 zelle.Interior.ColorIndex = xlNone
 End If
 Next
 End Sub


Allerdings wird dadurch die Bearbeitung der Tabelle sehr verlangsamt/verzögert.
Selbst wenn kein Wert in eine Zelle eingeben wird, sondern eine Zelle nur Markiert wird verzögert sich das schon. Und das ist sehr hinderlich.

Meine Frage wäre, ob es möglich ist das Makro zu Beschleunigen o.ä.
Ich habe irgendwie keine Ahnung ob das möglich ist.

Für Eure Unterstützung wäre ich sehr Dankbar
LG
Ray

  

Betrifft: AW: SpecialCell
von: Fennek
Geschrieben am: 29.11.2018 12:36:09

Hallo,

versuche es mal mit

sub T_1()
activesheet.usedrange.specialcells(xlcelltypecomments).interior.colorindex = 35
end sub
Falls es keine Kommentare im Blatt gibt, gibt es eine Fehlermeldung.

mfg


  

Betrifft: AW: SpecialCell
von: Torsten
Geschrieben am: 29.11.2018 12:43:41

Ich wuerde den Code ins Workbook_Change Ereignis packen anstatt ins Worksheet_SelectionChange.
Hier laeuft der Code naemlich jedesmal, wenn die Zelle gewechselt wird.

Gruss Torsten


  

Betrifft: Nachfrage
von: Rudi Maintaire
Geschrieben am: 29.11.2018 12:56:10

Hallo,
fügst du denn ständig Kommentare ein oder löschst sie wieder?

Gruß
Rudi


  

Betrifft: AW: Marko Beschleunigen ?
von: onur
Geschrieben am: 29.11.2018 19:02:12

Du brauchst nur eine UDF in einem MODUL und bed. Formatierung für deinen Bereich mit Formel:
=Koommentar(ZS) (bei Z1S1-Adressierung).
Guckst du hier:
http://www.herber.de/bbs/user/125771.xlsm

Public Function Kommentar(c As Range) As Boolean
    Application.Volatile
    Kommentar = Not c.Comment Is Nothing
End Function



  

Betrifft: AW: Marko Beschleunigen ?
von: Ray
Geschrieben am: 30.11.2018 11:12:22

Hallo zuasmmen,

vielen Dank. Ich werde das umegehnd Testen.
@Rudi, nicht ständig aber immer wieder werden Kommentare eingefügt oder gelöscht.

Ich melde mich
Grüße Ray


  

Betrifft: AW: Marko Beschleunigen ?
von: Ray
Geschrieben am: 30.11.2018 15:42:57

Hallo zusammen,

Vielen Lieben Dank an euch für euren Input.
Nur Leider funktioniern eure Vorschläge nur bedingt...
Ich werde aber noch weiter Testen

Danke
Ray


  

Betrifft: AW: Marko Beschleunigen ?
von: Ray
Geschrieben am: 30.11.2018 15:47:08

@ onur

Dein Vorschlag mit dem UDF im Modul ist flott und elegant.
Allerdings habe ich festgestellt, dass sobald in den Bedingten Formatierung
die dazugehörige Formel =Kommentar(… aktiv ist, dass das Makro in „DieseArbeitsmappe“
die Sub Workbook_Open() nicht ausführt. Erst wenn die Regel wieder gelöscht worden ist
wird auch die Sub Workbook_Open ausgeführt.
Ich kann das leider nicht nachvollziehen. Hast du evtl. eine Idee? Woran das liegt oder wie das zu umgehen wäre?

Vielen Dank
Ray


  

Betrifft: AW: Marko Beschleunigen ?
von: onur
Geschrieben am: 30.11.2018 17:07:50

Kann dir nicht folgen - poste mal das Makro, das du meinst.


  

Betrifft: AW: Marko Beschleunigen ?
von: Ray
Geschrieben am: 03.12.2018 16:29:46

Hi onur,

Sorry, dass ich mich jetzt erst melde, aber das war ein Turbulentes Wochenende.
Hier ein Code der nicht ausgeführt wird.

Sub Workbook_Open()
 Dim WsTabelle As Worksheet
 For Each WsTabelle In Sheets
 WsTabelle.Protect UserInterfaceOnly:=True, Password:="123" 
 WsTabelle.EnableOutlining = True
 WsTabelle.EnableAutoFilter = True
 WsTabelle.EnableSelection = xlNoRestrictions 
WsTabelle.Protect UserInterfaceOnly:=True, DrawingObjects:=False, AllowFormattingCells:=True, _
Contents:=True, Scenarios:=True, AllowFormattingRows:=True, AllowInsertingRows:=True, Password:= _
"123" 
 Next WsTabelle
 Worksheets("Test").Activate 
End Sub
Der dient dazu den Blattschutz mit bestimmten Kriterien zusetzten. (Gruppierung o.ä.)
Deine Lösung funktioniert gut, nur sobald die Bedingte Formatierung mit =Kommentar(ZS) gesetzt ist, läuft das angegebene Makro nicht mehr durch. Eine Fehlermeldung bekomme ich aber auch nicht.

Vielleicht hast du mehr Durchblick.

LG
Ray


  

Betrifft: AW: Marko Beschleunigen ?
von: onur
Geschrieben am: 03.12.2018 17:39:19

Wenn du keine Fehlermeldung bekommst, woher weisst du, dass es nicht läuft?
Du weisst, dass das Makro nur einmal pro Sitzung (beim Öffnen der Datei) läuft, oder?


  

Betrifft: AW: Marko Beschleunigen ?
von: Ray
Geschrieben am: 03.12.2018 20:03:19

Hi,

Ja ich weiß dass das Makro nur beim Start läuft. Das soll es auch.
Ich stelle aber fest, dass das Marko halt kein Blattschutz setzt beim Öffnen.
Aber sobald ich die Formel =Kommentar aus den Bedingten Formatierungen lösche,
und die Datei wieder starte, wird der Blattschutz mit allen eingestellten Kriterien wieder gesetzt.
Irgendwie kann ich das nicht sorecht nachvollziehen warum es ausgerechnet über die Formel in den Bedingten Formatierungen getriggert wird. Das Makro im Modul läuft ohne Meldung.

Grüße
Ray


  

Betrifft: AW: Marko Beschleunigen ?
von: onur
Geschrieben am: 03.12.2018 20:04:45

Kannst du mal die Datei posten?


  

Betrifft: AW: Marko Beschleunigen ?
von: onur
Geschrieben am: 03.12.2018 20:59:29

Schreib das mal in ein MODUL (ggf hinzufügen) und lösche Workbook_Open:

Private Sub auto_open()
 Dim WsTabelle As Worksheet
 For Each WsTabelle In Sheets
 WsTabelle.Protect UserInterfaceOnly:=True, Password:="123"
 WsTabelle.EnableOutlining = True
 WsTabelle.EnableAutoFilter = True
 WsTabelle.EnableSelection = xlNoRestrictions
WsTabelle.Protect UserInterfaceOnly:=True, DrawingObjects:=False, AllowFormattingCells:=True, _
Contents:=True, Scenarios:=True, AllowFormattingRows:=True, AllowInsertingRows:=True, Password:= _
 _
"123"
 Next WsTabelle
 Worksheets("Test").Activate
End Sub



  

Betrifft: AW: Marko Beschleunigen ?
von: Ray
Geschrieben am: 04.12.2018 15:39:04

Hallo onur,

Vielen Dank für deine Hilfe. Das war des Rätsels Lösung.
Nun funktioniert alles ohne Probleme und zügig.
Vielen Dank

Auch an die anderen für eure vorschläge.

Herzliche Grüße
Ray