Avatar billede jan Novice
01. januar 2008 - 15:31 Der er 6 kommentarer og
1 løsning

kopi af celler

Jeg har en timeforbrugsoversigt baseret på en variabel datoliste. Datolisten er en sammenhængende liste der indholdsmæssigt kan varierer fra mellem 1-12 måneder. Kolonnerne ser således ud;
a=datoliste
b=ugedage
c=arbejdstids start
osv.
Jeg gerne ha at celler som alene tilhører f.eks.januar måned kopieres til ark 2.
Avatar billede supertekst Ekspert
02. januar 2008 - 00:05 #1
Kode anbringes i ark1:

Const aktuelleMd = 1                                'Aktuelle måned (JAN)
Dim antalKol, ark2Ræk
Sub kopiAfCeller()
    Application.ScreenUpdating = False
   
Rem Række påArk2
    ark2Ræk = 1
   
Rem Beregn antalkolonner
    antalKol = ActiveCell.SpecialCells(xlLastCell).Column
   
        For ræk = 1 To 65000
            ActiveWorkbook.Sheets("Ark1").Activate
            If Cells(ræk, 1) = "" Then
                Application.ScreenUpdating = True
                MsgBox ("Kopiering afsluttet")
                Exit Sub
            End If
           
Rem måned = ønskede - kopier til ark2
            If Month(Cells(ræk, 1)) = aktuelleMd Then
                Range(Cells(ræk, 1), Cells(ræk, antalKol)).Select
                Selection.Copy
               
                ActiveWorkbook.Sheets("Ark2").Select
                Cells(ark2Ræk, 1).Select
                Selection.PasteSpecial (xlPasteAll)
               
                Application.CutCopyMode = False
                ark2Ræk = ark2Ræk + 1
            End If
        Next ræk
End Sub
Avatar billede jan Novice
02. januar 2008 - 20:27 #2
Hej supertekst. Du må hjælpe mig, hvad menes med "kode anbringes i ark1"
Avatar billede sleeper Nybegynder
02. januar 2008 - 20:32 #3
højreklik på arket > vis programkode > indsæt koden og luk vinduet igen

nu kan du så ved at trykke alt+F8 afspille ovennævte

@supertekst genial kode forresten
Avatar billede jan Novice
02. januar 2008 - 21:35 #4
OK - jeg har nu lagt programkoden ind men kan ikke få det til at virke.
lader jeg datorækken starte i A1 modtager jeg en fejlmeddelse der hedder 400 samtidig med at a1 og b1 ( den med indhold i række 1) er markeret som ved kopiring.
Lader jeg datolisten begynde et tilfældigt sted f.eks A10 modtager jeg meddelsen om at kopiringen er fuldført med intet er kopiret over på ark2
Avatar billede excelent Ekspert
02. januar 2008 - 21:54 #5
indsæt i et alm. modul

Sub xFlyt()
m = 1 ' januar måned
Set sh1 = Sheets("Ark1")
Set sh2 = Sheets("Ark2")
For t = 1 To sh1.Cells(1000, "A").End(xlUp).Row
If IsDate(sh1.Cells(t, "A")) = True Then
If Month(sh1.Cells(t, "A").Value) = m Then
sh1.Range("A" & t & ":AA" & t).Copy sh2.Cells(sh2.Cells(1000, "A").End(xlUp).Row + 1, "A")
End If
End If
Next
End Sub
Avatar billede jan Novice
02. januar 2008 - 22:43 #6
Det virker - dejligt.
Hvis nu jeg vil fortsætte programkode for februar / ark3 hvor skal jeg så lægge fortsættelsen.
og hvis jeg vil lade teksten på ark2 begynde på linie 10, er det så denne komando 1000, "A").End(xlUp).Row + 1, "A")jeg ændre til 1000, "A").End(xlUp).Row + 10, "A")
Jeg må gi mine point til excelent
Avatar billede excelent Ekspert
02. januar 2008 - 23:20 #7
Sub xFlyt()
m = 1 ' januar måned
Set sh1 = Sheets("Ark1")' Værdier kopieres fra Ark1 - ret til aktuel
Set sh2 = Sheets("Ark2")' værdier kopieres til Ark2 - ret til aktuel
sh1.Range("A1:AA1").Copy sh2.Range("A10") ' indsætter en overskrift i række 10, resten indsættes derunder
For t = 1 To sh1.Cells(1000, "A").End(xlUp).Row
If IsDate(sh1.Cells(t, "A")) = True Then
If Month(sh1.Cells(t, "A").Value) = m Then
sh1.Range("A" & t & ":AA" & t).Copy sh2.Cells(sh2.Cells(1000, "A").End(xlUp).Row + 1, "A")
End If
End If
Next
End Sub

Hvis du ikke har en overskrift, eller ønsker en sådan kopieret over, kan vi indsætte en midlertidig værdi i række A9 el A10
Dette er for at kopierede værdier indsættes fra række 9 el 10
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