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

Altes Makro läuft nicht

Altes Makro läuft nicht
25.10.2007 07:30:49
Frank
Ich lese Daten aus einer Datenbank über eine ODBC Abfrage ein. In einer Spalte stehen Namen untereinander. Aufgrund der Datenstruktur steht zunächst pro Tag immer wieder der selbe Name untereinander. Damit ich aber die Daten o berechnen kann wie ich es brauche muss ich die doppelten Namen löschen, so dass pro Tag immer nur 1 Zeile mit dem jeweiligen Namen stehen bleibt. Das hat bisher mit einem Makro auch sehr gut funktioniert, wobei das Makro noch zu Excel 2003/Xo Zeiten entstanden ist.
Jetzt habe ich Excel 2007 und möchte aufgrund der größeren Anzahl der Zeilen die kompletten Jahresdaten einlesen. Das war vorher aufgrund der nur rd. 65.000 Zeilen nicht möglich. Jetzt kann ich die Daten einlesen, aber das Makro funktioniert nicht mehr. Es funktioniert auch nicht wenn ich die Zeilen auf 1.048.... anpasse. Kann mir jemand sagen warum. Nachstehend das "alte" Makro.

Sub tt()
Dim n As Integer
For n = Range("N65536").End(xlUp).Row To 2 Step -1
If Cells(n, 14) = Cells(n - 1, 14) Then Range("C" & n & ":E" & n).ClearContents
Next n
End 

Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Altes Makro läuft nicht
25.10.2007 07:45:15
Luschi
Hallo Frank,
Du mußt die Variable 'n' so definieren: Dim n As Long
Der Datentyp 'Integer' geht nur bis 32Tausend und ein paar Zerquetschte.
Gruß von Luschi
aus klein-Paris

AW: Altes Makro läuft nicht
25.10.2007 08:16:37
Hajo_Zi
Hallo Frank,
der Vefehl Range("N65536").End(xlUp).Row führt zu einer falschen Zahl, falls die letzte Zeile in der Spalte belegt ist.

Option Explicit
Sub tt()
Dim N As Long
Dim LoLetzte As Long
'   Das führt zu Fehler unter Versionen vor 2007 falls keine Zelle ausgewählt wurde
If Not TypeOf Selection Is Range Then Exit Sub ' Hinweis von Beverly (Karin)
'   Prüfng ob Tabelle ausgewählt
If TypeName(ActiveSheet)  "Worksheet" Then Exit Sub
'   letzte belegte Zeile unabhängig von Excelversion für Spalte N (14)
Application.ScreenUpdating = False
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 14)), Cells(Rows.Count, 14).End(xlUp).Row, Rows. _
Count)
For N = LoLetzte To 2 Step -1
If Cells(N, 14) = Cells(N - 1, 14) Then Range("C" & N & ":E" & N).ClearContents
Next N
Application.ScreenUpdating = True
End Sub



Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige