Avatar billede perhol Seniormester
07. marts 2007 - 19:23 Der er 10 kommentarer og
1 løsning

Makro til at danne udskrift

Jeg har lavet et ark til at opgøre optjent afspadsering på mit arbejde.
Min chef ville gerne at hun kunne udskrive opgørelsen for en enkelt person hvis hun bliver spurgt hvad vedkommendes saldo er for afspadseringskontoen.
Hvis jeg markerer data for en én person kan jeg naturligvis udskrive markeringen, men det kommer til at fylde 2 sider med 2 linjer på hver side.
Kan man ikke lave en makro der vælger ud fra navnet, derefter kopierer navnet samt vedkommendes data i 4 linjer over på et andet ark.
Problemer:
Navnene står i kolonne A i Ark1.
Første navn står i A5 (A5 og A6 der flettet sammen).
Andet navn står i A7 (A7 og A8 der flettet sammen).
osv.
Navnet skal kopieres over i Ark2 i cellen A1 uden at formater kopieres med.
Første navns data står i områderne C5 til T6 og U5 til AM6.
Disse områder skal kopieres til Ark2 C5 til C6 og C10 til T11.
Kan i hjælpe?
Avatar billede perhol Seniormester
07. marts 2007 - 19:26 #1
Der er PT. 26 navne, der er lavet plads til yderligere 22 navne da vi ikke ved hvor længe vi skal bruge arket. Vi har PT. ikke et system der kan opgøre det i lønsedlerne.
Avatar billede excelent Ekspert
07. marts 2007 - 19:32 #2
prøv evt om denne er en løsning

Marker de rækker som skal udskrives,-kør makro - evt. blot i kolonne A
øvrige rækker skjules imens der printes

Sub SelectPrint()
Range("A1:A1200").EntireRow.Hidden = True
Selection.EntireRow.Hidden = False
ActiveSheet.PrintPreview ' udskift med ActiveSheet.PrintOut skriver til printer
Range("A1:A1200").EntireRow.Hidden = False
Range("A1").Select
End Sub
Avatar billede perhol Seniormester
07. marts 2007 - 19:44 #3
Næsten rigtigt.
Udskriften kommer dog ud på 2 sider da området fylder mere end et liggende A4 ark. Det er derfor jeg har dataområdet som 2 adskilte områder ;-)
Det er nu ellers en meget god procedure du der har lavet.
Avatar billede excelent Ekspert
07. marts 2007 - 19:51 #4
nå ok jeg prøver at skrue en kode sammen til at flytte data
Avatar billede excelent Ekspert
07. marts 2007 - 20:01 #5
er der data i alle cellerne c5-t6 og u5-am6 eller er disse områder flettede eller...?
Avatar billede kabbak Professor
07. marts 2007 - 20:10 #6
Sub Makro2()
Dim Data As Variant, I As Integer
  Data = Range(Range("A" & Selection.Row), Range("AM" & Selection.Row + 1))
    Worksheets("Ark2").Cells(1, 1) = Data(1, 1)
    For I = 3 To 20
    Worksheets("Ark2").Cells(5, I) = Data(1, I)
    Worksheets("Ark2").Cells(6, I) = Data(2, I)
    Worksheets("Ark2").Cells(10, I) = Data(1, I + 18)
    Worksheets("Ark2").Cells(11, I) = Data(2, I + 18)
    Next
End Sub
Avatar billede kabbak Professor
07. marts 2007 - 20:11 #7
Glemte at sige at du skal stå på navnet i akolonnen, inden du kører makroen
Avatar billede perhol Seniormester
07. marts 2007 - 20:55 #8
Hej kabbak
Du snuppede tjansen og løste opgaven i første hug.
Læg et svar.

Tak for deltagelsen excelent, men det er kabbak der kom med netop det jeg har brug for.
Avatar billede perhol Seniormester
07. marts 2007 - 22:33 #9
Jeg har efterhånden erfaret tilstrækkeligt mange gange at man skal beskytte sit arbejde mod brugerne samt forsøge at tage forholdsregler mod så mange fejltagelser som man kan forestille sig.
Jeg skjuler derfor så meget som muligt og låser desuden alle celler der ikke må tastes i.
Jeg har derfor lavet nogen få ændringer i koden for at beskytte mod diverse fejltagelser. Koden ser nu sådan ud:

Sub UdskrivNavn()
Dim Data As Variant, I As Integer, J As Integer

Range("A" & Selection.Row).Select
  Data = Range(Range("A" & Selection.Row), Range("AM" & Selection.Row + 1))
  Sheets("UdskriftsArk").Visible = True
    Worksheets("UdskriftsArk").Cells(1, 3) = Data(1, 1)
    For I = 3 To 20
        Worksheets("UdskriftsArk").Cells(5, I) = Data(1, I)
        Worksheets("UdskriftsArk").Cells(6, I) = Data(2, I)
        Next
    For J = 3 To 21
        Worksheets("UdskriftsArk").Cells(10, J) = Data(1, J + 18)
        Worksheets("UdskriftsArk").Cells(11, J) = Data(2, J + 18)
        Next
    Sheets("UdskriftsArk").Select
    Range("A1").Select
End Sub
Sub Tilbage()
    Sheets("AfspadseringsListe").Select
    Range("D5").Select
    Sheets("UdskriftsArk").Visible = False
End Sub
Avatar billede kabbak Professor
07. marts 2007 - 23:31 #10
et svar;-))

Jeg kan se at du har forstand på og kan læse en kode, det gør jo arbejdet nemmere for os der svarer.
Avatar billede perhol Seniormester
08. marts 2007 - 00:12 #11
Ja, men du har også hjulpet mig flere gange ;-)
Tak
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