Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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
VBA Kommentar suchen, DoEvents?
24.01.2014 13:20:20
WolfgangN
Hallo,
ich habe mir ein Makro gebaut, dass bestimmten Text aus Kommentaren sucht und u.a. der Reihe nach von unten nach oben anzeigt. Die Tabelle hat ca. 3500 Zeilen, in 3 Spalten soll gesucht werden und es hat ca. 1300 Kommentare, diese werden immer mehr. In Excel 2003 lief dies innerhalb von ca. 2 Sek. bis der erste Text gefunden wurde, bei Excel 2013 dauert dies mehr als 30 Sek., außerdem kommt in meinem Userform die Meldung:"Keine Rückmeldung", es läuft aber weiter. Ich habe jetzt Application.ScreenUpdating = False eingebaut, damit funktioniert die Möglichkeit alle Kommentare mit dem Suchtext anzuzeigen und alle Kommentare einzufärben, aber leider nicht die Kommentare der Reihe nach von unten nach oben anzuzeigen. Dort kommt fast immer in meinem Userform "Keine Rückmeldung." Ich könnte noch mit der langen Zeit leben, aber die Meldung stört sehr. Ich las mit DoEvents kann ich diese Meldung ausblenden, weiß aber nicht wie und wo ich dies einbauen soll. Am liebsten wäre mir natürlich eine Möglichkeit dies so schnell wie mit Excel 2003 zu realisieren.
In meiner Beispieldatei sind nur wenige Kommentare, deshalb nur manchmal die Meldung und sehr kurz.
Vielen Dank und auf Hilfe hoffend
Wolfgang
Hier noch ein Ausschnitt aus meinem Makro:
'''steht das Folgende hier nicht, wird der erste Fund nicht markiert,
Application.ScreenUpdating = True
'Markieren von unten nach oben (For each geht nur von oben nach unten),
For i = maxRow To 9 Step -1
For x = 5 To 3 Step -1
If Not Sheets("Werte").Cells(i, x).Comment Is Nothing Then
If InStr(UCase(Sheets("Werte").Cells(i, x).Comment.Shape.DrawingObject.Text), varAbfrage) > 0 Then
Zaehler = Zaehler + 1
ActiveSheet.Cells(i, x).Comment.Visible = True
ActiveSheet.Cells(i, x).Select
Label7.Visible = True
Label7.Caption = "Es ist die " & Zaehler & ". Zelle markiert"
UserForm7.Show
Do
DoEvents
If geklickt = True Then Exit Do
If verlassen = True Then Exit Sub
Loop
geklickt = False
ActiveSheet.Cells(i, x).Comment.Visible = False
End If
If GesZaehler - 1 = Zaehler Then
UserForm7.CommandButton1.Enabled = False
End If
End If
Next x
Next i
https://www.herber.de/bbs/user/88960.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Kommentar suchen, DoEvents?
24.01.2014 13:36:38
EtoPHG
Hallo Wolfgang,
Da hilft DoEvents überhaupt nicht. Die DoEvent-Funktion übergibt die Steuerung an das Betriebssystem um anstehende Befehle auszuführen. Da ist aber bei dir nicht der Fall. Ich hab deine Mappe unter XL 2010 getestet und da kommen die Resultat in Sekunden-Bruchteilen zurück!
Gruess Hansueli

AW: VBA Kommentar suchen, DoEvents?
24.01.2014 13:57:11
WolfgangN
Hallo Hansueli,
vielen Dank für Deine Information über DoEvents,
Ich habe Excel 2010 nicht, sondern nur die Testversion von Excel 2013 und dort tritt dieser Fehler leider auf. Ich hatte meine Datei auch mal unter Excel 2007 probiert, dort auch kein Fehler.
Ich denke es liegt an Excel 2013 und weiß keine Lösung.
Bei mir mit Excel 2013 tritt der Fehler in meiner Originaldatei sehr störend auf, in der Beispieldatei
zwar weniger, da wenig Kommentare, aber trotzdem fast immer.
Gruß
Wolfgang

Anzeige
AW: VBA Kommentar suchen, DoEvents?
24.01.2014 14:49:52
Luschi
Hallo Wolfgang,
jede Tabelle besitzt eine eigene Auflistung, welche Zellen einen Kommentar besitzen.
Hier ein kleines Beispiel:

Sub testComment()
Dim cmt As Comment
For Each cmt In ActiveSheet.Comments
'alle Zellen MIT Kommentar durchlaufen
MsgBox cmt.Parent.Address & " - " & cmt.Text
Next cmt
Set cmt = Nothing
End Sub
Gruß von Luschi
aus klein-Paris

AW: VBA Kommentar suchen, DoEvents?
24.01.2014 15:13:29
WolfgangN
Hallo Luschi,
Danke für Dein Beispiel. Ich möchte aber nicht alle Zellen mit Kommentar anzeigen lassen und dann mehr als 1000 mal okay klicken. Ich möchte wie in meinem Beispiel Text in den Kommentaren suchen und dann
der Reihe nach von unten nach oben angezeigt bekommen, mit der Möglichkeit des Endes.
Gruß
Wolfgang

Anzeige
AW: VBA Kommentar suchen, DoEvents?
24.01.2014 16:25:38
Dieter
Hallo Wolfgang,
du pirschst dich etwas kompliziert an den Kommentartext heran. Excel 2013 scheint das nicht zu mögen. (Was meine Abneigung gegen diese hässliche Version wieder einmal bestätigt!)
Ersetze mal die Zeile
If InStr(UCase(Sheets("Werte").Cells(i, x).Comment.Shape.DrawingObject.Text), varAbfrage) > 0 Then
durch
If InStr(UCase(Sheets("Werte").Cells(i, x).Comment.Text), varAbfrage) > 0 Then
und etwas weiter unten die Zeile
If InStr(UCase(comZelle.Shape.DrawingObject.Text), varAbfrage) > 0 Then
durch
If InStr(UCase(comZelle.Text), varAbfrage) > 0 Then
Dann funktioniert das auch unter Excel 2013 recht schnell.
mfg
Dieter

Anzeige
Vielen Dank
24.01.2014 16:50:30
WolfgangN
Hallo Dieter,
funktioniert bestens, vielen Dank
Viele Grüße von
Wolfgang

AW: Vielen Dank
25.01.2014 14:27:37
Luschi
Hallo Wolfgang,
mein Bespiel sollte nur zeigen, wie man die Zellen mit Kommentaren durchläuft.
Also nicht jede Zelle durchlaufen und fragen, ob für sie einen Kommentar definiert ist, sondern die Auflistung der Kommentare durchlaufen und dann handeln wie es Dieter gezeigt hat:
If InStr(UCase(cmt.Text), varAbfrage) > 0 Then
So wird die Anzahl der Durchläufe erheblich reduziert.
Gruß von Luschi
aus klein-Paris

AW: Vielen Dank
25.01.2014 18:32:36
WolfgangN
Hallo Luschi,
danke für Deine Erklärung, aber bei meinem Level (VBA nur mit Recorder) konnte ich Deinen Vorschlag nicht umsetzen. Mit Dieters Code und Deinem jetzigen Hinweis verstehe ich jetzt den Sinn.
Gruß
Wolfgang
Anzeige

29 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige