Avatar billede HBorg Juniormester
25. september 2011 - 20:15 Der er 7 kommentarer og
1 løsning

Kopi af værdier, hvis sand.

Hej.

Kan nogen hjælpe mig med følgende problem.

I celleområdet B8:H11, vil jeg gerne have indsat nogle tal fra et andet celleområde nemlig AL8:AR11 såfremt en værdi i J4 = 1.
Hvis værdien i J4 = 2, skal værdierne der indsættes i celleområdet B8:H11,tages fra område AL15:AR18 o.s.v.

Hvorledes kan det laves mest overskueligt?
Avatar billede HBorg Juniormester
25. september 2011 - 20:53 #1
Må heller tilføje at jeg benytter både excel 2007 og 2010.
Avatar billede Ialocin Novice
25. september 2011 - 21:31 #2
Hej HBorg

Jeg har følgende VBA kode, som virker i Excel 2003.
Se om du kan bruge den ?

Nedenstående kode virker på Sheet1 ... som du blot kan ændre til det sheet der passer dig ?

Tast alt + F11 i Excel, hvorefter VBA editoren åbnes.
Kopier koden ind i Sheet1´s Change hændelse.

Ønsker du at koden skal handle på andre tal en 1 eller 2, så kan du blot kopiere Case hændelserne nedad ....

Håber det gi´r mening ?

---------

Private Sub Worksheet_Change(ByVal Target As Range)

    'hvis celle J4 ændres
    If Target.Address = "$J$4" Then
        Dim v As Integer
        Dim r As Range
       
        'værdien i celle J4
        v = Target.Value
       
       
            'vælg værdien fra celle J4
            Select Case v
           
                'hvis værdien er 1
                Case 1
               
                    'kopier området AL8:AR11
                    Sheets("Sheet1").Range("AL8:AR11").Copy
                   
                    'vælg celle B8
                    Sheets("Sheet1").Range("B8").Select
                   
                    'indsæt det kopierede, startende i celle B8
                    ActiveCell.PasteSpecial (xlPasteValuesAndNumberFormats)
       
       
                    'fjern kopimarkeringen
                    Application.CutCopyMode = False
                   
                    'vælg celle J4
                    Sheets("Sheet1").Range("J4").Select
                   
                'hvis værdien er 2
                Case 2
               
                    'kopier området AL15:AR18
                    Sheets("Sheet1").Range("AL15:AR18").Copy
                   
                    'vælg celle B8
                    Sheets("Sheet1").Range("B8").Select
                   
                    'indsæt det kopierede, startende i celle B8
                    ActiveCell.PasteSpecial (xlPasteValuesAndNumberFormats)
       
       
                    'fjern kopimarkeringen
                    Application.CutCopyMode = False
                   
                    'vælg celle J4
                    Sheets("Sheet1").Range("J4").Select
                   
                   
                'hvis værdien er 3
                Case 3
               
                 
            End Select
       
       
       
   
    End If

End Sub

----------



Med venlig hilsen, Nicolai
Avatar billede BentTh Juniormester
27. september 2011 - 09:15 #3
I celle B8 indsætter du følgende formel:
=HVIS(J4=1;AL8;HVIS(J4=2;AL15;""))
tilsvarende/ændrede i øvrige celler i aktuelt område.
Avatar billede HBorg Juniormester
10. oktober 2011 - 10:15 #4
Ja, undskyld jeg først vender tilbage nu.... Har haft travlt med andet.

Jeg kan ikke få nogen af de to forslag til at virke.

Ialocin : Dit forslag ser fint ud, men jeg kan bare ikke få det til at virke.
Er heller ikke så kendt (skrab til) det med VBA... ;(

BentTh : Dit forslag giver mig kun værdien en en celle (ikke fra hele celle området), dvs. den kopiere ikke hele celle indholdet hvis betingelsen opfyldt.

Er det mig der er "not" eller gør jeg bare noget der ikke er rigtigt??

Har andre nogle vise råd.

P.S. Det var ellers lidt a la BentTh løsning jeg gerne ville søge, men kan altså slet ikke få den til at virke.

MVH Henrik.
Avatar billede BentTh Juniormester
10. oktober 2011 - 11:58 #5
Bare på den igen!
Antag at du har følgende værdier stående i:
AL8:800, AL9:900, AL10:1000,
i AL15:1500, AL16:1600 og i AL17:1700
I J4 står 2
Skriv min formel i celle B8.
Indsæt et dollartegn ($) mellem J og 4
Kopier formlen til celle B9, B10 B11 og B12
Så skal du have reesultaterne 1500 stående i celle B8,
1600 i B9, 1700 i B10 og 0 i B11
BT
Avatar billede HBorg Juniormester
14. oktober 2011 - 02:09 #6
Hej BentTH.

Når jeg skriver B8:H11 er det et helt celleområder der skal kopieres - indholdet heri. Nå det bliver lidt langhåret!

Det er nok lettere hvis jeg sender dig filen.
Sender lige filen pr interne mail.
Håber så det fremgår klart.

MVH Henrik.
Avatar billede Ialocin Novice
14. oktober 2011 - 10:09 #7
Hej Henrik

Hvis du får mod på at benytte mit forslag fra #2, så gi´ lyd ... så skal jeg se, om jeg ikke kan guide dig igennem til VBA editoren :o)

Med venlig hilsen, Nicolai
Avatar billede HBorg Juniormester
22. april 2013 - 10:32 #8
Hej BentTH.

Undskyld jeg aldrig fik sendt filen.
Nu er det ikke aktuelt længere.

Men du skal har tak alligevel - sorry!.

/Henrik
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