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

Tabellenabfrage ähnlich Sverweis m. VBA

Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 10:49:10
Markus
Hallo,
ich versuche mich gerade darin, mein vor kurzem erlangtes Wissen über Makros umzusetzen, mußte aber feststellen, daß mir noch viel fehlt.
Mein Problem: Ich will mit Makro, ähnlich Funktion "Sverweis" aus einer Tabelle ("Konkurrenz") Werte mit best. Suchkriterien abfragen. In diesem Fall sind es drei. Diese will ich in einem zweitem Tabellenblatt auswerten ("Auswertung1") Suchkriterien stehen dort fortlaufend in Spalte A + B, und ein festes Suchkriterium ist in Zelle "C1". Ausgegeben werden soll mir der zugehörige Werte aus Spalte 19("Konkurrenz"). Mit meinem Makro erhalte ich aber nur einen Wert in der obersten Zeile und dann endet alles (ohne Fehlermeldung).Bitte um Hilfe!!!!
Sub Frage1()
Dim i As Long
Dim x, y, a, b, c, z
For i = 2 To 65000
x = Worksheets("Auswertung1").Cells(i, 1).Value
y = Worksheets("Auswertung1").Cells(i, 2).Value
z = Worksheets("Auswertung1").Range("C1").Value
a = Worksheets("Konkurrenz").Cells(i, 1).Value
b = Worksheets("Konkurrenz").Cells(i, 4).Value
c = Worksheets("Konkurrenz").Cells(i, 5).Value
If a = x And b = y And c = z Then
Worksheets("Auswertung1").Cells(i, 3).Value = Worksheets("Konkurrenz").Cells(i, 19)
Exit For
End If
Next
End Sub

Viele Grüße und Danke
Markus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 11:30:00
Klaus-Dieter
Hallo Markus,
ist deine Liste tatsächlich 65000 Zeilen lang?
Zu deiner Frage, Du kannst die Funktion SVerweis auch in VBA einsetzen, das geht so: Application.WorksheetFunction.VLookup(Suchbegriff, Suchmatix, Suchspalte) die Syntax ist also identisch mit der Tabellenfunktion.
Viele Grüße Klaus-Dieter

Online-Excel
Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 11:46:00
Markus
Hallo Klaus-Dieter,
mein Text ist keine 65000 Zeilen lang. Das mit dem SVerweis in VBA werde ich mir auf jden Fall notieren, aber soweit ich weiß, habe ich bei dieser Funktion nur einen Suchbegriff und bei meiner jetzigen Tabelle benötige ich drei.
Gruß Markus
Anzeige
AW: Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 12:27:00
Klaus-Dieter
Hallo Marks,
warum legst du die Schleife dann so groß aus? Da hat Excel dann unnötigerweise einiges zu "rattern".
Viele Grüße Klaus-Dieter

Online-Excel
AW: Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 12:44:36
Klaus-Dieter
Hallo Markus,
so müsste es gehen:

Option Explicit
Sub Frage1()
Dim i As Long
Dim lZiel1 As Long
Dim lZiel2 As Long
Dim lZeile As Long
lZiel1 = Sheets("Auswertung1").Range("A:IV").Find("*", searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
lZiel2 = Sheets("Konkurrenz").Range("A:IV").Find("*", searchorder:=xlByRows, _
searchdirection:=xlPrevious).Row
For lZeile = 2 To lZiel1
For i = 2 To lZiel2
If Sheets("Auswertung1").Cells(lZeile, 1) & Sheets("Auswertung1").Cells(lZeile, 2) & _
Sheets("Auswertung1").Cells(1, 3) _
_
= Sheets("Konkurrenz").Cells(i, 1) & Sheets("Konkurrenz").Cells(i, 4) & _
Sheets("Konkurrenz").Cells(i, 5) _
Then
Sheets("Auswertung1").Cells(lZeile, 3) = Worksheets("Konkurrenz").Cells(i, 19)
Next i
Next lZeile

Habe den Quelltext nicht getestet. Wenn deine Listen sehr lang sind, kann das relativ lange dauern, dann bitte noch mal melden, es gibt da Möglichkeiten, das deutlich zu beschleunigen. Wollte dir aber eine Change lassen, den Quelltext zu verstehen.
Viele Grüße Klaus-Dieter

Online-Excel
Anzeige
AW: Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 13:30:41
Markus
Hallo Klaus-Dieter,
leider bekomme ich mit Deinem Makro nur einen Dauerläufer und nichts passiert.
Die Lösung von ede funktioniert, auch wenn sie nicht die schnellste ist.
Ich habe aber nichts gegen zwei Lösungen, wenn du noch lust hast. Daraus kann ich nur lernen.
Gruß
Makus
AW: Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 12:46:07
ede
hallo,
versuch mal dieses makro:
Sub Frage1()
Dim i As Long
Dim x, y, a, b, c, z
For i = 2 To 10
x = Worksheets("Auswertung1").Cells(i, 1).Value
y = Worksheets("Auswertung1").Cells(i, 2).Value
z = Worksheets("Auswertung1").Range("C1").Value
For i2 = 1 To 10
'a = Worksheets("Konkurrenz").Cells(i, 1).Value
'b = Worksheets("Konkurrenz").Cells(i, 4).Value
'c = Worksheets("Konkurrenz").Cells(i, 5).Value
If x = Worksheets("Konkurrenz").Cells(i2, 1).Value And _
y = Worksheets("Konkurrenz").Cells(i2, 2).Value And _
z = Worksheets("Konkurrenz").Cells(i2, 3).Value Then
Worksheets("Auswertung1").Cells(i, 3).Value = Worksheets("Konkurrenz").Cells(i2, 19)
End If
Next i2
Next i
End Sub

gruss
Anzeige
AW: Tabellenabfrage ähnlich Sverweis m. VBA
02.03.2007 13:32:55
Markus
Hallo Ede,
danke für Deine Lösung. Funktioniert auch, ist aber leider ziemlich träge. Wenn du noch was zum Beschleunigen wüßtest, würde ich mich freunen, aber das sie funktioniert, ist das wichtigste.
Gruß und Dank
Markus

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige