Avatar billede svendj Nybegynder
18. juli 2008 - 15:52 Der er 18 kommentarer og
1 løsning

Juster str. på kommentarer

Kan man justere str. på de gule kommentarer via VBA?

Jeg kan optage flg.:

Sub Makro1()
    Range("A1").Comment.Text Text:="Svend Jensen:" & Chr(10) & "TEST TEST TEST"
    Selection.ShapeRange.ScaleWidth 2.91, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 5.27, msoFalse, msoScaleFromTopLeft
End Sub

- men får

"Object doesn't support this property or method"

når jeg prøver at afspille den?

Jeg har teksten fra tidligere, så jeg vil helst justere str. uden at skrive teksten igen.

1000 tak

:o]
Avatar billede kabbak Professor
18. juli 2008 - 15:59 #1
Range("A1").Comment.Shape.Select True
    Selection.ShapeRange.ScaleWidth 1.89, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 6.27, msoFalse, msoScaleFromTopLeft
Avatar billede excelent Ekspert
18. juli 2008 - 16:07 #2
http://pmexcelent.dk/KommentarEditor.xls

Userformen kan evt. exporteres til skrivebord, og herefter Importeres til din projektmappe
Avatar billede svendj Nybegynder
18. juli 2008 - 16:08 #3
Hmm den skriver Variable not defined på msoFalse ?

Jeg kører med Option Explicit
Avatar billede excelent Ekspert
18. juli 2008 - 16:08 #4
filen skal gemmes og køres fra din HD
Avatar billede svendj Nybegynder
18. juli 2008 - 16:14 #5
@ excelent - din kode kører, men jeg vil jo helst lave den inde i koden, så man ikke skal sidde og trykke på knapper; og hvis jeg kigger i din kode har du samme linie

Selection.ShapeRange.ScaleWidth 1.03, msoFalse, msoScaleFromTopLeft

?

Kan man lirke den ind i min egen kode - jeg får jo ovennævnte fejl på msoFalse?
Avatar billede svendj Nybegynder
18. juli 2008 - 16:14 #6
Men den er lækker :o]
Avatar billede svendj Nybegynder
18. juli 2008 - 16:24 #7
Jeg smutter på weekend nu - hvis jeg ikke kommer på, kigger jeg mandag

:o]
Avatar billede svla Mester
18. juli 2008 - 16:56 #8
Til Excelent
Jeg har prøvet din kommentarEditor,den ser jo smart ud, men hvorfor virker den ikke ved mig, uanset hvad jeg gør eller trykker på, så skulle den vel påvirke den kommentar eller kommentarboks i den aktive celle, men intet sker. - Hvorfor
Avatar billede excelent Ekspert
18. juli 2008 - 17:02 #9
har du gemt den på din HD og kørt den derfra?
den virker ikke på nettet
Avatar billede svla Mester
18. juli 2008 - 17:58 #10
Til excelent
Ja jeg har lagt excelarket ned på min PC. og det er derfra at formen er helt død.
Avatar billede excelent Ekspert
18. juli 2008 - 19:33 #11
Det var mystisk, det har jeg ikke umiddelbart en forklaring på
Avatar billede svla Mester
19. juli 2008 - 07:47 #12
Til Excelent
Har prøvet på en anden computer, og der virker det perfekt, - den vil jeg lige gemme til brug en anden gang, idet jeg tidligere har siddet om rettet i kommentarfelter, her er den perfekt.
- og så må jeg lige finde ud af hvorfor den ikke virkede på første PC.
Tak for dine indlæg selv om dette ikke have noget med det egentlige spørgsmål og gøre.
Avatar billede excelent Ekspert
19. juli 2008 - 20:44 #13
For at ændre på en kommentarbox's rammestørrelse er der nogle betingelse der skal være opfyldt.
Ud over at kommentaren skal være oprettet ,skal denne også være synlig

Der kan anvendes indexnr. her vælges første kommentar :
ActiveSheet.Comments(1).Visible = True

I følgende eks. er anvendt RANGE metoden.

Vis kommentar i celle A1 :
Range("A1").Comment.Visible = True

Derudover skal kommentarens shape (ramme) aktiveres :
Range("A1").Comment.Shape.Select True

Man kan ikke bestemme en rammes størrelse ved oprettelse (så vidt jeg ved)
Men alene ændre på størrelsen ved at skalere med en faktor x
Hvor x er større eller mindre end 1 (1 er således neutral og ændrer ikke noget)

For at forøge rammens størrelse skal x være fra 1.01 og op til ? (har testet med 20)
Her vil 1.01 være en lille forøgelse og 5 en stor

For at formindske rammens størrelse skal x være mindre en 1 fx. 0.9 for lille formindskelse
og 0.1 for større formindskelse,- x kan også være negativ

Denne påvirker rammens bredde
Selection.ShapeRange.ScaleWidth x, msoFalse
og denne rammens højde
Selection.ShapeRange.ScaleHeight x, msoFalse


Lidt om Tekst i kommentar :
Følgende linie ændrer ikke på en bestående tekst, kan evt. helt undlades
Range("A1").Comment.Text Text:=""

Følgende linie indsætter en ny tekst og sletter evt. gl.
Range("A1").Comment.Text Text:="Helt ny tekst"

Hvis du vil bevare bestående tekst og tilføje ny :

Indlæs bestående tekst i variablen txt :
txt = Range("A1").Comment.Text
Indsæt gl. tekst + linieskift "Chr(10)" + ny tekst :
Range("A1").Comment.Text Text:=txt & Chr(10) & "Tilføjelse indsat på næste linie"
Avatar billede bak Forsker
20. juli 2008 - 12:47 #14
Excellent -> rigtig smart feature du har lavet der :-)

Det er dog muligt at ændre størrelsen uden at kommentaren er 'synlig' og selecteret.
Det er også muligt at autosize kommentaren i forhold til tekstmængden.

Sub AutosizeComments()
    Dim cell As Range
    Dim rng As Range
    Set rng = Selection

    On Error Resume Next
    For Each cell In rng
        '//sætter kommentarhøjde
        cell.Comment.Shape.Height = 300
        '//sætter kommentar bredde
        cell.Comment.Shape.Width = 300
        '//sætter autosize på
        'cell.Comment.Shape.TextFrame.AutoSize = True
    Next

End Sub
Avatar billede bak Forsker
20. juli 2008 - 12:48 #15
ps. Linien med On Error Resume Next får den til at springe over de celler i markeringen, der ikke har kommentarer
Avatar billede excelent Ekspert
20. juli 2008 - 13:06 #16
ja du har ret bak det virker fint,- det kunne jeg ikke lige finde i F1-hjælpen :-)
Har specielt noteret mig Comment.Shape.TextFrame.AutoSize = True
den er go :-)
Avatar billede bak Forsker
20. juli 2008 - 13:24 #17
Naaj..  F1-hjælpen er nok ikke den bedste hjælper man her :-)
Autosize er fin, men jeg synes nu at dit nye værktøj er så smart, at den nemt kan indbygges.
Avatar billede svendj Nybegynder
21. juli 2008 - 09:52 #18
Hold da op - én weekend -> 10 kommentarer :o]

Tak skal I have, jeg har implementeret Baks løsning (vil du lægge et svar?), som jeg har fået kogt ned til én linie

ActiveCell.Comment.Shape.TextFrame.AutoSize = True

- da jeg er sikker på, at der en kommentar når jeg kommer til linien.

Tak igen

:o]
Avatar billede svendj Nybegynder
23. august 2010 - 09:04 #19
for at lukke
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