Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife ist zu langsam!!!

Schleife ist zu langsam!!!
Giuseppe
Hallo Freunde Guten Abend,
In diesem Code werden in 12 Blatter(Jan-Dez) die Zellen gesucht die ein Feiertage entsprechen und in der Zellen ein Kommentar eingefügt.
Ich möchte, dass der Code in Hintergrund läuft. Wie soll ich der Code ändern, bzw. was soll ich anstatt .Select benutzen, damit nicht alle Blätter nacheinander auf dem Bildschirm erscheinen?
Kann mich jemand helfen?

Sub FTanzeigen()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Dim ausdemplan As Variant
Dim ausfeiertage As Variant
Dim a As Integer
Dim b As Integer
Dim c As Integer
On Error Resume Next
For c = 1 To 12
For a = 4 To 34
Worksheets(c).Select
ausdemplan = Cells(5, a).Value
For b = 2 To 22
ausfeiertage = Sheets("Feiertage").Cells(b, 6).Value
If ausdemplan = ausfeiertage Then
Cells(4, a).Value = "*"
Cells(4, a).Select
ActiveSheet.Unprotect
Cells(4, a).AddComment
Cells(4, a).Comment.Visible = False
Cells(4, a).Comment.Text Text:=Sheets("Feiertage").Cells(b, 7).Value
End If
Next b
Next a
Next c
Application.ScreenUpdating = True
End Sub

Danke Giuseppe

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Schleife ist zu langsam!!!
xXx
Hallo,
ungetestet

Sub FTanzeigen()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Dim AusDemPlan As Variant
Dim AusFeiertage As Variant
Dim a As Integer
Dim b As Integer
Dim c As Integer
On Error Resume Next
For c = 1 To 12
For a = 4 To 34
With Worksheets(c)
AusDemPlan = .Cells(5, a)
For b = 2 To 22
AusFeiertage = Sheets("Feiertage").Cells(b, 6)
If AusDemPlan = AusFeiertage Then
.Unprotect
With .Cells(4, a)
.Value = "*"
.AddComment
.Comment.Visible = False
.Comment.Text Text:=Sheets("Feiertage").Cells(b, 7).Value
End With
End If
Next b
End With
Next a
Next c
Application.ScreenUpdating = True
End Sub

Gruß aus'm Pott
Udo
http://www.excelerator.de
Anzeige
AW: Schleife ist zu langsam!!!
Christoph
Hi Giuseppe,
ebenfalls ungetestet, (die Vergleichsfunktion so aus der Hand zu schreiben...da bin ich mir selbst noch nicht so sicher...)
probiers mal
Gruß
Christoph

Sub FTanzeigen()
ActiveSheet.Unprotect
Dim a As Integer, c As Integer
Dim b As Variant
On Error Resume Next
For c = 1 To 12
With Sheets(c)
.Unprotect
For a = 4 To 34
b = Application.Match(.Cells(5, a), Sheets("Feiertage").Range("F2:F22"), 0)
If Not IsError(b) Then
.Cells(4, a).Value = "*"
.Cells(4, a).AddComment
.Cells(4, a).Comment.Visible = False
.Cells(4, a).Comment.Text Text:=Sheets("Feiertage").Cells(CInt(b), 7).Value
End If
Exit For
Next a
End With
Next c
End Sub

Anzeige
Danke..und noch was!!
Giuseppe
Hallo xXx und Christoph,
danke.
noch 'ne Frage!!
Wie kann mann am Anfang der schleife alle Kommentare löschen.
z.B. in Bayern gibt es 12 FT. wenn ich auf z.B. auf Hamburg wechsel (nur 9 FT) sollen die 3 kommentare gelöscht werden.
Danke
Giuseppe
AW: Danke..und noch was!!
xXx
Hallo,
eigentlich ein Fall für den VBA-Recorder:
.cells.comment.delete
Gruß aus'm Pott
Udo
AW: Danke..und noch was!!
Christoph
hi,
Kommentare löschen zB mit:
Range("D4:AH4").ClearComments
Ich hab aber schon ein, zwei Fehler in meinem Code entdeckt...
das "Exit For" musst du löschen und den Range("F2:F22") zu Range("F1:F22") ändern, sonst kommt die falsche Zeilennr.
Gruß
Christoph
Anzeige
Danke! hat geklappt. o.T.
Giuseppe
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige