Kopier værdier fra rækker inden for et faste interval - VBA Makro
Hej.....Jeg har lavet en oversigt over værdipapirer i Excel 2007 versionen. Arket er lavet til nogle af mine kollegaer. For at lave arket så brugervenligt som muligt, har jeg derfor lavet nedenstående VBA koder, der automatisk opdaterer oversigen - altså kopier div. ultimoværdier til primoværdien.
Herudover jeg jeg ligeledes lavet to makroer som indsætter og slette et værdipapire/række.
Mit problem består i, at når jeg indsætter en ny linier så bliver ultimoværdierne ikke kopieret over til primoværdierne for den nye linie og når jeg sletter en linie, så kopiere den for meget med.
Følgende værdier/kolonner skal kopieres:
a)Ansk. kurs. ultimo (kolonne S) --> kopieres til Ansk. kurs primo (kolonne G)
b) Kurs ultimo (Kolonne U) --> kopieres til kurs primo (kolonne I)
c) Nominel ultimo (kolonne r) --> kopieres til nominel primo (kolonne F)
d) Slette kurserne ultimo (kolonne U)
Bemærk at det kun er værdierne der skal kopieres og ikke selve formlerne.
Lige nu er arket indelt i følgende 3 "overskrifter":
1. Aktier (Række 8 til 10)
2. Obligationer (Række 15 til 17)
3. Investeringsforeninger (Række 22 til 25)
Det er altså meningen at "området" / de rækker hvor der skal kopieres værdier fra er 8 til 10, 15 til 17, 22 til 25 og "området" skal så flytte med afhængig af om der bliver indsat slette linier.
Jeg har lavet nedenstående VBA kode:
Sub OpdaterData()
Application.ScreenUpdating = False
Raekke = ActiveCell.row
Kolonne = ActiveCell.Column
Dim MyCell
MyCell = ActiveCell.Value
ans = MsgBox("De er i gang med at opdaterer værdipapiroversigten. Bemærk at De ikke kan fortryde handlingen efterfølgende!" & vbCr & " " & vbCr & _
"Det anbefales derfor, at du først gemmer denne version inden du opdaterer oversigten!" & vbCr & " " & vbCr & _
"Ønsker du at gemme?" & vbCr & " " & vbCr & _
"Husk at slette data fra til- og afgange under de enkelte faner for værdipapirerne, efter du har opdateret oversigten!", 32 + vbYesNoCancel, "Opdatere værdipapiroversigten!!!!!")
If ans = vbYes Then
Application.Dialogs(xlDialogSaveAs).Show
ElseIf ans = vbNo Then
Application.ScreenUpdating = False
Raekke = ActiveCell.row
Kolonne = ActiveCell.Column
' OpdaterData kurser og beholdning
Range("S7:S10").Select
Application.CutCopyMode = False
Selection.Copy
Range("G7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("U7:U10").Select
Application.CutCopyMode = False
Selection.Copy
Range("I7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("R7:R10").Select
Selection.Copy
Range("F7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("S15:S17").Select
Application.CutCopyMode = False
Selection.Copy
Range("G14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("U15:U17").Select
Application.CutCopyMode = False
Selection.Copy
Range("I14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("R15:R17").Select
Application.CutCopyMode = False
Selection.Copy
Range("F14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("S22:S25").Select
Selection.Copy
Range("G21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("U22:U25").Select
Application.CutCopyMode = False
Selection.Copy
Range("I21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("R22:R25").Select
Application.CutCopyMode = False
Selection.Copy
Range("F21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.ScreenUpdating = True
ElseIf iRet = vbCancel Then
Exit Sub
End If
End Sub
Håber at der er en der kan hjælpe?
På forhånd tak