Cells.Find, IF then, Schleife
12.08.2003 07:18:38
heiko
Mein Wunsch:
Ich möchte gern Daten in eine Mappe einlesen, im 1. Tabellenblatt (Table) Zellen mit "K" suchen, falls gefunden zur Zelle mit K in bestimmten Positionen angeordnete andere Zellenwerte von Table nach Tabellenblatt 3 kopieren und im Tabellenblatt 2 nach einem Wert aus Table suchen.
Letztendlich möchte ich im Tabellenblatt 3 bestimmte Werte haben und diese vergleichen.
Meine Probleme:
1. Was ist falsch beim 2. Cells.Find (siehe untenstehenden Code)?
Es kommt zum Laufzeitfehler 91.
2. Wie kann ich über MsgBox melden, dass der Wert der Variablen pnr in Tabellenblatt 2 nicht gefunden wurde und diesen in einer Variablen speichern ?
(If nichts gefunden then MsgBox und speichern in Variable xyz)
3. Wie definiere ich die Schleife, damit die Suche nach "K" und kopieren bis zum Dateiende erfolgt und nicht wie bei meinen bisherigen Versuchen beim 1. gefundenen K bleibt und dieses ewig kopiert?
(allgemein: Wie schreibe ich: Tu dies bis EoF)
Und hier der Code:
Sub suche_K()
Dim zeil, spal, zähler As Integer
zähler = 3 'für Kopfzeilen in Tabelle 3
Sheets("TABLE").Select
'HIER sollte Schleife einsetzen
'suchen von Zellen mit Inhalt K
Cells.Find(What:="K", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True) _
.Activate
zeil = ActiveCell.Row 'übergibt die Zeilenzahl der aktiven Zelle an Vari. zeil
'Datum kopieren
Cells(zeil, 7).Activate
Selection.Copy
Sheets("Tabelle3").Select
Cells(zähler, 2).Activate
ActiveSheet.Paste
'Uhrzeit kopieren
Sheets("TABLE").Select
Cells(zeil, 8).Activate
Selection.Copy
Sheets("Tabelle3").Select
Cells(zähler, 3).Activate
ActiveSheet.Paste
'Ostwert kopieren
Sheets("TABLE").Select
Cells(zeil + 5, 3).Activate
Selection.Copy
Sheets("Tabelle3").Select
Cells(zähler, 7).Activate
ActiveSheet.Paste
'Nordwert kopieren
Sheets("TABLE").Select
Cells(zeil + 6, 2).Activate
Selection.Copy
Sheets("Tabelle3").Select
Cells(zähler, 8).Activate
ActiveSheet.Paste
'Höhe kopieren
Sheets("TABLE").Select
Cells(zeil + 7, 2).Activate
Selection.Copy
Sheets("Tabelle3").Select
Cells(zähler, 9).Activate
ActiveSheet.Paste
'Punktnummer suchen
Sheets("TABLE").Select
pnr = Cells(zeil, 3).Value
Sheets("Tabelle3").Select
Cells(zähler, 1).Value = pnr
Sheets("Tabelle2").Select
'Cells.Find funktioniert nicht
Cells.Find(What:=pnr, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
zähler = zähler + 1
Sheets("TABLE").Select
'Schleife
End Sub
Vielen Dank im Voraus.
Heiko