Option Explicit
Sub Austausch_1_Bezugsrecht()
Dim strRIC As String, rngSuch As Range 'Variablen deklarieren
Dim rngF As Range, lngZ As Long, lngErst 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
With .Worksheets(1)
lngZ = .Cells(.Rows.Count, 3).End(xlUp).Row 'letzte in Sp.C belegte Zeile
Do
Sheets(5).Range("B5").Value = strRIC ' Soll das noch so sein?
'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
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
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
End Sub
Noch ein Tipp:
Worksheets(1).Range("b35").FormulaR1C1 = Worksheets(4).Range("b3").FormulaR1C1
mit dem Problem zu tun?Sub special_dividend()
Dim strRIC As String, rngSuch As Range 'Variablen deklarieren
Dim rngF As Range, lngZ As Long, lngErst 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
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
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
specialdividend = Application.InputBox("Bitte Betrag der special Dividend oder Capital Return _
eingeben:", "Dateneingabe:", , , , , , 1)
If specialdividend = False Then Exit
Sub
For Each Zelle In Range("F8:F40")
If Zelle <> "" Then Zelle.Offset(0, 15) = specialdividend
Next Zelle
For Each Zelle In Range("F8:F40")
AS_Geschäft = Sheets("Parameter").Range("h8").FormulaR1C1
If Zelle <> "" Then Zelle.Offset(0, 10) = AS_Geschäft
Next Zelle
Worksheets(5).Range("c17").FormulaR1C1 = Worksheets(4).Range("b12")
Worksheets(5).Range("c11").Value = Worksheets(4).Range("b7").Value
Sheets(4).Range("a3").Value = Sheets(5).Range("b5").Value
End Sub
Option Explicit
Sub special_dividend()
Dim strRIC As String, rngSuch As Range 'Variablen deklarieren
Dim rngF As Range, lngZ As Long, lngErst As Long
' ----------------------------------------------------------------------- neu Anfang
Dim specialdividend As Double
' ----------------------------------------------------------------------- neu Ende
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
' ----------------------------------------------------------------------- neu Anfang
If .Cells(lngZ, 6) = .Cells(lngZ - 1, 6) Then _
.Cells(lngZ, 21) = specialdividend ' schreibe in Spalte U
' ----------------------------------------------------------------------- neu Ende
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
End Sub
Die Ergänzungen habe ich gekennzeichnet.
' ----------------------------------------------------------------------- neu Anfang
MsgBox "Ausgabe " & specialdividend
If .Cells(lngZ, 6) = .Cells(lngZ - 1, 6) Then _
.Cells(lngZ, 21) = specialdividend ' schreibe in Spalte U
' ----------------------------------------------------------------------- neu Ende
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort