Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1148to1152
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

VBA Daten finden mit find/findnext Methode

VBA Daten finden mit find/findnext Methode
Axel
Hallo,"
ich habe mal wieder ein kleines Problem mit VBA.
Ich habe ein Excelblatt mit mehreren Tabellen, die ich in kopieren will. Wobei dieses Blatt immer wieder neu erstellt wird und somit sich die Tabellen jedes Mal ändern.
Die Tabellen sind begrenzt, von oben nach unten durch "leere Zellen" und von Links nach Rechts durch den Begriff "TIME".
Ich hatte mir vorgestellt, dass ich praktisch die Eckpunkte in einen Array schreibe und dann anhand dieses die Daten kopiere. Leider funktioniert meine find/findnext Methode nicht so richtig.
Der erste Teil funktioniert sehr gut und ich bekomme die Spalten in denen die Tabellen anfangen. Aber der Zweite Teil (Zeilen) funktioniert leider nicht wie gewünscht.
Ich habe auch schon versucht beide Suchen in eine Funktion zu schreiben, aber das ist mir leider auch misslungen.
Sub Datenfinden()
Dim i As Integer
Dim gefundene_Zelle_TIME As Range, gefundene_Zelle_leer As Range, ErsteZelle As Range
Dim Spalte(3)
Dim Zeile(3)
i = 0
With Sheets(1).Range("A2:ZZ2")
Set gefundene_Zelle_TIME = .Find(What:="TIME", After:=.Cells(.Cells.Count), LookIn:=xlValues,  _
SearchDirection:=xlNext, MatchCase:=False) 'Sucht den Begriff
If Not gefundene_Zelle_TIME Is Nothing Then
ErsteZelle = gefundene_Zelle_TIME.Address
Do
Spalte(i) = gefundene_Zelle_TIME.Column
Set gefundene_Zelle_TIME = .FindNext(gefundene_Zelle_TIME)
i = i + 1
Loop While Not gefundene_Zelle_TIME Is Nothing And gefundene_Zelle_TIME.Address   _
ErsteZelle 'Prüf so lange, bis wieder die erste Zelle gefunden wurde
End If 'Prüft ob der Suchbegriff überhaupt existiert
End With
i = 0
Spaltenbuchstabe = Split(Cells(1, Spalte(i)).Address, "$")(1)
Set gefundene_Zelle_leer = Range(Spaltenbuchstabe & ":" & Spaltenbuchstabe).Find(What:="",  _
LookIn:=xlValues, SearchDirection:=xlNext, MatchCase:=False) 'Sucht den Begriff
If Not gefundene_Zelle_leer Is Nothing Then
ErsteZelle = gefundene_Zelle_leer.Address
Do
Zeile(i) = gefundene_Zelle_leer.Row
i = i + 1
Spaltenbuchstabe = Split(Cells(1, Spalte(i)).Address, "$")(1)
Set gefundene_Zelle_leer = Range(Spaltenbuchstabe & ":" & Spaltenbuchstabe). _
FindNext("")
Loop While Not gefundene_Zelle_leer Is Nothing And gefundene_Zelle_leer.Address   _
ErsteZelle 'Prüft so lange, bis wieder die erste Zelle gefunden wurde
End If 'Prüft ob der Suchbegriff überhaupt existiert
End Sub
Habt ihr evtl. einen Tipp für mich? Gibt es evtl. eine einfachere Methode?
Gruß und Dank
Axel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Daten finden mit find/findnext Methode
07.04.2010 09:18:56
ChrisL
Hi Axel
Probier mal...
gefundene_Zelle_leer = Cells(65536, Spalte(i)).End(xlUp).Row
evtl. noch plus 1
Gruss
Chris
AW: VBA Daten finden mit find/findnext Methode
07.04.2010 13:04:52
Axel
Hallo Chris,
deine Lösung funktioniert. Danke!
@Christian:
Du hast sicherlich recht damit, dass mir die ein oder andere Grundlage fehlt, aber dieser Fehler ist durch das komprimieren der eigentlichen Datei entstanden.
Gruß und Dank
Axel
AW: VBA Daten finden mit find/findnext Methode
07.04.2010 10:09:14
Christian
Hallo,
ich bezweifel auch, dass der erste Teil funktioniert.
Dein "ErsteZelle" ist ein String, du hast dies aber als Range deklariert.
Andere Variablen deklariertst du erst gar nicht...
Einen Teil referenzierst du auf die 1. Tabelle, ein anderen Teil auf das aktive Blatt.
fang mal mit den Basics an... dort wirst du über Themen stolpern, die dir bei VBA gut seit Jahren bestens bekannt sein sollten.
Gruß
Christian
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige