Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA - Excel Auswertung

VBA - Excel Auswertung
25.01.2007 09:29:31
Florian
Guten Morgen zusammen,
ich möchte per Makro verschiedene Funktionen auf ein Datenblatt anwenden.
Zum einen filtern, falls bestimmte Zellen bestimmten Werten entsprechen diese z.B. löschen. Was mir noch Probleme bereit ist, dass ich nicht weiß, wie man bestimmt wieviele Datensätze in einem Datenblatt vorhanden ist, bzw. diese zählt.
Hatte schon was mit EOF getestet, leider gibt mir die Excel 97 Hilfe auch nicht so viel her.
Außerdem habe ich beim Löschen der Datensätze starke Geschwindigkeitseinbuße, gibt es da eine Möglichkeit dies zu beschleunigen? Gibt es eine Möglichkeit eine Datei vor dem Einlesen/Importieren (per Makro) zu bearbeiten (also z.B. Datensätze zu löschen?
Zudem wäre es sehr hilfreich, wenn mir jemand eine Seite posten könnte, auf der die einzelnen Werte der Variablen "Error" abgebildet sind, damit der Abfang von Fehler nicht in VBA Fehlermeldungen endet.
Vielen Dank schonmal für die Hilfe im Voraus!
Gruss Flo

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Excel Auswertung
25.01.2007 12:10:24
Florian
**** QUOTE ****
Was mir noch Probleme bereit ist, dass ich nicht weiß, wie man bestimmt wieviele Datensätze in einem Datenblatt vorhanden ist, bzw. diese zählt.
**** QUOTE ENDE ****

Private Function CountData(Sheet As String) As Variant
LetzteZeile = Range("A65536").End(xlUp).Row
MsgBox "Es sind " & LetzteZeile & " Datensätze im Datenblatt " & Sheet
CountData = LetzteZeile
End Function

Gruss Flo
AW: VBA - Excel Auswertung
25.01.2007 13:07:58
fcs
Hallo Flo,
Bremsen bei Makros können noch sein Bildschirmaktualisieren, ständiges Neuberechnen der Tabelle und Ereignismakros, die bei Änderungen in der Tabelle gestartet werden.
Diese Aktivitäten kann man aber je nach Bedarf/Notwendigkeit ein-/ausschalten.
Nachfolgend eine entsprechender Beispielcode.
Starke Bremser sind auch "Select" und "Activate". Diese kann man meist vermeiden und die betreffenden Objekte direkt ansprechen.
Deine Function kannst du noch etwas vereinfachen und korrekter Weise solltes du vor dem Range auch noch das Tabellenblatt angeben, das der Funktion als Parameter übergeben wird, da es sonst zu fehlerhaften Ergebnissen kommen kann.
Gruß
Franz

Sub Datenzeilen()
Dim Zeilen As Long, wks As Worksheet
Set wks = Worksheets("Tabelle1")
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
'Letzte Zelle mit Inhalt in Spalte A
Zeilen = wks.Cells(wks.Rows.Count, "A").End(xlUp).Row
Zeilen = CountData(wks.Name)
'über benutzen Datenbereich
Zeilen = wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1
Application.EnableEvents = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Private Function CountData(Sheet As String) As Variant
CountData = Worksheets(Sheet).Range("A65536").End(xlUp).Row
MsgBox "Es sind " & CountData & " Datensätze im Datenblatt " & Sheet
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige