Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

Such Funktion

Such Funktion
12.12.2012 10:41:19
Alex
Hallo Zusammen
Folgendes Makro habe ich geschrieben, funktioniert aber nicht ganz. hat jemand eine Idee wo der Maulwurf begraben ist?

Sub suchen()
Dim i As Integer
Dim j As Integer
Dim zeilemax As Integer
zeilemax = ActiveSheet.Cells(65536, 1).End(xlUp).Row
For i = 1 To zeilemax
For j = 1 To zeilemax
If Sheets("Tabelle1").Cells(i, 7) = Sheets("Tabelle2").Cells(j, 5) Then
Sheets("Tabelle1").Cells(i, 20) = Sheets("Tabelle2").Cells(j, 12).
End If
Next j
Next i
End Sub

Das Ding soll folgendes machen.
Es wird in Tabelle 1 auf Spalte 7 der erste eintrag auf Tabelle 2 Spalte 5 gesucht.
Wenn dieser gefunden wurde, wird der Wert von Tabelle 2 Spalte 12 zu dem gesuchten Wert in Tabelle 1 Spalte 20 kopiert, selbe Zeile .
Danach wird der nächste wert in Tabelle 1 gesucht.
Hoffe das ist so verständlich :)
Gruss Alex

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Such Funktion
12.12.2012 10:48:18
Rudi
Hallo,
ohne Doppelschleife:
Sub suchen()
Dim i As Integer
Dim j
Dim zeilemax As Integer
With Sheets("Tabelle1")
zeilemax = .Cells(65536, 1).End(xlUp).Row
For i = 1 To zeilemax
j = Application.Match(.Cells(i, 7), Sheets("Tabelle2").Columns(5), 0)
If Not IsError(j) Then
.Cells(i, 20) = Sheets("Tabelle2").Cells(j, 12)
End If
Next i
End With
End Sub

Gruß
Rudi

65536 ? - Iiiiiiihhhhh ! ;-) _oT
12.12.2012 10:55:47
NoNet
_oT = "ohne Text"

das hab ich jetzt nicht ....
12.12.2012 11:03:46
Rudi
Hallo,
.... beachtet.
Allerdings würde das bei mir immer funktionieren, da meine Tabellen kürzer sind.
Wenn's hoch kommt 20.000 Zeilen.
Gruß
Rudi

Anzeige
Klar: 65536 reicht meistens - sieht aber doof aus
12.12.2012 11:08:44
NoNet
_oT

Doof? Na, dann richtet doch 'ne ...
12.12.2012 13:28:08
Luc:-?
…GlobalVariable dafür ein, Leute,
die auch noch per bedingter Kompilierung mit der richtigen GlobalKonstanten gefüllt wdn kann. Ich mache das (bei AddIns) auch so! ;-)
Gruß Luc :-?

Excel2010 und Cells(65536,1) ? - Würgh !
12.12.2012 10:54:55
NoNet
Hallo Alex,
um ehrlich zu sein, habe ich nicht so ganz verstanden, was gesucht und wann kopiert werden soll.
Was mir an Deinem Code allerdings auffällt :
1.) Der Punkt hinter Cells(j,12) muss weg !
2.) Wenn Du tatsächlich Excel 2010 verwendest, ist Cells(65536,1).end(xlup) nicht ganz korrekt (das verursacht bei mir immer Augenkrebs ;-) - ändere es besser in die universelle Schreibweise Cells(rows.count,1).End(xlUp)
Ansonsten scheint der Code OK zu sein. Beschreibe doch bitte nochmal, welchen Fehler (bzw. fehlerhaften Kopiervorgang) der Code produziert...
Gruß, NoNet

Anzeige
AW: Excel2010 und Cells(65536,1) ? - Würgh !
12.12.2012 11:22:07
Alex
Hallo.
Es giebt keine Fehlermeldung wird aber auch nichts übertragen.
Das Makro soll folgendes:
Wert von Tabelle 1 H4 Nehmen und in Tabelle 2 in E:E suchen.
Wen der Wert gefunden wurde zb in E456 dann soll der Wert L456 von Tabelle 2 in Tabelle 1 geschrieben werden und zwar in die 04.
Leider Funktioniert das nicht.
Gruss Alex

AW: Excel2010 und Cells(65536,1) ? - Würgh !
12.12.2012 11:51:10
Alex
Was vieleicht noch zu sagen ist, dass es sich etwa um 5000 Zeilen handelt.

AW: Such Funktion = SVerweis
12.12.2012 13:12:19
Daniel
Hi
das Makro macht doch nichts anderes als der SVerweis !
dann ist es am einfachsten und auch am schnellsten, die SVerweisfunktion als formel in die Zellen der Spalte 7 zu schreiben.
das sieht in der einfachsten Version so aus:
with sheets("Tabelle1").Range("T1:T" & Sheets("Tabelle1").Cells(Rows.count, 7).end(xlup).row)
.FormulaLocal = "=WennFehler(SVerweis(G1;Tabelle2!E:L;0);"""")"
.formula = .Value 'Formel durch Werte ersetzen
End With
Gruß Daniel

Anzeige
AW: bleibt noch die Frage, wozu noch Makro? owT
12.12.2012 16:09:56
Sheldon
Gruß
Sheldon

das frage ich mich auch immer wieder
12.12.2012 16:40:59
Daniel
viele Probleme lassen sich auch ohne Makro schnell und einfach mit Excelbasics lösen.
trotzdem ist es aber immer noch einfacher, einen Button zu klicken als eine Formel einzugeben.
allerdings ist meine Erfahrung, das der Lösungsweg, der ohne VBA der schnellste und einfachste ist, auch als Makro sehr schnell läuft und einfach zu programmieren ist (u.U. mit unterstützung des Recorders).
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige