Avatar billede rkhdk Nybegynder
04. september 2004 - 13:07 Der er 15 kommentarer og
1 løsning

udskrivning af kommentare, flere kommentare pr. side

Jeg har et regnskab der fylder 1 A4 ark liggende, til mange af cellerne har jeg kommentare, og når jeg vil udskrive dem så skal jeg udskrive 10 sider med kun kommentare og jeg synes det er temmelig spild at der kun kommer 1 række kommentare pr ark (der kan være ca. 3 rækker på 1 A4 ark liggende).
Ved at sætte sideopsætning til stående, så passer mit regnskab ikke til 1 A4 mere og skal bruge 2 sider for at udskrive det (og det bliver uoverskueligt), men så fylder kommentarene kun 7 sider, men der burde kunne være plads til ca 2 rækker kommentare pr side.

Har prøvet at tegne det:
www.krogh-hansen.dk/eksperten/excel.jpg

Hvor række 1 er den række som kommentarene bliver udskrevt som nu, mens det ville være bedre at kunne udskrive flere rækker kommentare pr side.

Så findes der en måde at beholde sideopsætningen som liggende, og udskrive 3 rækker kommetare pr. side?

Jeg bruger Excel 2000
Avatar billede sjap Praktikant
04. september 2004 - 23:11 #1
Nedenstående er ikke helt det du spørger om, men måske kan du bruge det alligevel?
http://www.jegsworks.com/Lessons/numbers/design/step-comments-print.htm
Avatar billede sjap Praktikant
04. september 2004 - 23:24 #2
Jeg ved ikke om du synes det hjælper, men du kan da overveje at prøve nedenstående funktion, der skriver alle kommentarer til et Word dokument. Så kan du efterfølgende konvertere teksten til en tabel, og angive hvor mange spalter, der skal anvendes.
Lidt kringlet, og kan måske optimeres lidt, men det er måske værd at prøve.

Public Sub PrintCellComments()

Dim Cmt As String
Dim C As Range
Dim I As Integer
Dim WordObj As Object
Dim ws As Worksheet
Dim PrintValue As Boolean
Dim res As Integer
On Error Resume Next
Err.Number = 0

res = MsgBox("Skal værdier udskrives sammen med kommentarer?", vbYesNoCancel + vbQuestion, "Udskriv kommentarer")
Select Case res
    Case vbCancel
        Exit Sub
    Case vbYes
        PrintValue = True
    Case Else
        PrintValue = False
End Select

Set WordObj = GetObject(, "Word.Application")
If Err.Number = 429 Then
    Set WordObj = CreateObject("Word.Application")
    Err.Number = 0
End If

WordObj.Visible = True
WordObj.Documents.Add
With WordObj.Selection
.TypeText Text:="Cell Comments In Workbook: " + ActiveWorkbook.Name
.TypeParagraph
.TypeText Text:="Date: " + Format(Now(), "dd-mmm-yy hh:mm")
.TypeParagraph
.TypeParagraph
End With

For Each ws In Worksheets
    For I = 1 To ws.Comments.Count
        Set C = ws.Comments(I).Parent
        Cmt = ws.Comments(I).Text
        With WordObj.Selection
        .TypeText Text:="Comment In Cell: " + C.Address(False, False, xlA1) + " on sheet: " + ws.Name
        If PrintValue = True Then
            .TypeText Text:=" Cell Value: " + Format(C.Value)
        End If
        .TypeParagraph
        .TypeText Text:=Cmt
        .TypeParagraph
        .TypeParagraph
        End With
    Next I
Next ws

Set WordObj = Nothing
MsgBox "Kommentarer er skrevet til Word", vbInformation, "Udskriv kommentarer"

End Sub
Avatar billede rkhdk Nybegynder
04. september 2004 - 23:39 #3
sjap => Jeg ser på det imorgen ;o)
men det du skriver 04/09-2004 23:24:47 hvor og hvordan skal det laves?
Avatar billede sjap Praktikant
05. september 2004 - 01:15 #4
Du lægger blot koden ind i dit regneark og kører den herfra (hvis det er noget du kan bruge, kan vi altid finde en smartere løsning):

- Koden lægges ind i regnearket ved at trykke Alt-F11 (Starter VBA-editoren).
- Så vælger du menuen Indsæt/Modul
- Herefter kopierer du blot ovenstående funktion og sætter den ind i editoren.
- Programmet kører, når du trykker på F5.
Avatar billede rkhdk Nybegynder
05. september 2004 - 01:40 #5
hvis jeg trykker Alt+F11 -> insert -> module -> så kommer der en tom box frem -> her kopiere jeg indholdet af overstående kode ind (fra og med Public Sub PrintCellComments()til og med End Sub )
Og hvad så?

hvis jeg lukker vinduet og trykker gem, og derefter kommer mit regnskab frem og trykker F5 så kommer "Gå til" box'en frem, det samme sker hvis jeg bare trykker gem og lukker VB editoren.

