wenn eine leere Zelle in einem variablen Bereich gefunden wird, dann nehme den Wert aus der vorherigen Zelle und schreibe diesen Wert in die leere Zelle.
Mit unterem Makro komme ich nicht weiter, da der Bereich fix angegeben ist, während der Bereich eigentlich variabel ist.
Beispiel
1. Durchlauf Makro
gefundene Werte werden eingetragen in dem BEREICH (A8:Q15).
Anhand eines Makros soll jetzt in P8:P15 (Bereich variabel, beim zweiten Durchlauf des Makros kann es ein anderer Bereich sein) nach leeren Zellen gesucht werden. P8 wird als leere Zelle gefunden. In diese leere Zelle soll dann die Formel aus P9 eingetragen werden.
2. Durchlauf Makro
gefundene Werte werden eingetragen in dem BEREICH (A16:Q24 ).
Anhand eines Makros soll jetzt in P16:P24 (Bereich variabel, beim zweiten Durchlauf des Makros kann es ein anderer Bereich sein) nach leeren Zellen gesucht werden. P16 wird als leere Zelle gefunden. In diese leere Zelle soll dann die Formel aus P17eingetragen werden.
Kann mir jmd. einen Tip geben. Für einen festen Bereich habe ich kein Problem eine leere Zeile zu finden und auszufüllen, aber für variablen Bereich schon. Anbei unten das Makro.
Vielen Dank für die Unterstützung.
Dani
Sub special_dividend()
Dim strRIC As String, rngSuch As Range 'Variablen deklarieren
Dim rngF As Range, lngZ As Long, lngErst As Long
Dim specialdividend As Double
Dim AS_Geschäft As Range
Dim rngRange As Range
specialdividend = Application.InputBox("Bitte Betrag der special Dividend " & _
"oder Capital Return eingeben:", "Dateneingabe:", , , , , , 1)
If specialdividend = False Then Exit Sub
' 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
With .Worksheets(1)
lngZ = .Cells(.Rows.Count, 3).End(xlUp).Row 'letzte in Sp.C belegte Zeile
Do
Sheets(5).Range("B5").Value = strRIC
lngZ = lngZ + 1 ' nächste (leere) Zeile
.Cells(lngZ, 1) = rngF.Offset(0, -2) ' a
.Cells(lngZ, 2) = rngF.Offset(0, -1) ' b
.Cells(lngZ, 3) = strRIC ' C
.Cells(lngZ, 4) = rngF.Offset(0, 1) ' d
.Cells(lngZ, 5) = rngF.Offset(0, 2) ' e
.Cells(lngZ, 6) = rngF.Offset(0, 3) ' f
.Cells(lngZ, 17) = rngF.Offset(0, 7) ' Q
.Cells(lngZ, 12) = rngF.Offset(0, 5) ' L
.Cells(lngZ, 20) = rngF.Offset(0, 13).FormulaR1C1 ' T
.Cells(lngZ, 18) = rngF.Offset(0, 12).FormulaR1C1 ' R
If .Cells(lngZ, 5) = .Cells(lngZ - 1, 5) Then _
.Cells(lngZ, 21) = specialdividend ' schreibe in Spalte U
If .Cells(lngZ, 5) = .Cells(lngZ - 1, 5) Then _
.Cells(lngZ, 16) = Sheets("Parameter").Range("h8").FormulaR1C1 ' schreibe _
in Spalte U
Set rngF = rngSuch.FindNext(rngF)
Loop While Not rngF Is Nothing And rngF.Row lngErst
End With
Else
MsgBox "Die Aktie ist nicht vorhanden bzw. die Eingabe wurde abgebrochen!", _
vbCritical, "Nur Zahlen eingeben!"
End If
End With
For Each Zelle In Range("F8:F40")
last_trade_Aktie = Sheets("Parameter").Range("b3").FormulaR1C1
If Zelle "" Then Zelle.Offset(0, 1) = last_trade_Aktie
Next Zelle
'sucht leere Zeele in Spalte U und füllt diese mit Zelle unterhalb. Bedeutet, dass Betrag _
special Dividend in leere Zelle auch eingetragen wird. For Each rngRange In Sheets(1).Range("p8:p110") (HIER LIEGT DAS PROBLEM!!!!!!!!!!!!!!!!!!!)
If IsEmpty(rngRange) Then rngRange = rngRange.Offset(1, 0).FormulaR1C1
Next rngRange
End Sub