Avatar billede nordclc Nybegynder
26. september 2006 - 13:45 Der er 8 kommentarer og
1 løsning

Makro flyt linier mellem faneblade

Hej Eksperter,

jeg har et Excel dokument med 2 faneblade. På det ene faneblad har jeg mine åbne opgaver stående, mens jeg på det andet faneblad har de lukkede opgaver stående. Begge faneblade indeholder de samme kolonner:

Opgnr.
Tekst
Test dato
Færdig dato

Jeg kunne godt tænke mig en makro, som ved åbning af Excel dokumentet, flytter alle opgaver hvor <Færdig dato> er udfyldt ()på faneblad 1) fra faneblad 1 til faneblad 2. På faneblad 1 skal de resterende linier trækkes sammen, således der ikke opstår blanke linier mellem de åbne opgaver. På faneblad 2 skal linien tilføjes under de eksisterende linier.

Mvh
Nordclc
Avatar billede 2c Nybegynder
26. september 2006 - 13:50 #1
Måske kan du bruge dette: Sådan flytter du en værdi fra en celle i et ark, til en celle i et andet ark.
Worksheets("faneblad2").Cells(1, "A").Value =Worksheets("faneblad1").Cells(1, "A").Value
Avatar billede nordclc Nybegynder
26. september 2006 - 13:57 #2
Jeg er overhoved ikke inde i Excel Makro, men tak for tilbuddet ;o)
Avatar billede kabbak Professor
26. september 2006 - 14:58 #3
Sæt denne i ThisWorkbook modulet

Ret selv arknavnene


Private Sub Workbook_Open()
    Dim RW As Long, I As Long
    RW = Worksheets("faneblad1").Range("C65536").End(xlUp).Row
    For I = RW To 2 Step -1
        If Worksheets("faneblad1").Cells(I, "D") <> "" Then
            Worksheets("faneblad1").Rows(I).Copy Worksheets("faneblad2").Range("A65536").End(xlUp).Offset(1, 0)
            Worksheets("faneblad1").Rows(I).Delete
        End If
    Next
End Sub
Avatar billede kabbak Professor
26. september 2006 - 15:00 #4
em lille rettelse, jeg går ud far at Færdig dato står i D kolonnen

Private Sub Workbook_Open()
    Dim RW As Long, I As Long
    RW = Worksheets("faneblad1").Range("D65536").End(xlUp).Row
    For I = RW To 2 Step -1
        If Worksheets("faneblad1").Cells(I, "D") <> "" Then
            Worksheets("faneblad1").Rows(I).Copy Worksheets("faneblad2").Range("A65536").End(xlUp).Offset(1, 0)
            Worksheets("faneblad1").Rows(I).Delete
        End If
    Next
End Sub
Avatar billede nordclc Nybegynder
26. september 2006 - 15:09 #5
Hej Kabbak, Jeg får en fejl: Metoden Delete for klassen Range mislykkedes

Ved du hvad det skyldes?

Mvh Nordclc
Avatar billede nordclc Nybegynder
26. september 2006 - 15:14 #6
Jeg har prøvet at fjerne linien som fejler, og kørt makroen i hånden, og så virker det - uden sletning. Men hvor finder jeg ThisWorkbook modulet, så jeg kan få det til at køre automatisk når jeg åbner Excel arket?
Avatar billede kabbak Professor
26. september 2006 - 15:23 #7
Højreklik på en arkfane, vælg vis programkode
nu er du i VBA editoren, på listen til venstre kan du se alle arknavne og ThisWorkbook.

Dobbeltklik på ThisWorkbook og sæt så koden ind.
Avatar billede nordclc Nybegynder
26. september 2006 - 15:29 #8
For sø... da, hvor er det smart. Godt gået Kabbak, det var jo min egen fejl at det ikke virkede - beklager ;o)

Tusind tak for hjælpen, og smid lige et svar.

Mvh Nordclc
Avatar billede kabbak Professor
26. september 2006 - 15:34 #9
et svar ;-))
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