Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Find

Find
01.12.2007 23:57:00
Eugen
Hallo Forum
Windows XP Sp2, office 2003 prof
Ich habe in VBA sechs verschachtelte „For Next“ Schleifen dessen Werte mit QuickSort sortiert werden und anschließend zusammen als Text z.B.“1,3,6,32,38,45“ definiert werden.
TXT = x1 & “,“ & x2 & “,“ & x3 & “,“ & x4 & “,“ & x5 & “,“ & x6
Dann wird geprüft ob TXT in der Tabelle schon vorhanden ist.

Function Suchen(ByRef TXT As String) As Boolean
Dim c
With Liste.Range("a1:iv65530")
Set c = .Find(TXT, LookIn:=xlValues)
If c Is Nothing Then
Cells(Zeile + 1, Spalte) = TXT
End If
End With
End Function


'_________Dann geht es in der Schleife weiter
Das klappt zum Anfang ganz gut, aber mit zunehmendem Datenvolumen findet VBA einen bereits eingetragenen Text nicht und tragt denselben Text noch einmal ein.
Ist es möglich das die Excel-Tabelle bei großen Datenvolumen die eingetragenen Werte zu langsam registriert als VBA sie verarbeitetet ?
Oder mache ich etwas falsch?
Zur Zeit geht es um 10087000 Zellen !!
Danke für eure Hilfe
Eugen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find
02.12.2007 00:11:00
Original
Hi,
Find in einer UDF hat noch nie richtig funktioniert, mach es mit einer Sub, zumal es laut deinem
Code keinen grund für eine Function gibt.
mfg Kurt

Kurt hat recht! 10 087 000 Zellen vielzuviel! orT
02.12.2007 03:08:42
Luc:-?
Gruß Luc :-?

AW: Kurt hat recht! 10 087 000 Zellen vielzuviel! orT
02.12.2007 18:12:43
Eugen
Hallo
Danke für deine schnelle Antwort
Wie weit ist zu viel?
1 Exceltabelle hat 16777216 Zellen, welche als Datenbereich oder Bezugsadressen benutzbar sind.
Auch die Anzahl der Tabellenblätter ist enorm, welche Verknüpfungen zu anderen Mappen ermöglichen. Eine Beschränkung so glaube ich gibt es nur bei Rechenleistung und Speicher.
Die Rechenleistung ist bei mir nicht relevant da diese Daten nur statisch sind.
Eugen

Anzeige
AW: Find
02.12.2007 17:52:00
Eugen
Hallo
Danke für eure schnelle Antwort.
Aber ob Funcion oder Sub, das Ergebnis ist das gleiche.
VBA übersieht während der Laufzeit einen bereits bestehenden Eintrag.
Suche ich im Tabellenblatt per Hand über Bearbeiten- Suchen, findet Excel den bestehenden Eintrag ohne Probleme.
Mein Eindruck ist, dass es sich dabei um einen „Synchronisation Fehler“ zwischen Tabelle und VBA handelt. Was ich damit meine ist, dass unter VBA die Find- Abfrage nicht auf die Bereitschaft der Tabelle wartet.
Die automatische Berechnung usw. habe ich bereits ausgeschaltet.
Eugen

Anzeige
AW: Find
02.12.2007 18:53:04
Harry
Hallo Eugen,
zwei vielleicht dumme Anmerkungen
1. Warum nutzt du eine Funktion und weißt dieser kein Ergebnis zu? Bsp.

Function Suchen(ByRef TXT As String) As Boolean
Dim c
With Liste.Range("a1:iv65530")
Set c = .Find(TXT, LookIn:=xlValues)
If c Is Nothing Then
Cells(Zeile + 1, Spalte) = TXT
            Suchen= True
Else
Suchen=False
        End If
End With
End Function


2. "Liste" ist global definiert?
Gruß
Harry

AW: Find
03.12.2007 16:56:31
Eugen
Hallo Harry
Zum 1.)
Aus gründen der Übersichtlichkeit habe ich die Zuweisung herausgenommen und nur das relevante ins Forum gestellt.
Zum 2.)
„Dim Liste As Object“ steht im selben Modul unter Allgemein.
Die Zuweisung ist in der Hauptroutine mit „Set Liste = Worksheets("Tabelle1")“ vorhanden.
Mit freundlichen Grüßen
Eugen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige