Avatar billede petert Forsker
23. januar 2008 - 17:08 Der er 9 kommentarer og
1 løsning

Hjælp til makrokode.

Hej alle.
Jeg har et problem jeg vil høre om nogle har en ide hvordan det kan løses.
Jeg har en projekt mappe hvor der i ark 1 er en ugeseddel. Denne seddel fylder fra A1 til I24.
Når uge seddelen er udfyldt gemmer jeg denne som PDF For eks. uge 1.
Det jeg gerne vil have hjælp til er en måde hvor man kan overfører den udfyldte seddel til ark 2 (Altså (ARK 1 A1 Til I24) overføres til Ark 2 kolonne A til I.
Nu komme mit store problem.
Hvordan overfører det aktuelle område og indsætter de forskellige uger under hinanden (EKS uge 2,3,4 osv)På ark 2 Kolonne A til I ??
Hvordan Kan man sikre at der ikke er dubletter (EKS 2 stk uge nr 3)Hvis man laver en makro og får trykke to gange på overfør.??
Kan man bruge oplysningen i celle Ark1 A2 står "uge Nr.:3" til noget.??
(Jeg retter ugenummeret hver gang jeg laver en ny ugeseddel.)
Til oplysning skal Overførslen til ark 2 bruges til kontrol ifb.med lønudbetaling.
Mvh
Petert
Avatar billede jkrons Professor
23. januar 2008 - 17:47 #1
Prøv med noget i denne stil:

Sub KopierOmraade()
Dim a As Byte
Dim uge As String

    uge = Sheets(1).Range("a2")
   
    Sheets(1).Select
    Range("A1:I24").Select
    Selection.Copy
    Sheets("Ark2").Select
    Range("a65536").Select
    Selection.End(xlUp).Offset(1, 0).Select
        For Each c In Range("a1:" & Selection.Address)
            If c.Value = uge Then
                a = a + 1
            Else
                a = a + 0
            End If
        Next c
        If a = 1 Then
            Application.CutCopyMode = False
            Exit Sub
        Else
            ActiveSheet.Paste
        End If
End Sub
Avatar billede petert Forsker
23. januar 2008 - 18:21 #2
Tak for tilsendte.Jeg  vender tilbage i morgen jeg er ikke ved en pc mere idag
MVH
Petert
Avatar billede jkrons Professor
23. januar 2008 - 19:02 #3
Held og lykke!
Avatar billede petert Forsker
23. januar 2008 - 20:25 #4
Jeg er lige lidt tilbage. den laver fejl under afviklingen."denne er gul når jeg trykker på DEBRUG"(.Width = 847.5)
Kan det ændres så det er området fra A2 til I24 der overføres??
MVH
Petert
Avatar billede petert Forsker
23. januar 2008 - 21:18 #5
Jeg har løst det med at den melder fejl under afvikling. Og ændret så den tager A2 til I24 men den gør følgende. Hvis jeg laver ugeseddel for uge 1 og 2 og 3 står der i ark 2 følgende (række 2+3 og ikke række 2 til 24 fra hver uge indsat under hinanden.
MVH
Petert
Avatar billede jkrons Professor
23. januar 2008 - 23:06 #6
Hos mig virker det fint. Den tager området A2 til I24 og indsætter i Ark2. Næste gang tager den samme område, og indsætter Ark2 under de første 23 linier, hvis ikke ugenummeret allerede findes. i Så fald indsætter den ikke noget.

Har du ændret andet i koden end at rette A1 til A2?

Sub KopierOmraade()
Dim a As Byte
Dim uge As String

    uge = Sheets(1).Range("a2")
   
    Sheets(1).Select
    Range("A2:I24").Select
    Selection.Copy
    Sheets("Ark2").Select
    Range("a65536").Select
    Selection.End(xlUp).Offset(1, 0).Select
        For Each c In Range("a1:" & Selection.Address)
            If c.Value = uge Then
                a = a + 1
            Else
                a = a + 0
            End If
        Next c
        If a = 1 Then
            Application.CutCopyMode = False
            Exit Sub
        Else
            ActiveSheet.Paste
            Application.CutCopyMode = False
        End If
End Sub
Avatar billede jkrons Professor
23. januar 2008 - 23:08 #7
I øvrigt er der inden .with i min kode, så hvordan den kan melde fejl der, kan jeg ikke lige se :-)
Avatar billede petert Forsker
24. januar 2008 - 16:17 #8
Hej jkrons
dette "I øvrigt er der inden .with i min kode" har jeg ikke problem med mere det var mig der klumrede i det.
Jeg har ikke ændret andet i koden
Men det virker ikke hos mig. kan jeg ikke sende et ark som vedhæftet fil pr mail til dig, så du kan se hvad der er galt?
MVH
Petert
Avatar billede jkrons Professor
24. januar 2008 - 17:05 #9
Du er meget velkommen. Send det til jan snabela kronsell dot net Så skal jeg se på det sent i aften eller i morgen.
Avatar billede jkrons Professor
25. januar 2008 - 14:44 #10
I forbindelse med Indsæt testede makrioen på A-kolonnen, som ikke altid indeholdt data i alle celler. Nu testes i stedet på C-som altid indeholder en tekst i sidste celle i hver "kopi".

Sub KopierOmraade()
Dim a As Byte
Dim uge As String

    uge = Sheets(1).Range("a2")
   
    Sheets(1).Select
    Range("A1:I25").Select
    Selection.Copy
    Sheets("Ark2").Select
    Range("C65536").Select
    Selection.End(xlUp).Offset(1, 0).Select
    Range("A" & Selection.End(xlUp).Offset(1, 0).Row).Select
        For Each c In Range("a1:" & Selection.Address)
            If c.Value = uge Then
                a = a + 1
            Else
                a = a + 0
            End If
        Next c
        If a = 1 Then
            Application.CutCopyMode = False
            Exit Sub
        Else
            ActiveSheet.Paste
        End If
End Sub
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