Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten bereinigen per VBA

Forumthread: Daten bereinigen per VBA

Daten bereinigen per VBA
24.06.2015 11:11:12
Berni
Liebe Excellenzen!
Ich habe eine Planungstabelle gebastelt, in welcher in einer Spalte Stunden und in der Nebenspalte Euro ausgerechnet werden. Da sich nun die Tabelle in die Breite zieht (Spalte H bis AQ) habe ich die Eurotabellen ausgeblendet und nur die Ergebnisspalten rechts belassen. Wenn nun aber jemand die eingetragenen Daten löschen möchte und dabei alle Spalten markiert, sind natürlich auch die Formeln futsch. Daher habe ich ein Makro aufgesetzt und dieses mit einem Button verknüpft.
Sub BereichBereinigen()
Dim Zelle As Range
Range("H9:AO370").Select
For Each Zelle In Selection
If Zelle.HasFormula Or IsDate(Zelle) Then
Else
If IsNumeric(Zelle) Then
Zelle.Value = ""
Else
Zelle.Value = 0
End If
End If
Next Zelle
Range("F6").Select
End Sub
Das Makro funktioniert zwar, ist aber ziemlich langsam unterwegs, da es natürlich alle Zellen durchsucht.
Meine Frage ist nun, ob man diesem Makro nicht einen Turbo verpassen könnte.
Vorerst Danke und
LG Berni

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Daten bereinigen per VBA
24.06.2015 12:12:09
AndrRo
Hallo Berni,
die üblichen Standards halt:
'Bildschirmaktualierung ausschalten
'Berechnungen ausschalten
'Events ausschalten
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManuell
.EnableEvents = False
End With
und alles am Schluss einschalten:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
Gruss AndrRo

Anzeige
AW: Daten bereinigen per VBA
24.06.2015 12:32:15
ransi
Hallo,
Versuch mal ohne Schleife:
Option Explicit

Sub machs()
    With Sheets("tabelle1").Range("H9:AO370").Cells
        .SpecialCells(xlCellTypeConstants, xlNumbers).Value = 0 'Zahlen
        .SpecialCells(xlCellTypeConstants, 22).Value = "" 'Texte, Fehlerwerte, Wahrheitswerte
    End With
End Sub



ransi

Anzeige
AW: Daten bereinigen per VBA
24.06.2015 12:26:31
Daniel
Hi
wenn alle Inhalte ausser Formeln gelöscht werden sollen, dann geht auch einfach und schnell:
Range("H9:AQ307").SpecialCells(xlcelltypeconstants, 3).ClearContents
nur mit dem Datum wirds dann halt schwierig, weil das für Excel eine Zahl ist.
über SpecialCells legst du zuerst mit dem xlcelltypeconstants fest, das aus dem vorgegebenen Bereich nur die Zellen mit einem konstanten Inhalt ausgewählt werden (dh keine Formeln).
der zweite Parameter legt dann fest, ob du Zahlen(1), Texte(2), Wahrheitswerte (4) oder Fehler(16) anspreichen willst.
Kombinationen erhälst du durch Addition der werte (Texte und Zahlen = 1+2 = 3)
Gruß Daniel

Anzeige
AW: Daten bereinigen per VBA
24.06.2015 14:55:12
Berni
Danke Daniel!
Ich war mir der Schleife wohl etwas umständlich unterwegs. Deine Lösung funktioniert perfekt, einfach super.
Nochmals vielen Dank
LG Berni
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige