Avatar billede jnt Nybegynder
07. november 2006 - 15:40 Der er 9 kommentarer og
1 løsning

Hvordan returnerer man mål på "shapes" via en makro

Jeg ønsker at oprette en makro der returnerer alle værdier for højde og bredde på alle rektangler (shapes) der er på mit ark 1. Værdierne skal indsættes i en tabel - et navngivet område på ark 2 i samme mappe. Hvordan gør man det?
Avatar billede jnt Nybegynder
07. november 2006 - 17:14 #1
Nu har selv fundet af, at følgende kode returnerer ønskede værdier for "rectangle 1"):
    ActiveSheet.Shapes("Rectangle 1").Select
    Range("A1").Value = Selection.ShapeRange.Height
    Range("A2").Value = Selection.ShapeRange.Width

Hvad gør man når der er mange rektangler, og Excel selv skal finde ud af hvor mange der er tegnet, og hvilken nummerering de er blevet tildelt af excel? Tilsyneladende er nummeringen lettere vilkårlig (?). Ihverfald har jeg observeret at ved oprettelse af flere rektangler, springes "numre" over, så de ikke er fortløbende.
De returnerede mål er iøvrigt forskellig fra dem man kan aflæses manuelt, med en faktor ca. 28,3. Hvorfor?
Avatar billede kabbak Professor
07. november 2006 - 17:49 #2
Public Sub ShapeStørrelse()
    Dim I As Long
    I = 2
    [A1] = "Navn"
    [B1] = "Højde"
    [C1] = "Bredde"

    For Each sh In ActiveSheet.Shapes
        Range("A" & I).Value = sh.Name
        sh.Select
        Range("B" & I).Value = Selection.ShapeRange.Height
        Range("C" & I).Value = Selection.ShapeRange.Width
        I = I + 1
    Next
End Sub
Avatar billede jnt Nybegynder
07. november 2006 - 23:06 #3
Hej kabbak!
Det virker bare!
Jeg er både glad og imponeret!
Hvordan giver jeg dig dine fortjente point?
Avatar billede kabbak Professor
07. november 2006 - 23:08 #4
et svar ;-)), så kan du komme af med point
Avatar billede jnt Nybegynder
07. november 2006 - 23:36 #5
Tak igen!
Avatar billede kabbak Professor
07. november 2006 - 23:40 #6
selv tak
Avatar billede jnt Nybegynder
08. november 2006 - 13:15 #7
Hvis shapen indeholder en tekst, hvordan får man så den med "ud" i samme omgang?
Avatar billede kabbak Professor
08. november 2006 - 15:03 #8
Hvis det er en tekstbox, så

If sh.Type = 17 Then Range("d" & I).Value = Selection.Text
Avatar billede jnt Nybegynder
08. november 2006 - 15:42 #9
Tak, hvad hvis det er et rectangel eller en retvinklet trekant.
Det må være samme terminologi, men andre "sh.Type nr"?

Kan man iøvrigt sortere i shapes, så der kun returneres rectangler og evt. trekanter i listen?
Hvis ikke, er det ikke et problem, idet jeg bare kan sortere i den liste du har lavet.
Avatar billede kabbak Professor
08. november 2006 - 19:17 #10
rektangler og ovaler har nr. 9
streger nr. 1
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