Avatar billede simulu Juniormester
14. februar 2010 - 00:16 Der er 3 kommentarer og
1 løsning

kopiere enkelte celler til nyt ark....

Hej

Nu prøver jeg lige igen at se, om jeg kan få hjælp herinde.

Jeg har et ark, hvor jeg på forsiden (ark 1) skriver en række ting i kolonne B, C, D og E, hvorefter jeg kan køre en makro (se nedenstående), der overfører teksten fra de fire celler fra forsiden til et nyt ark.

--------


Sub Nyt_ark()

On Error Resume Next
Dim stilling As String, cpr As String, lønnr As String, navn As String, enhed As String, måned As String, år As String




If ActiveSheet.Name <> "forside" Then
    MsgBox "Du skal stå på 'forsiden' for at oprette et nyt ark", 16, "Oprette nyt ark"
    Exit Sub
End If

Application.ScreenUpdating = False

    Cells(ThisWorkbook.ActiveSheet.Rows.Count, 1).Select
    Selection.End(xlUp).Select
   
    stilling = ActiveCell.Value
    cpr = Selection.Offset(8, 2).Value
    lønnr = Selection.Offset(8, 3).Value
    navn = Selection.Offset(8, 4).Value
    enhed = Selection.Offset(7, 9).Value
    måned = Selection.Offset(8, 9).Value
    år = Selection.Offset(9, 9).Value

   
    Sheets("arbejdskort").Copy after:=Sheets(2)
    If Sheets("arbejdskort").Visible = 0 Then Sheets(3).Visible = True
    Sheets(3).Select
    Cells(2, 5).Value = lønnr
    Cells(3, 5).Value = navn
    Cells(4, 5).Value = stilling
    Cells(5, 5).Value = cpr
    Cells(8, 5).Value = enhed
    Cells(7, 4).Value = måned
    Cells(7, 5).Value = år
    Sheets(3).Name = navn
    Sheets("forside").Select
   

Application.ScreenUpdating = True


End Sub


---------

Problem 1:
Jeg har bare det problem, at når jeg skriver i f.eks. B10,C10, D10 og E10, så overfører den stadig det, der står i B9, C9, D9 og E9.
Det er jo meningen, at efterhånden som jeg får skrevet i de fire celler, kører jeg makroen, opretter et ark og begynder så at skriver i næste række i samme kolonner på forsiden - trykker på makroen osv.

Problem nr. 2:
Jeg kan ikke få den til at overføre fra kolonne B (altså det jeg har kaldt 'stilling') på ark 1 til celle E4 på det ark, den opretter. Alle de andre overførelser går fint og står de rigtige steder….

Nogen der kan gennemskue, hvad der er galt i disse to problemstillinger??

Mvh Jan
14. februar 2010 - 07:38 #1
Jeg vil tro, at

Cells(ThisWorkbook.ActiveSheet.Rows.Count, 1).Select
(koden her vælger den sidste celle med indhold i kolonne 1 (A))

Skal rettes til

Cells(ThisWorkbook.ActiveSheet.Rows.Count, 2).Select

Så du får valgt kolonne B i stedet for A

Ovenstående vil også få din stilling rigtigt over, men forudsætter så at du kigger på dine offsets i de følgende linjer
    cpr = Selection.Offset(8, 2).Value
    lønnr = Selection.Offset(8, 3).Value
    navn = Selection.Offset(8, 4).Value
    enhed = Selection.Offset(7, 9).Value
    måned = Selection.Offset(8, 9).Value
    år = Selection.Offset(9, 9).Value

Jeg gætter på,at de skal rettes til, men kan ikke lige gennemskue, hvorfor de ser ud som de gør
    cpr = Selection.Offset(8, 1).Value
    lønnr = Selection.Offset(8, 2).Value
    navn = Selection.Offset(8, 3).Value
    enhed = Selection.Offset(7, 8).Value
    måned = Selection.Offset(8, 8).Value
    år = Selection.Offset(9, 8).Value
Avatar billede simulu Juniormester
14. februar 2010 - 23:58 #2
Hej Thor
Jeg har nu puslet lidt, rettet lidt og flyttet lidt rundt på cellerne, og det virker, som du skrev. Tak.

Nu ser koden sådan ud:

------

Cells(ThisWorkbook.ActiveSheet.Rows.Count, 1).Select
    Selection.End(xlUp).Select
   
    navn = ActiveCell.Value
    cpr = Selection.Offset(0, 1).Value
    lønnr = Selection.Offset(0, 2).Value
    stilling = Selection.Offset(0, 3).Value
    enhed = Selection.Offset(0, 5).Value
    måned = Selection.Offset(0, 6).Value
    år = Selection.Offset(0, 7).Value

------

Men ved du, hvordan jeg får arket til at hente 'enhed', 'måned' og 'år' fra 3 faste celler - og altså ikke fra den række, hvor den sidste celle i kolonne A er med indhold??



Tak for hjælpen. Jan
15. februar 2010 - 06:58 #3
Naturligvis.
Hvis du navngiver de 3 celler henholdsvis enhed, måned og år kan du skrive

enhed = range("enhed").value
osv.
Avatar billede simulu Juniormester
15. februar 2010 - 23:12 #4
Takker for hjælpen. Det var dejligt.

Mvh Jan
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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