Avatar billede micwar Mester
05. oktober 2011 - 08:54 Der er 7 kommentarer og
1 løsning

Find sidste aktive celle og ryk en til højre.

Hej
Håber i kan hjælpe mig med denne.
Skal bruge en VBA kode der kan gøre følgene.

En værdi fra f.eks. Ark1 A1 skal flyttes Ark 2 A1. En ny Værdi skal skrives i Ark 1 A1 og nu skal VBA koden flytte den over på Ark 2, men den skal ikke overskrive A1 men flytte den til B1 og næste nye værdi fra A1 skal flyttes til Ark 2 C1 osv.

Koden skal finde sidste celle med en værdi i og aktivere cellen til højre og indsætte (copy/paste).

Håber det gav mening.
Avatar billede Ialocin Novice
05. oktober 2011 - 09:40 #1
Hej micwar

Her er lidt VBA kode, som burde gøre det du ønsker ?
Koden tømmer ikke celle A1 på Ark1 efter kopiering, men det kan laves.

Bruger du den danske udgave af Excel, så må du lige selv ændre diverse Sheet1 og 2 til dine navne ...

Prøv den og lad høre :o)

--------------------


Private Sub KopierA1()
Dim s As Integer

'sæt Excel´s opdatering ud af kraft
Application.ScreenUpdating = False


    'kopier celle "A1" på Sheet1
    Sheets("Sheet1").Range("A1").Copy

    'gør Sheet2 til det aktive ark
    Sheets("Sheet2").Activate
   
    'vælg celle "A" i 1 række
    ActiveSheet.Range("A1").Select
   
   
    'hvis den aktive celle er tom
    If ActiveCell.Value = "" Then
       
            'indsæt det kopierede, startende fra den aktive celle
            ActiveCell.PasteSpecial (xlPasteValuesAndNumberFormats)
             
            'fjern kopimarkeringen fra Sheet1
            Application.CutCopyMode = False

            'gør Sheet1 til det aktive ark
            Sheets("Sheet1").Activate
           

    Else
   
            'tildel variablen s, kolonnenummeret på sidste kolonne indeholdende data i række 1
            s = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column

          'tildel y rækkenummeret
            y = ActiveCell.Row
           
            'tildel x kolonnenummeret efter sidste kolonne indeholdende data
            x = s + 1


            'lav kolonne nummeret om til et bogstav
            sBogstav = Replace(ActiveSheet.Cells(y, x).Address(False, False), y, "")


            'samlede cellekoordinat på den aktive celle
            sCell = sBogstav & y
           
            'vælg den aktive celle
            ActiveSheet.Range(sCell).Select

            'indsæt det kopierede, startende fra den aktive celle
            ActiveCell.PasteSpecial (xlPasteValuesAndNumberFormats)

            'fjern kopimarkeringen fra Sheet1
            Application.CutCopyMode = False

            'gør Sheet1 til det aktive ark
            Sheets("Sheet1").Activate
    End If


'slå Excel´s opdatering til igen
Application.ScreenUpdating = True

End Sub


-----------------


Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
05. oktober 2011 - 09:53 #2
Hej micwar

Hermed linien, hvis du ønsker at tømme celle A1 efter kopiering.


'tøm celle A1
ActiveSheet.Range("A1").Clear


Kopiere linien ind umiddelbart før ELSE og igen før END IF.


Med venlig hilsen, Nicolai
Avatar billede micwar Mester
05. oktober 2011 - 12:28 #3
Hej Lalcin

Jeg har prøvet at det og det virker lige som jeg ønsker det. Nu skal jeg have den ind i et større sammenhæng :-)



Tak for det du fortjener dine 60 point.
Avatar billede Ialocin Novice
05. oktober 2011 - 12:53 #4
Hej micwar

Godt at høre :o)
Hermed mit "svar"


Med venlig hilsen, Nicolai
Avatar billede micwar Mester
05. oktober 2011 - 13:16 #5
Hej Lalocin

Hvis du er her endnu så vil jeg høre om du har et svar på dette.

Hvis nu at Aak1 A1 skal over på Ark2 men hvor det starter på B4 fordi Række 1 til 3 står der noget og Kolonne A står der også noget så start er B4 næste er C4 osv.

Håber du kan hjælpe.
Avatar billede micwar Mester
05. oktober 2011 - 13:37 #6
Hej Lalocin

Takke være dine udførlige text over formlen fand jeg selv løsningen så tak for det igen.

  'tildel variablen s, kolonnenummeret på sidste kolonne indeholdende data i række 1
            s = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Avatar billede Ialocin Novice
05. oktober 2011 - 13:40 #7
Hej micwar

Super :o)
Tak for point.

Du er velkommen til at poste en mail, hvis du har yderligere brug for hjælp ... Så skal jeg se om jeg kan hitte ud af det ?

Med venlig hilsen, Nicolai
Avatar billede micwar Mester
05. oktober 2011 - 13:50 #8
Det skal jeg huske :-)
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
Kurser inden for grundlæggende programmering

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