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

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

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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige