Avatar billede excelent Ekspert
23. januar 2006 - 18:58 Der er 20 kommentarer og
1 løsning

Angiv Udskrift område med makro via Current.Region?

hej experter
Jeg har et Journal Ark som kan udskrives.
Størst mulig område med data er B3:J234
Område med data ændres med tiden, men jeg
vil kun have vist/printet den del med data i.
Current.Region skal teste på kolonne E

Hvem kan hjælpe ?
Avatar billede rosco Novice
23. januar 2006 - 19:10 #1
Indsæt dette i et modul

Sub Udskriv()

Dim Tom As Boolean, VL As Variant, T As Integer, R As Integer, I As Integer, AD As Integer
Application.ScreenUpdating = False
R = Range("E1").SpecialCells(xlLastCell).Row
AD = Range("E1").SpecialCells(xlLastCell).Column
For I = 1 To R
Tom = True
VL = Range(Cells(I, 1), Cells(I, AD)).Value
For T = 1 To AD
If VL(1, T) <> "" Then
Tom = False
Exit For
End If
Next

If Tom = True Then
Rows(I).EntireRow.Hidden = True
End If
Next
ActiveSheet.PrintOut
Cells.EntireRow.Hidden = False
Application.ScreenUpdating = True


End Sub
Avatar billede sjap Praktikant
23. januar 2006 - 19:12 #2
Med CurrentRegion vil det vist være noget i den her retning.

Worksheets("Journal Ark").Activate
ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address

Men jeg tror umiddelbart ikke at CurrentRegion kan begrænses til kun at teste på en kolonne, men jeg ved det ikke med sikkerhed.
Avatar billede excelent Ekspert
23. januar 2006 - 19:17 #3
Jeg prøver lige... vender tilbage
Avatar billede rosco Novice
23. januar 2006 - 19:20 #4
Fandt den her, http://www.eksperten.dk/spm/599478

der er også en variant der anvender den sædvanlige udskriv knap.
Avatar billede kabbak Professor
23. januar 2006 - 19:28 #5
Range("E1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ActiveSheet.PageSetup.PrintArea = Selection.Address
Avatar billede excelent Ekspert
23. januar 2006 - 19:33 #6
rosco :
jeg har forsøgt med dit forslag, fik fejl i linie :
---- R = Range("E1").SpecialCells(xlLastCell).Row

jeg har ikke printer tilsluttet denne pc, kan det være problemet?
Avatar billede excelent Ekspert
23. januar 2006 - 19:39 #7
kabbak : dit forslag ser dejlig kort ud prøver lige den også
Avatar billede rosco Novice
23. januar 2006 - 19:57 #8
Ikke umuligt.
Jeg har selv brugt koden, med succes.
Avatar billede excelent Ekspert
23. januar 2006 - 20:05 #9
kabbak : jeg fik det ikke til at virke.
Hvis du har tid og lyst, kunne jeg sende filen til dig
jeg sætter mine sidste point på højkant hvis du er frisk på det
v.h.Poul
Avatar billede rosco Novice
23. januar 2006 - 20:06 #10
Det er forresten din kode Kabbak:
Var virkelig brugbar. :-)
Avatar billede kabbak Professor
23. januar 2006 - 20:07 #11
hvilken version af excel bruger du ?

kabbak snabela tiscali punktum dk
Avatar billede excelent Ekspert
23. januar 2006 - 20:08 #12
2003
Avatar billede kabbak Professor
23. januar 2006 - 20:09 #13
ok, marker lige det område du vil have som udskriftsområde, med en farve, inden du sender
Avatar billede kabbak Professor
23. januar 2006 - 21:44 #14
Jeg går ud fra at der din "makro1", der skal arbejdes med.

Fordi det ikke lykkedes for dig, var at du havde sat scrollArea på, det skal fjernes for at hoden kan køre, så det fjernes først og sættes på igen.

Jeg har opdateret din kode også.

Sub Makro1()
'Journal
' Makro indspillet 13-01-2006 af POUL MADSEN
 
    info.Show
    DoEvents
    Application.ScreenUpdating = False
    Worksheets("Journal").Activate
    Worksheets("Journal").ScrollArea = ""
    Range("B4:J233").Select
    Selection.ClearContents
    For i = 1 To 10
    Worksheets("Side " & i).Range("B5:J27").Copy
   
    Worksheets("Journal").Range("C65536").End(xlUp).Offset(1, -1).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    Next
    Range("a1").Select
    Worksheets("Journal").Activate
    info.Hide
'----------------------------------------
Range("B3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ActiveSheet.PageSetup.PrintArea = Selection.Address
    Worksheets("Journal").ScrollArea = "$A$1:$A$235"
    Application.ScreenUpdating = True
    ActiveWindow.SelectedSheets.PrintPreview
    Worksheets("Forside").Activate
    Range("m7").Select

End Sub
Avatar billede kabbak Professor
23. januar 2006 - 21:47 #15
denne linie gør, at den finder det sidste bilagsnummer i rækken og placerer sig en til venstre og 1 nedenunder, så skulle der ikke være tomme imellem.

Worksheets("Journal").Range("C65536").End(xlUp).Offset(1, -1).Select
Avatar billede kabbak Professor
23. januar 2006 - 21:51 #16
nææ, der skal lige kikkes lidt
Avatar billede kabbak Professor
23. januar 2006 - 22:22 #17
så skulle det virke, jeg havde ikke set at du havde sum nederst.

Sub Makro1()
'Journal
' Makro indspillet 13-01-2006 af POUL MADSEN
    Dim RW As Long
    info.Show
    DoEvents
    Application.ScreenUpdating = False
    Worksheets("Journal").Activate
    Worksheets("Journal").ScrollArea = ""
    Range("B4:J233").ClearContents
    Range("B4:J233").Font.Bold = False
    For i = 1 To 10
        Worksheets("Side " & i).Range("B5:J27").Copy
        Worksheets("Journal").Range("C65536").End(xlUp).Offset(1, -1).Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Next
    Range("a1").Select
    Worksheets("Journal").Activate
    info.Hide
    '----------------------------------------
    RW = Range("C65536").End(xlUp).Offset(1, 3).Row
    ' Sætter sum under
    Range("C65536").End(xlUp).Offset(1, 3).FormulaR1C1 = "=SUM(R[-" & RW - 3 & "]C:R[-1]C)"
    Range("C65536").End(xlUp).Offset(1, 4).FormulaR1C1 = "=SUM(R[-" & RW - 3 & "]C:R[-1]C)"
    Range("C65536").End(xlUp).Offset(1, 6).FormulaR1C1 = "=SUM(R[-" & RW - 3 & "]C:R[-1]C)"
    Range("C65536").End(xlUp).Offset(1, 7).FormulaR1C1 = "=SUM(R[-" & RW - 3 & "]C:R[-1]C)"
    Range(Cells(RW + 1, 2), Cells(RW + 1, 7)).Font.Bold = True
    ActiveSheet.PageSetup.PrintArea = "B3:J" & RW

    Worksheets("Journal").ScrollArea = "$A$1:$A$235"
    Application.ScreenUpdating = True
    ActiveWindow.SelectedSheets.PrintPreview
    Worksheets("Forside").Activate
    Range("m7").Select

End Sub
Avatar billede kabbak Professor
23. januar 2006 - 22:26 #18
ret lige

Range(Cells(RW + 1, 2), Cells(RW + 1, 7)).Font.Bold = True

til

Range(Cells(RW, 6), Cells(RW, 10)).Font.Bold = True
Avatar billede excelent Ekspert
23. januar 2006 - 22:30 #19
ok jeg prøver kabbak
Avatar billede excelent Ekspert
23. januar 2006 - 22:43 #20
perfekt kabbak mange tak for hjælpen v.h.Poul
jeg opretter lige et spørgsmål til de andre point
husk også det andet spørgsmål "tomme linier i datavalider"
Avatar billede kabbak Professor
23. januar 2006 - 22:45 #21
ok et svar, der er point nok her ;-))
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