Skal indrømme at jeg aldrig har rørt VB eller sådanne noget i Office (Andet end 2timers macro "programering" i access som læren mente var nok for at udfylde kapitlet "programering")
Avatar billede sjap Praktikant
05. september 2004 - 01:48 #6
Prøv at gå ind i menuen Funktioner/Makro/Makroer.. Her kan du vælge PrintCellComments og så trykke på knappen "Afspil". Så skulle der gerne ske ting og sager.
Avatar billede sjap Praktikant
05. september 2004 - 01:50 #7
Jeg kaster mig over dynen nu, så hvis du har yderligere spørgsmål, så skriv dem her. Så kigger jeg på det igen i morgen.
Avatar billede rkhdk Nybegynder
05. september 2004 - 02:08 #8
hvis jeg gå i funktioner -> Makro -> Makro (alt+F8) -> så kommer dette billede frem:
http://www.krogh-hansen.dk/eksperten/makro.jpg
der kan jeg ikke vælge PrintCellComments eller paste/sætte ind noget
Avatar billede sjap Praktikant
05. september 2004 - 10:16 #9
Det var mystisk. Når du har kopieret funktionen (skulle være korrekt som du har beskrevet det), så vil funktionens navn fremgå af det vindue som du viser (som desværre er tomt). Det siger mig umiddelbart, at du ikke har kopiereret funktionen ind i dette regneark, så lad os lige prøve igen:

- I regnearket (det med alle kommentarerne) trykker du Alt-F11 og vælger menuen Indsæt/Modul. I hvide område indsættes ovennævnte funktion.
- Skift fra VBA-Editor til regneark (det er ikke nødvendigt at gemme inden), og vælg menuen Funktioner/Makro/Makroer..

Så skulle du være ved det vindue som du viser ovenfor, men nu skulle der gerne stå navnet på funktionen (PrintCellComments) og når du markerer det, bliver det muligt at vælge knappen Afspil.
Avatar billede rkhdk Nybegynder
05. september 2004 - 11:53 #10
den virker nu, dog er det lige som med bare så vælge udskriv kommentartene Sidst i Arket, så den faktisk kun bruger halvdelen af arket (se eks: http://www.krogh-hansen.dk/eksperten/excel.jpg række 1 på det stående ark)

Og kommentarene fylder 9 sider (en mindre en hvis jeg bare vælger at udskrive den sidst i arket)
jeg kan selvfølgelig godt begynde at copy/paste dem ind i 2 rækker (evt bruge en tekstbox)
Avatar billede sjap Praktikant
05. september 2004 - 12:00 #11
Hvis jeg har forstået det ret, så har du nu kommentarerne i et Word dokument. Her kan du markere hele teksten og angive at den skal vises i f.eks. 3 spalter (Formatering/Spalter). Så skulle der vist ske noget dramatisk.
Avatar billede rkhdk Nybegynder
05. september 2004 - 12:06 #12
tja, det viser jo bare hvor meget jeg bruger word, da jeg ikke have set den "spalter" ;o)

OK, så nu har jeg den i word og den fylder 5 sider.

Er der mulighed for at den kan skrive Januar - Diverse istedet for Celle B15?
månederne ligger i række 1 og fra B til M, og A fra 2-44 er udgifter/indtægter
Avatar billede sjap Praktikant
05. september 2004 - 12:26 #13
Er det kun Celle B15 det gælder? Du kan få det næsten som du vil have det - det er blot et spørgsmål om hvor kompliceret programmet skal være (og dermed hvor meget tid vi lige vil bruge på at løse problemet).
Avatar billede rkhdk Nybegynder
05. september 2004 - 12:35 #14
Det er jo lidt uoverskuelige med 5 sider hvor der står

Comment In Cell: B15 on sheet: Ark1 Cell, det er lidt nemmer hvis den hed Comment In Cell: januar - Diverse on sheet: Ark1 Cell
Hvor den tager januar fra B1 (Januar) og Diverse fra A15 (Diverse)

Det er ikke kun B15, men alle Cellerne
Avatar billede sjap Praktikant
05. september 2004 - 12:47 #15
Jeg er ikke helt sikker på, hvad det er du vil, men prøv lige med nedenstående:

Public Sub PrintCellComments()

Dim Cmt As String
Dim C As Range
Dim I As Integer
Dim WordObj As Object
Dim ws As Worksheet
Dim res As Integer
On Error Resume Next
Err.Number = 0

Set WordObj = GetObject(, "Word.Application")
If Err.Number = 429 Then
    Set WordObj = CreateObject("Word.Application")
    Err.Number = 0
End If

WordObj.Visible = True
WordObj.Documents.Add
With WordObj.Selection
.TypeText Text:="Kommentarer i regnearket: " + ActiveWorkbook.Name
.TypeParagraph
.TypeText Text:="Date: " + Format(Now(), "dd-mmm-yy hh:mm")
.TypeParagraph
.TypeParagraph
End With

For Each ws In Worksheets
    For I = 1 To ws.Comments.Count
        Set C = ws.Comments(I).Parent
        Cmt = ws.Comments(I).Text
        With WordObj.Selection
'        .TypeText Text:="Kommentar i celle: " + C.Address(False, False, xlA1) + " på faneblad: " + ws.Name
        .TypeText Text:="Kommentar i " + Format(C.Value) + " på " + ws.Name
        .TypeParagraph
        .TypeText Text:=Cmt
        .TypeParagraph
        .TypeParagraph
        End With
    Next I
Next ws

Set WordObj = Nothing
MsgBox "Kommentarer er skrevet til Word", vbInformation, "Udskriv kommentarer"

End Sub
Avatar billede rkhdk Nybegynder
05. september 2004 - 13:41 #16
det var ikke helt det jeg mente, men den tidligere kode er bedre end at bruge Excels måde at udskrive kommentare på.
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