Ich verzweifele gerade (seit 2 Tagen) an einem Makro, das irgendwie nicht laufen will. Dabei klang es eigentlich relativ einfach.
Also, ich habe diverse Tabellenblätter, von denen das eine z.B. BA2 und ein anderes Datenbank heißt. In BA2 stehen in Spalte A ab Zeile 5 verschiedene Begriffe, wie z.B. 1.4301, St37, etc. Manchmal sind es nur 5 Begriffe, ein anderes Mal aber auch 120, variiert also immer.
In der Tabelle Datenbank stehen Überschriften in 7 Spalten, z.B. Metall, Glas, etc. Unter diesen Überschriften sind die einzelnen Stoffe aufgezählt, also unter Metall unter anderem die beiden Suchbegriffe 1.4301 und St37, neben zahlreichen anderen.
Was möchte ich jetzt machen?
Ich benötige ein Makro, dass in das Tabellenblatt BA2 geht, in Spalte A den ersten Begriff (z.B. St37) auswählt und sich diesen merkt. Danach soll in dem Tabellenblatt Datenbank dieser Begriff exakt gesucht werden. Wenn er gefunden wird, soll er in der Spalte, in der der Suchbegriff steht, bleiben und die Überschrift (Reihe 1 der Spalte, in diesem Fall Metall) kopieren und in dem Tabellenblatt BA2 den Begriff St37 durch die Überschrift aus dem Tabellenblatt Datenbank (hier also Metall) ersetzen.
Wenn der Begriff nicht gefunden wurde, soll er in Tabellenblatt BA2 mit dem nächsten Begriff weitermachen. Dabei aber nicht immer bis in Zeile 65000 alles absuchen, sondern nur bis zum Ende der Begriffe. Anschließend soll er mit dem nächsten Tabellenblatt (BB2) fortfahren.
Ich schaffe es, dass er den letzten Begriff in Spalte A findet, diesen Wert kopiert, und die Position dieses Begriffes (Reihe, Spalte) in zwei Variablen schreibt:
Sub SuchErsetzen()
Dim xyz As Long
Dim hpg As Long
Dim rngTargetCell As Range
Dim Position As Range
Dim posMerkerZeile As Integer, posMerkerSpalte As Integer
For lRow = Sheets("BA2").Range("A" & Rows.Count).End(xlUp).row To 5 Step -1
xyz = Cells(lRow, 1).Value
Cells(lRow, 1).Select
posMerkerZeile = ActiveCell.row
posMerkerSpalte = ActiveCell.Column
MsgBox (xyz)
MsgBox (posMerkerZeile)
MsgBox (posMerkerSpalte)
Mit MsgBox gebe ich die Werte zur Kontrolle aus, klappt. Aber auch nur einen Durchlauf lang. Wenn er den nächsten Suchbegriff speichern soll, kommt eine Fehlermeldung. Was ich allerdings überhaupt nicht schaffe, ist die Suche in dem Tabellenblatt "Datenbank", sodass er mir die Überschrift der entsprechenden Spalte kopiert und den Suchbegriff in dem Blatt "BA2" dann durch diese ersetzt.Kann mir hier wer weiterhelfen oder hat jemand schonmal ein ähnliches Makro geschrieben?
Vielen Dank in jedem Fall im Voraus!