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

Index-Vergleich mit Makro

Index-Vergleich mit Makro
26.05.2013 12:10:44
Andre´
Hallo alle zusammen,
ich habe folgenden Code hier aus dem Forum an meine Bedürfnisse angepasst:
https://www.herber.de/forum/archiv/1052to1056/1052399_IndexVergleichals_Makro.html#1052399
Sub Zellenwertfind()
Dim varM As Variant, lngZe As Long, lngSp As Long
With Tabelle1
'Zeile ausfindig machen
varM = Application.Match("Wert8", .Columns(1), 0)
If IsError(varM) Then
MsgBox "'Wert8' nicht in Spalte A gefunden"
Exit Sub
Else
lngZe = CLng(varM)
End If
'Spalte ausfindig machen
varM = Application.Match("Test", .Rows(1), 0)                '

Meine erste Frage:
Wie kann man nach einem Datum suchen?
Mit: varM = Application.Match(CDate("08.01.2013"), .Rows(1), 0)' Zweite Frage:
Ich möchte gern wie in der angehängten Bsp. Datei, dass die Vorgaben aus der Tabelle2 benutzt werden und in der Tabelle1 gesucht und in die Tabelle2 bei Übereinstimmung geschrieben werden.
Es muss also jede einzelne Zelle der ersten Zeile beginnend ab B1 geprüft werden mit dem Wert aus A2, ist kein Wert in Zeile 1 vorhanden, dann das gleiche mit dem Wert aus A3 ...
In der Tabelle2 habe ich die Werte eingetragen, die durch das Makro wiedergegeben werden sollen.
https://www.herber.de/bbs/user/85528.xlsm
Ich bin für jeden Lösungsweg sehr dankbar.
MFG Andre

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW 1. Frage
26.05.2013 12:28:49
hary
Hallo Andre
sollte so gehen.
varM = Application.Match(CLng(CDate("08.01.2013")), .Rows(1), 0)

gruss hary

Frage 2 noch offen
26.05.2013 12:46:54
Andre´
Hallo Hary,
vielen Dank für die Lösung meiner ersten Frage, es funktioniert!
MFG Andre

AW: Frage 2 noch offen
26.05.2013 14:41:01
Tino
Hallo,
kannst mal diesen Code testen.
Code ist in Modul2
https://www.herber.de/bbs/user/85531.xlsm
Sub FindDaten()
Dim ArTab1, ArTab2, ArRow1, ArCol1, varCol, varRow, varSuch
Dim nR&, nC&

With Tabelle1
    nR = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile 
    nC = .Cells(1, .Columns.Count).End(xlToLeft).Column 'letzte Spalte 
    If nR < 2 Or nC < 2 Then Exit Sub 'keine Daten 
    ArTab1 = .Range("B2", .Cells(nR, nC)) 'Matrix 
    ArCol1 = .Range("A1", .Cells(nR, 1)) 'Spalte 1 = A 
    ArRow1 = Application.Transpose(.Range("A1", .Cells(1, nC))) 'Zeile 1 
End With

With Tabelle2
    nR = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile 
    nC = .Cells(1, .Columns.Count).End(xlToLeft).Column 'letzte Spalte 
    If nR < 2 Or nC < 2 Then Exit Sub 'keine Daten 
    
    ArTab2 = .Range("A1", .Cells(nR, nC)) 'Matrix Tab2 mit Zeile/Spalte 1 
    
    With Application
        For nR = 2 To Ubound(ArTab2)
            For nC = 2 To Ubound(ArTab2, 2)
                ArTab2(nR, nC) = 0 '0 wenn nichts gefunden 
                varSuch = ArTab2(nR, 1) 'Suchwert Zeile 
                If IsNumeric(varSuch) Then varSuch = CLng(varSuch)
                varRow = .Match(varSuch, ArCol1, 0) 'Zeile Suchen 
                If IsNumeric(varRow) Then 'gefunden 
                    varSuch = ArTab2(1, nC) 'Suchwert Spalte 
                    If IsDate(varSuch) Then varSuch = CLng(varSuch)
                    varCol = .Match(varSuch, ArRow1, 0) 'Spalte suchen 
                    If IsNumeric(varCol) Then 'gefunden 
                        ArTab2(nR, nC) = ArTab1(varRow - 1, varCol - 1) 'Wert in ArTab2 
                    End If
                End If
            Next nC
        Next nR
    End With
    'Daten in Tab2 zurückschreiben 
    .Range("A1").Resize(Ubound(ArTab2), Ubound(ArTab2, 2)).Value = ArTab2
End With


End Sub
Gruß Tino

Anzeige
Alle Fragen erl.
26.05.2013 15:14:36
Andre´
Hallo Tino,
vielen, vielen Dank für den Code, dieser funktioniert sehr gut!
Ich wünsche noch ein schönen Sonntag
MFG Andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige