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

Cells.Find, IF then, Schleife

Cells.Find, IF then, Schleife
12.08.2003 07:18:38
heiko
Guten Morgen, Experten.
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

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

Betreff
Datum
Anwender
Anzeige
AW: Cells.Find, IF then, Schleife
12.08.2003 13:07:24
regina
Hallo,
hier vielleicht schon mal einen Ansatz
das Makro sucht in der Tabelle nach einem Wert den du über eine Inputbox eingeben kannst
nach "K". wenn er einen Eintrag gefunden hat kopiert er die ganze Zeile in Tab 3.

Sub MultiSelectA()
'  Suchbegriff in Tabelle suchen und Fundzeilen auswählen
'Mailing-Index:  1364/01
'Wie kann ich einen durch InputBox abzufragenden Suchbegriff in einer
'Tabelle suchen und alle Fundzeilen auswählen lassen?   Selectieren
Modul1:
'Option Explicit
Dim wks As Worksheet
Dim rngFind As Range, rngRows As Range
Dim lngRow As Long
Dim strFind As String, strSearch As String
strSearch = InputBox("Suchbegriff:", , "test")
Set rngFind = Cells.Find(strSearch)
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
strFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(after:=rngFind)
If rngFind.Address = strFind Then Exit Do
Loop
End If
rngRows.Select
Selection.Copy
Sheets("Tabelle3").Range("a1").PasteSpecial Paste:=xlAll
End Sub

Mit dem suchen das habe ich nicht ganz verstanden, in welcher Tab(Spalte) soll was gesuchtwerden und wo welche Tab (Spalte).
Vielleicht noch mal genauer.
Vielleicht hilft es ja schon eion bißchen.
Gruß regina

Anzeige
späte Meldg. weil PC defekt
13.08.2003 08:34:30
heiko
Hallo Regina
Leider war der PC defekt, deshalb kann ich erst jetzt wieder schreiben.
Suchen möchte ich in Tabelle Table nach K und später im Tabellenblatt 2 nach dem Wert der Variablen pnr.
Das Problem mit meiner Suche mittels Cell.Find tritt nicht nur bei der 2. Suche auf, sondern immer, wenn kein Wert gefunden wurde.
Jetzt werde ich aber mal Deine Variante probieren.
Vielen Dank Heiko

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige