"Kim Bach Petersen" <no@spam.dk> skrev i en meddelelse
news:445cc96c$0$2099$edfadb0f@dtext02.news.tele.dk...
> Jeg har et efterhånden ret stort regneark, som bruges som en matrix til at
> holde styr på hvem i virksomheden, der laver hvad.
>
> Typisk udskrives der én kolonne ad gangen (=én medarbejder) og da der er
> rigtigt mange rækker, kan det virke noget uoverskueligt: I læsbar
> størrelse strækker udskriften sig efterhånden over 12 sider.
>
> Størstedelen af rækkerne er imidlertid tomme. Derfor kunne de undværes på
> udskriften og det ville gøre overskueligheden meget større.
>
> Derfor vil jeg gerne høre, om der er en mulighed for kun at udskrive
> rækker, som faktisk er udfyldt for den aktuelle kolonne?
>
> Hvis ikke: Vil det være muligt via makro-programmering eller lignende at
> få denne funktionalitet?
>
> På forhånd tak, Kim
Hej Kim
Her er en VBA-løsning. Opret eventuelt en knap i arket, der kalder
rutinen.
Den fungerer således:
Markér en tilfældig celle i hver af de kolonner, du ønsker udskrevet.
Det er ligegyldigt i hvilken rækkefølge, du vælger cellerne.
Hvis du fx ønsker at udskrive kolonnerne A, H og L, kan det gøres
sådan:
1. Klik på fx A3
2. Hold <Ctrl> nede, mens du klikker på fx H6
3. Bliv ved med at holde <Ctrl> nede, mens du klikker på fx L12
4. Slip <Ctrl>
5. Kør rutinen
Sub UdskrivKolonner()
'Leo Heuser, 7-5-2006
Dim BlankCells As Range
Dim Cell As Range
Dim CheckCells As Range
On Error GoTo Finito
Application.ScreenUpdating = False
Set CheckCells = Selection
For Each Cell In CheckCells.Cells
Set BlankCells = Cell.EntireColumn.SpecialCells(xlCellTypeBlanks)
BlankCells.EntireRow.Hidden = True
With ActiveSheet
.UsedRange.Columns.Hidden = True
Cell.EntireColumn.Hidden = False
.PrintOut
.Rows.Hidden = False
.Columns.Hidden = False
End With
Next Cell
Finito:
If Err.Number <> 0 Then
MsgBox "Der er opstået følgende fejl." & vbNewLine & Err.Description
End If
Application.ScreenUpdating = True
On Error GoTo 0
End Sub
--
Med venlig hilsen
Leo Heuser
Followup to newsgroup only please.