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

Tabelle auslesen und kopieren nach Wert X

Tabelle auslesen und kopieren nach Wert X
16.08.2002 12:59:41
Jörg G.
Hallo,

ich hatte schonmal gepostet und mir ist von Karl Doppler geholfen worden.
Hier das Macro welches er mir geschickt hatte:

Public Sub Auswerten()
Dim lngRow As Long, lngRowDest As Long
Dim intCounter As Integer, intCopyCount As Integer
Dim varKrit As Variant, varFind As Variant
Application.ScreenUpdating = False
varKrit = Worksheets("Startseite").Range("A70").Value
If varKrit = "" Then Exit Sub
With Worksheets("Simpati-Daten").Range("D:D")
Set varFind = .Find(What:=varKrit, After:=Range("D1"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious, _
MatchCase:=True)
If Not varFind Is Nothing Then
intCounter = 1
lngRow = varFind.Row
With Worksheets("Auswert").Range("D:D")
lngRowDest = .Range("D65536").End(xlUp).Row - 1
End With
Do
If Cells(lngRow - 5 * intCounter, varFind.Column).Value = varFind Then
intCopyCount = intCopyCount + 1
Rows(lngRow - 5 * intCounter).Copy _
Destination:=Worksheets("Auswert").Range("A" & _
lngRowDest + 1 + intCopyCount)
End If
intCounter = intCounter + 1
If intCopyCount = 5 Then Exit Do
Loop Until lngRow - 5 * intCounter < 1
Else: MsgBox "Sollwert 1 """ & varKrit & """ wurde nicht gefunden"
End If
End With
Application.ScreenUpdating = True
Call Auswerten_1
End Sub

Anforderung war den letzten Wert "X" in der Spalte D zufinden und von dort 5Zeilen im Abstand von je 5Zeilen zu kopieren.
Wie gesagt das ging ja auch super nun habe ich aber ein Problem
die Anforderung hat sich wie folgt geändert :

Es sollen nun 2 werte in den Spalten D:E in der gleichen Zeile gefunden werden und dann wie oben kopiert werden.
Ich habe schon mehrere Sachen ausprobiert komme aber nie zum Ergebnis.
Wer Kann mir helfen????

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Tabelle auslesen und kopieren nach Wert X
16.08.2002 17:33:00
Charlie
Hallo, Jörg!

Ich bin's wieder! Wenn nur kopiert werden soll, wenn in D und E der gleichen Zeile der gleiche Wert vorhanden ist, sollte es wie folgt klappen:

Eine Ausweitung des zu durchsuchenden Bereichs auf beide Spalten ist unnötig, weil ja ohnehin in beiden Spalten der gleiche Wert stehen muss. Ist er in D in einer Zeile nicht vorhanden, brauchst Du nicht auch noch in E prüfen.

Viel Erfolg,
Charlie

Re: Tabelle auslesen und kopieren nach Wert X
19.08.2002 08:08:08
Jörg G
Hallo Karl ,

verstehe ich das nun richtig das nun in den Spalten D und E nach einen Wert X gesucht wird.Ist es denn auch machbar das für jede spalte einen Wert nehmen kann und wenn der Inhalt dem Wert entspricht dann die Zeile kopiert wird.

Gruss Jörg

Anzeige
Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 01:14:35
Charlie
Hallo, Jörg!

Zu Frage 1: Nein, das siehst Du so nicht ganz richtig. Es wird in meinem Codebeispiel nur die Spalte D durchsucht und die 5. Zeile oberhalb der Fundzelle kopiert, wenn sowohl in D als auch in E das Suchkriterium vorkommt. Das Durchsuchen der Spalte E wird dadurch, dass beide Zellen das Kriterium enthalten müssen nicht nur hinfällig, sondern würde ja dazu führen, dass alle Zeilen, die in Spalte D und E das Suchkriterium enthalten, doppelt kopiert werden. Oder verstehe ich die Problemstellung falsch und es kann vorkommen, dass sich beide Werte in der gleichen Zeile befinden, aber nicht ausgehend von der 1. Fundzelle in D, sondern von der 1. Fundzelle in E? Irgendwie bin ich etwas verwirrt.

Zu Frage 2: Hier ist mir die Aufgabenstellung (auch) nicht ganz klar.

Ist es für beide Spalten der gleiche Suchbegriff oder soll in beiden Spalten ein anderes Suchkriterium gesucht werden? Soll auch immer nur die 5. Zeile oberhalb der Fundzelle kopiert werden? Wenn das Suchkriterium für beide Spalten gleich ist, soll dann jede 5. Zeile oberhalb der Fundzelle in der Spalte kopiert werden, in der es früher gefunden wird? Oder soll immer die 5. Zeile kopiert werden, die oberhalb der Fundzelle in D und dann jede 5. Zeile, die oberhalb der Fundzelle in E das Suchkriterium enthält?

Gruß,
Charlie

Anzeige
Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 08:23:07
Jörg
Hier nochmal die Beschreibung Karl,
mal schauen ob ich es hinbekomme:

Ich habe eine Aufzeichnung einer Klimatestfahrt wenn ich diese einlese habe ich mehrere Spalten, welche Datum, Ist Temp, Soll Temp, Ist Feuchte und Soll Feuchte sind.
Das Ziel soll sein über ein Userform soll mann den gewünschten
Istwert Temp. und den Istwert Feuchte in 2 Textboxen eingeben.
Das Macro müste dann in der Spalte 3 (Ist temp)nach dem in der Textbox eingegenen WErt suchen und in der Spalte 4 (Ist Feuchte) ebenso. Wurde nun der letzte vorkommende IStwert der mit den werten aus den Textboxen übereinstimmt gefunden , dann soll von dort ab 5mal jede 5. zeile mit den Werten in eine Mappe 2 kopiert werden.

Ich hoffe nun ist die Beschreibung besser

Anzeige
Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 12:21:10
Charlie
Hallo, Jörg!

Folgendes Makro sollte das gewünschte Ziel erreichen:

Viel Erfolg,
Charlie

Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 13:18:44
Jörg
Hallo Karl,

wenn ich nun die Spalten C und E statt C und D
habe muss ich dann hier
Set varFind = .Find(What:=varIstTemp, After:=Range("C1"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlPrevious, _
MatchCase:=True)
irgend etwas in dem Breich ändern???

Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 13:27:45
Charlie
Hallo, Jörg!

Nein, Du musst in allen Zeilen die Referenzierung auf Spalte D auf Spalte E ändern, z.B. aus
If Range("D" & varFind.Row) <> varIstFeuchte
muss
If Range("E" & varFind.Row) <> varIstFeuchte
werden.

Und das für alle Zeilen in denen Range("D"... im Code vorkommt.

Viel Erfolg,
Charlie

Anzeige
Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 14:30:18
Jörg
Habe ich gemacht aber ich bekomme immer

Keine Übereinstimmung beider Kriterien existent

zurück obwohl die Werte vorhanden sind.

Der Ratlose Jörg

Re: Tabelle auslesen und kopieren nach Wert X
20.08.2002 15:30:34
Charlie
Hallo, Jörg!

Das kann folgende Gründe haben:
1) Zumindest 1 Textbox enthält eine Zahl, die aber von der Texbox als Text zurückgegeben wird. Es gibt daher dann keine Übereinstimmung mit den tatsächlichen Zahlen in der Tabelle. Wandle in diesem Fall den Inhalt der Textbox(en) in eine Zahl um, z.B. varIstTemp = CInt(UserForm1.TextBox1).

Dabei musst Du beachten, dass Du den für die Zahl richtigen Umwandlungstyp verwendest. Genaueres zu den Umwandlungstypen (z.B. CInt für den Variablentyp "Integer", CDbl für "Double", CSng für "Single", CLng für "Long" usw.) erfährst Du aus der Onlinehilfe.

Können die Textboxen Text oder Zahlen enthalten, solltest Du den Wert vorher abfragen, weil die Umwandlung sonst zu einem Fehler führt. Z.B:

2) Das aktive Blatt ist nicht das Blatt "Simpati-Daten". In diesem Fall musst Du entweder alle Verweise auf das Blatt durch
Worksheets("Simpati-Daten").... richten oder Du machst vor dem Ausführen des Suchvorgangs das Blatt "Simpati-Daten" zum aktiven Blatt.

Viel Erfolg,
Charlie

Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige