Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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

Makro "Zellen ohne Formel bearbeiten" sehr langsam

Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 10:06:29
Unwissender
Hallo, ich habe hier ein Makro welches alle zellen in einem bestimmten bereich Markieren bearbeiten soll (löschen und auf Standard zurücksetzen) die KEINE Formel (egal welche) enthalten.

nur ist das ganze super langsam, da wartet man gut 1 Minute eb das fertig ist...gibts da andere Möglichkeiten das zu beschleunigen?
Makro schaut so aus:

Dim Zelle As Range

For Each Zelle In ActiveSheet.Range("D6:AH369")
If Not Zelle.HasFormula Then
Zelle.ClearContents
Zelle.ClearComments
With Zelle.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

With Zelle.Font
.Name = "Arial"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End If
Next Zelle

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 10:25:07
UweD
Hallo

so? Nicht Einzeln, sondern in einem Rutsch.

Sub gdgd()

On Error GoTo Fehler
With ActiveSheet.Range("D6:AH369").SpecialCells(xlCellTypeConstants, 23)
.ClearContents
.ClearComments
With .Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

With .Font
.Name = "Arial"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End With
Exit Sub
Fehler:
MsgBox "Keine entsprechende Zellen vorhanden"
End Sub


.SpecialCells(xlCellTypeConstants, 23 ist gleichbedeutend mit
- Bereich markieren
- Suchen und Auswählen
- Inhalte auswählen
- Konstanten
- OK

Die Fehlerbehandlung wird gebraucht, wenn Keine entsprechenden Zellen vorhanden sind

LG UweD
Anzeige
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 12:51:19
JoWE
....und warum nicht einfach über die vorhandenen Möglichkeiten:
- Menü Start, Suchen und auswählen, Inhalte auswählen, Konstanten - danach das dann "markierte" einfach löschen mit der Entf-Taste
- Menü Start, Suchen und auswählen, Inhalte auswählen, Kommentare- danach das dann "markierte" einfach löschen mit: rechte Maustaste, Kommentar löschen
- Markieren einer Standard-formatierten Zelle, Menü Start, Format übertragen, dann den in Frage kommenden Bereich mit der Maus markieren - fertig
Kann man vermutlich auch aufzeichnen
Gruß
Jochen
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 19:29:09
Piet
Hallo

haut denn der Vorschlag von UweD mit diesem Befehl hin? Wird damit der Bereich richtig gelöscht??
With ActiveSheet.Range("D6:AH369").SpecialCells(xlCellTypeConstants, 23)

Wenn ja, dann setze dahinter noch mal denselben Block, aber mit diesem Anfangs Befehl:
With ActiveSheet.Range("D6:AH369").SpecialCells(xlCellTypeBlanks)

Wie ich die Sache sehe beeinflußt dieser Vorgang keine Rahmen. Einfach zwei Blöcke nacheinander ausführen.

mfg Piet
Anzeige
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 13:01:30
Unwissender
Muss schon ein makro sein, weil der Teil in ein vorhandenes Makro mit eingebaut wird.

Hab es jetzt getestet, funktioniert leider nicht so wie erhofft.

Es gibt Zellen, da steht z.B. nur ein Kommentar drin, sonst nichts. und es gibt welche, die haben nur eine andere Füllfarbe, sonst ebenfalls keinerlei einträge oder dergleichen.
das wird von dem SpecialCells(xlCellTypeConstants, 23) ignoriert, diese Zellen werden nicht mit selektriert bzw "bereinigt"

Im Prinzip soll er alle Zellen die keine formel enthalten aber selektieren oder entsprechend bearbeiten. Kann auch gut sein, das manch einer mal etwas in eine Zelle reingeschrieben hat mit einer anderen Schriftart und Schriftgröße und dann den Text wieder rausgelöscht hat...dann soll die Zelle ebenfalls wieder auf Standard Arial, 12 mit zurück gesetzt werden durch das Makro. Daher ist denke ich mal der einzige Bezugspunkt das "If Not Zelle.HasFormula" - damit würde Excel ja alle Zellen nochmal bearbeiten (die eben keine Formel drin haben)
Anzeige
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 13:09:35
JoWE
aufgezeichnet und dann bearbeitet:
Sub Makro2()

Dim myRng As Range
Set myRng = Range("B3:H18")
myRng.SpecialCells(xlCellTypeConstants, 23).ClearContents
myRng.SpecialCells(xlCellTypeComments).ClearComments
Range("A1").Copy 'das wäre eine standardformatierte Zelle
myRng.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
End Sub
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 14:27:49
daniel
"Es gibt Zellen, da steht z.B. nur ein Kommentar drin, sonst nichts. und es gibt welche, die haben nur eine andere Füllfarbe, sonst ebenfalls keinerlei einträge oder dergleichen.
das wird von dem SpecialCells(xlCellTypeConstants, 23) ignoriert, diese Zellen werden nicht mit selektriert bzw "bereinigt"
"

Zellen, die keinen Inhalt haben, kannst du mit SpecialCells(xlcelltypeblanks) selektieren und dann in gleicher weise bearbeiten.

du müsstest also die Aktion mit beiden varianten durchführen.
Wenn du die Zellen auf Standard zurücksetzen willst, sollte ein .Clear reichen.
das löscht Inhalte, Formate und Kommentare.
das ganze in On Error Resume Next, da sonst ein Fehler auftritt, wenn es die gesuchten Zellen nicht gibt:

with  ActiveSheet.Range("D6:AH369")

On Error Resume Next
.SpecialCells(xlcelltypeconstants).Clear
.SpecialCells(xlcelltypeblanks).Clear
On Error Goto 0
end with


die 23 bei den Celltypeconstants kannst du auch weglassen, da du ja alle Inhalte löschen willst.
Ansonsten könnte man über diesen Wert noch gezielt auf die Untergruppen Zahl(1), Text(2), Wahrheitswert(4) und Fehler(16) zugreifen.
Mehrere kann man dann durch Addtion gleichzeitig auswählen, also 3=1+2 für Zahlen und Texte und dann auch 23=1+2+4+16 für alle Typen.
Alle Typen werden aber auch genommen, wenn man den Wert nicht angibt.

Gruß Daniel
Anzeige
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 13:03:22
JoWE
aufgezeichnet und dann bearbeitet:
Sub Makro2()

Dim myRng As Range
Set myRng = Range("B3:H18")
myRng.SpecialCells(xlCellTypeConstants, 23).ClearContents
myRng.SpecialCells(xlCellTypeComments).ClearComments
Range("A1").Copy 'das wäre eine standardformatierte Zelle
myRng.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
End Sub

AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 13:15:44
Unwissender
geht auch nicht, weil die Zellen einen Rahmen haben, die inneren Zellen haben eine feinere Rahmen-Linienstärke als die äußeren, und wenn ich eine Vorlagenzelle kopiere, haut auch die Linienstärke nicht mehr hin :-/

wie gesagt, meine im Start-Thread genannte Formel funktioniert ja genau so wie ich es brauche, nur klapert er da eben wirklich jede Zelle einzeln ab und bearbeitet die.
Ich denke es würde deutlich schneller laufen, wenn er erstmal alles in dem genannten Bereich selektiert, dann schaut wo Zellen mit einer Formel sind und diese aus der Selektion wieder rausnimmt dann die übrig gebliebenen entsprechend bearbeitet
Anzeige
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 10:48:36
Unwissender
OK, Ich probiere es nachher, danke ersteinmal :)
Aber woran erkennt er, ob eine Zelle eine Formel hat, oder nicht? er soll ja nur die Zellen ohne Formel bearbeiten - egal ob da eine Zahl drin steht, oder ein Kommentar, oder ob die Zelle einfach nur eingefärbt wurde, daher hatte ich das "If Not Zelle.HasFormula Then" mit genutzt
AW: Makro "Zellen ohne Formel bearbeiten" sehr langsam
01.03.2024 11:08:10
UweD
Versuch das mal so schrittweise, wie ich das unten beschrieben habe.

Genau das, was dann ausgewählt ist, wird durch das SpecialCells(xlCellTypeConstants, 23) gewählt

LG UweD

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige