Avatar billede JAHT Nybegynder
11. december 2010 - 16:35 Der er 1 kommentar og
1 løsning

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
Avatar billede excelent Ekspert
11. december 2010 - 18:56 #1
Send din fil eller et eks med dit layout
Avatar billede JAHT Nybegynder
21. januar 2012 - 20:47 #2
Lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester