Avatar billede Jeuer90 Nybegynder
29. marts 2016 - 13:35 Der er 2 kommentarer og
1 løsning

Figurer i Excel

Hey alle sammen.

Jeg sidder og leger med rektangler i Excel13. Pt. har jeg fået højden og bredde til at ændre sig udfra forskellige celleværdier, nu vil jeg gerne have den til at del sig op i felter(fx. hvis man ser på det som et højhus uden etager så det bare en stor klods, men hvis jeg skrive tallet 6 i en celle så skal der være 6 etager)

min nuværende kode

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$12" Then
    Shapes("Rektangel 1").Width = Target.Value
End If
If Target.Address = "$G$11" Then
    Shapes("Rektangel 1").Height = Target.Value
End If
End Sub

Mvh.
Jeuer
Avatar billede supertekst Ekspert
30. marts 2016 - 10:34 #1
Lidt til at "lege" videre med:
PS: Når etagerne er afsat så klik i "huset" så vises disse - har ikke kunne finde et udtryk herfor.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$G$12" Then
        Shapes("Rektangel 1").Width = Target.Value
    End If
   
    If Target.Address = "$G$11" Then
        Shapes("Rektangel 1").Height = Target.Value
    End If
   
    If Target.Address = "$G$10" Then
        afsætAntalEtager Target.Value
    End If
End Sub
Private Sub afsætAntalEtager(antalEtager)
Dim venstre As Double, bredde As Double, højde As Double, top As Double, i As Integer
    sletGlEtager

    With Shapes("Rektangel 1")
        venstre = .Left
        bredde = .Width
        højde = .Height
        top = .top
    End With

    For i = 1 To antalEtager - 1
        ActiveSheet.Shapes.AddConnector(msoConnectorStraight, venstre, top + (højde / antalEtager) * i, venstre + bredde, _
            top + (højde / antalEtager) * i).Select
        Selection.ShapeRange.ShapeStyle = msoLineStylePreset1    '7
    Next i
End Sub
Private Sub sletGlEtager()
Dim antalSh As Integer, sh As Object
    antalSh = ActiveSheet.Shapes.Count
    If antalSh > 1 Then
        For Each sh In ActiveSheet.Shapes
            If sh.Name <> "Rectangle 1" Then
                sh.Delete
            End If
        Next sh
    End If

    ActiveSheet.Shapes.Range(Array("Rectangle 1")).Select
End Sub
Avatar billede Jeuer90 Nybegynder
30. marts 2016 - 12:34 #2
Mega sejt tak :)
Avatar billede supertekst Ekspert
30. marts 2016 - 12:42 #3
Selv tak
PS: Hvis du vil give point - så skal du accepterer mit svar og afvise dit eget.
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
Kurser inden for grundlæggende programmering

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