Ich möchte, dass untere Makro das gefundene Ergebnis (in diesem Fall "RIC Aktie" aus dem Datenblatt 2) nicht ins Datenblatt 1 in C8 einträgt wie das Makro unten anzeigt, sondern: Das Makro soll in Tabellenblatt 1 in Spalte C die lezte mit Text befüllte Zeile suchen und das gefundene Ergebnis in der nächsten leeren Zeile schreiben. Macht das für Euch Sinn? Ich tue mich selber ziemlich schwer damit.
Bsp.: Über die Inputbox wird der RIC (ALVG.DE) im Datenblatt 2 Spalte C gesucht. Dieser kann mehrmals vorkommen. Der gefundene RIC soll nicht ins Datenblatt 1 C8 eingetragen werden (da C8 bereits befüllt mit Text), sondern soll in Spalte C die letzte volle Zeile bzw. Zelle suchen und in der nächsten leeren eintragen. D.h. das Ergebnis wird immer in einer leeren Zelle eingetragen, die das Makro selber rausfinden muß. Ich kann ihr keine feste Zelladdresse vorgeben.
Mein PRoblem ist, das das untere Makro auf einer fixen Zelladressen (C8) aufbaut, diese aber eigentlich variabel sein soll. Die letzte befüllte Zelle soll in der Spalte C1:C100 gesucht werden.
Vielen Dank für die Hilfe.
Dani.
Sub Austausch_1_Bezugsrecht()
'Variablen definieren
Dim strRIC As String, rngSuch As Range
Dim rngF As Range, lngZ As Long, lngErst As Long, lngU As Long
' RIC wird gesucht in AlleBestände_alleFonds in Spalte C; Eingabe von RIC für das erste Bezugsrecht in A35, C8
strRIC = InputBox("Bitte RIC Aktie eingeben:", "Dateneingabe:")
With Workbooks("Template_alle_Kapitalmaßnahmen in Arbeit.xls")
Set rngSuch = .Worksheets(2).Columns(3)
Set rngF = rngSuch.Find(What:=strRIC, LookAt:=xlPart)
If Not rngF Is Nothing Then
lngErst = rngF.Row
Do
lngZ = rngF.Row
With .Worksheets(1)
.Range("c8") = strRIC
End With
Sheets(5).Range("B5").Value = strRIC
'alle Informationen zu dem jeweilligen RIC (ISIN, NAME, BESTAND) aus dem Datenblatt AlleBestände_alle Fonds werden
'kopiert in und in Datenblatt "KapMaßnahme" eingetragen
With .Worksheets(1)
.Cells(8 + lngU, 3) = strRIC ' c8
.Cells(8 + lngU, 1) = rngF.Offset(0, -2) ' a8
.Cells(8 + lngU, 2) = rngF.Offset(0, -1) ' b8
.Cells(8 + lngU, 4) = rngF.Offset(0, 1) ' d8
.Cells(8 + lngU, 5) = rngF.Offset(0, 2) ' e8
.Cells(8 + lngU, 6) = rngF.Offset(0, 3) ' f8
.Cells(8 + lngU, 17) = rngF.Offset(0, 7) ' n8
.Cells(8 + lngU, 12) = rngF.Offset(0, 5) ' l8
.Cells(8 + lngU, 20) = rngF.Offset(0, 13).FormulaR1C1 ' q8
.Cells(8 + lngU, 18) = rngF.Offset(0, 12).FormulaR1C1 ' q8
End With
lngU = lngU + 1
Set rngF = rngSuch.FindNext(rngF) ' ### korrigiert
Loop While Not rngF Is Nothing And rngF.Row lngErst
Else
MsgBox "Die Aktie ist nicht vorhanden bzw. die Eingabe wurde abgebrochen!", _
vbCritical, "Nur Zahlen eingeben!"
End If
End With