Office: Flächenberechnung des "Shapes" im Excel und Output in Zelle A1

Helfe beim Thema Flächenberechnung des "Shapes" im Excel und Output in Zelle A1 in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Josef Besten Dank für Deinen Lösungsvorschlag. Wie funktioniert es eigentlich mit den Doppelflächen? dass alle Flächen berechnet werden und... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von axtmaestro, 22. März 2012.

  1. Flächenberechnung des "Shapes" im Excel und Output in Zelle A1


    Hallo Josef

    Besten Dank für Deinen Lösungsvorschlag.

    Wie funktioniert es eigentlich mit den Doppelflächen?

    Wenn ich eine Fläche einfüge, die als Bezeichnung bereits vorhanden ist, kommt bei mir eine Fehlermeldung "Laufzeitfehler 70".

    Wie hast du denn die Doppelflächen "Gebäudefläche" einfügen und die Flächen summieren können?

    Gruss,
    Robert
     
    axtmaestro, 25. März 2012
    #31
  2. Hallo Robert,

    in xl2010 können zwei Formen ohne Probleme den selben Namen tragen, evtl. geht das in xl2003 nicht.

    Anbei die angepasste Datei, die Formen werden jetzt mit einer eindeutigen Nummer versehen, so sollte es ohne Probleme klappen.




    « Gruß Sepp »
     
    josef e, 25. März 2012
    #32
  3. Vielen Dank Josef. Du hast mir hier sehr geholfen. *Smilie

    Den Rest werde ich jetzt selber versuchen. *wink.gif*

    LG,
    Robert
     
    axtmaestro, 25. März 2012
    #33
  4. Flächenberechnung des "Shapes" im Excel und Output in Zelle A1

    Hallo Josef

    Ich muss dich doch noch was fragen.*upps
    Selbst habe ich schon einiges ausprobiert, jedoch ohne Erfolg. Das VBA Wissen ist bei mir doch noch sehr schwach. *frown.gif*

    Ist es möglich den Code für die Flächenberechnung direkt in den Code für Hinzufügen neuer Shapes einzubinden. Habe hier folgendes versucht (siehe Code) es kommt aber immer eine Felhermeldung. Was mache ich hier falsch??


    PHP:
             Option Explicit

    Private Sub UserForm_initialize()
    With ComboBox1
    .AddItem "Grundstücksfläche"
    .AddItem "Gebäudefläche"
    .AddItem "Tiefgaragenfläche"
    .AddItem "Strassenfläche"
    .Style fmStyleDropDownList
    End With
    End Sub


    Private Sub CommandButton1_Click()

    Dim objShp As Object


    If ComboBox1.ListIndex > -1 Then
    If OptionButton1 Then
    Set objShp 
    ActiveSheet.Shapes.AddShape(msoShapeRectangleRange("F3").LeftRange("F3").Top5050)
    Else
    Set objShp ActiveSheet.Shapes.BuildFreeform(msoEditingAutoRange("F3").LeftRange("F3").Top)
    With objShp
    .AddNodes msoSegmentLinemsoEditingAutoRange("F3").Left 50Range("F3").Top
    .AddNodes msoSegmentLinemsoEditingAutoRange("F3").Left 75Range("F3").Top 35
    .AddNodes msoSegmentLinemsoEditingAutoRange("F3").Left 50Range("F3").Top 70
    .AddNodes msoSegmentLinemsoEditingAutoRange("F3").LeftRange("F3").Top 35
    .AddNodes msoSegmentLinemsoEditingAutoRange("F3").LeftRange("F3").Top
    Set objShp 
    = .ConvertToShape
    End With
    End 
    If

    With objShp
    .Fill.ForeColor.RGB Choose(ComboBox1.ListIndex 152377100794875247912632256)
    .
    Line.ForeColor.RGB vbBlack
    .Line.Weight 0.25
    .Name ComboBox1.Text Format(Now"_ddMMyyhhmmss")
    .
    OnAction "Tabelle1.calculateArea"
    End With
    Unload Me
    Else
    MsgBox "Keine Grundstücksart gewählt!"vbExclamation"Hinweis"
    End If



    Dim Shp As Shape
    Dim lngPoints 
    As Long
    Dim dblFactor 
    As Double
    Dim vntName 
    As VariantvntRet As VariantvntResult(1 To 71 To 1) As Variant

    On Error 
    GoTo ErrExit

    With Application
    .ScreenUpdating False
    .EnableEvents False
    End With

    vntName 
    = Array("Grundstücksfläche""Gebäudefläche""Tiefgaragenfläche""Strassenfläche")

    dblFactor Application.CentimetersToPoints(1)

    Range("O3:O9") = ""

    For Each Shp In Me.Shapes
    vntRet 
    Application.Match(Left(Shp.NameInStr(1Shp.Name "_""_") - 1), vntName0)
    If 
    IsNumeric(vntRetThen
    Range
    ("A1:C100") = ""
    With Shp
    If .Type msoFreeform Then
    For lngPoints 1 To .Nodes.Count
    Cells
    (lngPoints 11) = lngPoints
    Cells
    (lngPoints 12) = .Nodes.Item(lngPoints).Points(11) / dblFactor
    Cells
    (lngPoints 13) = .Nodes.Item(lngPoints).Points(12) / dblFactor
    Next
    If Cells(lngPoints2) <> Cells(22) And Cells(lngPoints3) <> Cells(23Then
    lngPoints 
    lngPoints 1
    Cells
    (lngPoints1) = lngPoints 1
    Cells
    (lngPoints2) = Cells(22)
    Cells(lngPoints3) = Cells(23)
    End If
    ElseIf .
    Type msoShapeRectangle Then
    Cells
    (21) = 1Cells(22) = .Left dblFactorCells(23) = .Top dblFactor
    Cells
    (31) = 2Cells(32) = (.Left + .Width) / dblFactorCells(33) = .Top dblFactor
    Cells
    (41) = 3Cells(42) = (.Left + .Width) / dblFactorCells(43) = (.Top + .Height) / dblFactor
    Cells
    (51) = 4Cells(52) = .Left dblFactorCells(53) = (.Top + .Height) / dblFactor
    Cells
    (61) = 5Cells(62) = .Left dblFactorCells(63) = .Top dblFactor
    lngPoints 
    6
    End 
    If
    End With
    If lngPoints 0 Then
    Cells
    (11).FormulaArray "=SUM((C2:C" lngPoints "+C3:C" _
    lngPoints 
    ")*(B2:B" lngPoints "-B3:B" lngPoints ")/2)"
    vntResult((vntRet 1) * 11) = vntResult((vntRet 1) * 11) + Abs(Cells(11).Value)
    End If
    End If
    Next
    Range
    ("O3:O9") = vntResult
    Range
    ("A1:C100") = ""

    ErrExit:

    With Err
    If .Number <> 0 Then
    MsgBox 
    "Fehler in Prozedur:" vbTab "'calculateArea'" vbLf String(60"_") & _
    vbLf 
    vbLf IIf(Erl"Fehler in Zeile:" vbTab Erl vbLf vbLf"") & _
    "Fehlernummer:" vbTab & .Number vbLf vbLf "Beschreibung:" vbTab _
    .Description vbLfvbExclamation vbMsgBoxSetForeground_
    "VBA - Fehler in Modul - Tabelle1"
    .Clear
    End 
    If
    End With

    On Error 
    GoTo 0

    With Application
    .ScreenUpdating True
    .EnableEvents True
    End With

    End Sub
     
    axtmaestro, 26. März 2012
    #34
  5. Hallo Robert,

    du kannst nicht einfach Code-Teile x-beliebig herumkopieren.





    « Gruß Sepp »
     
    josef e, 26. März 2012
    #35
  6. Hallo Josef

    Ich danke die wiedermal für deine Hilfe.
    Funktioniert echt super und ich habe jetzt verstanden, was ich im Code falsch gemacht habe.

    Danke! *Smilie

    Gruss,
    Robert
     
    axtmaestro, 26. März 2012
    #36
  7. Hallo Josef

    Eine Frage noch bzgl. des Löschvorgangs von Shapes.

    Wenn ich ein Shape lösche, sollte mir die Flächenangabe automatisch aktualisiert werden.

    Ich habe dies mir folgenden Code versucht aber ohne Erfolg:


    PHP:
             Private Sub Worksheet_Change(ByVal Target As Range)

    If 
    ActiveSheet.Shapes("Grundstücksfläche").Delete Then
    Range
    ("L15").Delete
    End 
    If

    If 
    ActiveSheet.Shapes("Gebäudefläche").Delete Then
    Range
    ("L17").Delete
    End 
    If

    If 
    ActiveSheet.Shapes("Tiefgaragenfläche").Delete Then
    Range
    ("L19").Delete
    End 
    If

    If 
    ActiveSheet.Shapes("Strassenfläche").Delete Then
    Range
    ("L21").Delete
    End 
    If
    End Sub
     
    axtmaestro, 26. März 2012
    #37
  8. Flächenberechnung des "Shapes" im Excel und Output in Zelle A1

    Hallo Robert,

    "Was mache ich denn falsch?"

    Alles, das Löschen eines Shapes löst kein Ereignis aus und deine If-Abfrage ist nonsense.




    « Gruß Sepp »
     
    josef e, 27. März 2012
    #38
  9. Hallo Josef

    Gibt es hier keine Möglichkeiten einen Art "automatisierten Update nach Delete" zu machen, wenn Flächen gelöscht werden? *rolleyes.gif*

    Gruss,
    Robert
     
    axtmaestro, 28. März 2012
    #39
  10. Hallo Robert,

    das müsste man über eine Timer lösen, der in regelmäßigen Abständen die Shapes auf dem Blatt zählt und eine entsprechende Aktion ausführt.

    Nochmals meine Frage: Wozu das ganze Gemurkse? Excel ist kein Grafikprogramm!




    « Gruß Sepp »
     
    josef e, 29. März 2012
    #40
  11. Hallo Josef

    Dein Vorschlag es mit dem Timer zu lösen klingt ja sehr spannend.
    So etwas habe ich noch nie gehört. Wie geht man den hier vor?

    Ich habe in meinem Excel eine Rentabilitätskalkulation für Immobilienentwicklungsprojekte erstellt. Diese basiert auf simple Flächensimulation, die ich nun mit deiner Hilfe im Excel mit Shapes machen kann. Da ich die erstellten Flächen mit meiner Kalkulation verknüpft habe, verändert sich die Rentabilität sobald ich die Flächen verändere. Es funktioniert mittlerweile sehr gut.

    Jedoch ist es etwas störend, wenn ich die Shapes lösche und die Flächenbeträge erhalten bleiben.

    Hättest du evtl. noch Lust mir bei diesem Problem zu helfen?*rolleyes.gif*
    Meine VBA-Kenntnisse sind leider begrenzt.
    Würde mich sehr freuen.

    Gruß,
    Robert
     
    axtmaestro, 29. März 2012
    #41
  12. Hallo Robert,

    nichts für ungut, aber du hast doch schon Probleme bei den einfachsten VBA Befehlen, ich glaube ein Timer auf API-Basis ist mindestens fünf Nummern zu hoch für dich, da schmiert die nämlich schon beim kleinsten Fehler das ganze Excel ab.

    Deswegen sagte ich ja bereits "Auftragsprogrammierung"




    « Gruß Sepp »
     
    josef e, 29. März 2012
    #42
  13. Flächenberechnung des "Shapes" im Excel und Output in Zelle A1

    Hallo Josef

    Ich verstehe.*wink.gif* Ist OK.

    Könntest du mir zumindest ein Tip geben, wie ich in die Formel Width und Hight einbauen kann so, dass mir mit der jeweiligen Flächenberechnung in die Spalte Q und R auch die Breite und die Länge angezeigt werden.

    Damit würdest du mir schon sehr weiterhelfen.

    Gruss,
    Robert
     
    axtmaestro, 29. März 2012
    #43
  14. Hallo Robert,

    in welcher "Formel"?




    « Gruß Sepp »
     
    josef e, 29. März 2012
    #44
  15. ... sorry!

    In dieser Formel:


    PHP:
             Sub calculateArea()
    Dim Shp As Shape
    Dim lngPoints 
    As Long
    Dim dblFactor 
    As Double
    Dim vntName 
    As VariantvntRet As VariantvntResult(1 To 71 To 1) As Variant

    On Error 
    GoTo ErrExit

    With Application
    .ScreenUpdating False
    .EnableEvents False
    End With

    vntName 
    = Array("Grundstücksfläche""Gebäudefläche""Tiefgaragenfläche""Strassenfläche")

    dblFactor Application.CentimetersToPoints(1)

    Range("O3:O9") = ""

    For Each Shp In Me.Shapes
    vntRet 
    Application.Match(Left(Shp.NameInStr(1Shp.Name "_""_") - 1), vntName0)
    If 
    IsNumeric(vntRetThen
    Range
    ("A1:C100") = ""
    With Shp
    If .Type msoFreeform Then
    For lngPoints 1 To .Nodes.Count
    Cells
    (lngPoints 11) = lngPoints
    Cells
    (lngPoints 12) = .Nodes.Item(lngPoints).Points(11) / dblFactor
    Cells
    (lngPoints 13) = .Nodes.Item(lngPoints).Points(12) / dblFactor
    Next
    If Cells(lngPoints2) <> Cells(22) And Cells(lngPoints3) <> Cells(23Then
    lngPoints 
    lngPoints 1
    Cells
    (lngPoints1) = lngPoints 1
    Cells
    (lngPoints2) = Cells(22)
    Cells(lngPoints3) = Cells(23)
    End If
    ElseIf .
    Type msoShapeRectangle Then
    Cells
    (21) = 1Cells(22) = .Left dblFactorCells(23) = .Top dblFactor
    Cells
    (31) = 2Cells(32) = (.Left + .Width) / dblFactorCells(33) = .Top dblFactor
    Cells
    (41) = 3Cells(42) = (.Left + .Width) / dblFactorCells(43) = (.Top + .Height) / dblFactor
    Cells
    (51) = 4Cells(52) = .Left dblFactorCells(53) = (.Top + .Height) / dblFactor
    Cells
    (61) = 5Cells(62) = .Left dblFactorCells(63) = .Top dblFactor
    lngPoints 
    6
    End 
    If
    End With
    If lngPoints 0 Then
    Cells
    (11).FormulaArray "=SUM((C2:C" lngPoints "+C3:C" _
    lngPoints 
    ")*(B2:B" lngPoints "-B3:B" lngPoints ")/2)"
    vntResult((vntRet 1) * 11) = vntResult((vntRet 1) * 11) + Abs(Cells(11).Value)
    End If
    End If
    Next
    Range
    ("O3:O9") = vntResult
    Range
    ("A1:C100") = ""

    ErrExit:

    With Err
    If .Number <> 0 Then
    MsgBox 
    "Fehler in Prozedur:" vbTab "'calculateArea'" vbLf String(60"_") & _
    vbLf 
    vbLf IIf(Erl"Fehler in Zeile:" vbTab Erl vbLf vbLf"") & _
    "Fehlernummer:" vbTab & .Number vbLf vbLf "Beschreibung:" vbTab _
    .Description vbLfvbExclamation vbMsgBoxSetForeground_
    "VBA - Fehler in Modul - Tabelle1"
    .Clear
    End 
    If
    End With

    On Error 
    GoTo 0

    With Application
    .ScreenUpdating True
    .EnableEvents True
    End With
    End Sub
     
    axtmaestro, 29. März 2012
    #45
Thema:

Flächenberechnung des "Shapes" im Excel und Output in Zelle A1

Die Seite wird geladen...
  1. Flächenberechnung des "Shapes" im Excel und Output in Zelle A1 - Similar Threads - Flächenberechnung Shapes Excel

  2. Shapes löschen

    in Microsoft Excel Hilfe
    Shapes löschen: Hallo ihr wissende!! Ich brauche schon wieder eure Hilfe. Wie kann ich ein shape mit einem Button löschen? Der Button ist in der Tabelle positioniert. Diesen Code habe ich bereits drinnen aber es...
  3. VBA Shapes Type ändern/zuweisen

    in Microsoft Excel Hilfe
    VBA Shapes Type ändern/zuweisen: Hallo ForumsFreunde, ich habe einen Code teils selbst/teils gefunden zusammengebastellt zur TextSuche in Shapes (Textfeldern) und es läuft bis auf einige Male gut, danach wenn ich ein neues Shape...
  4. Shapes aus bestimmten Bereich löschen

    in Microsoft Excel Hilfe
    Shapes aus bestimmten Bereich löschen: Hallo zusammen, ich brauche etwas Hilfe *Smilie Ich habe ein kleines Makro, welches mir zuvor kopierte Zellen samt Textinhalt, Rahmen und Shapes (kleine Punkte) mit Klick auf einen Button aus...
  5. Replace a shape in a SmartArt graphic

    in Microsoft Excel Tutorials
    Replace a shape in a SmartArt graphic: Replace a shape in a SmartArt graphic Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 Mehr... Weniger...
  6. Userform shapes ansprechen

    in Microsoft Excel Hilfe
    Userform shapes ansprechen: Hallo, das ist mal wieder zu tricky für mich. Mit folgendem Code wird die CheckBox1 nicht angezeigt, wenn in der Zelle D6 das Wort "Schießen:" fehlt. Wenn das Steuerelement "CheckBox1" in die...
  7. Schwierige Flächenberechnung mit Excel möglich?

    in Microsoft Excel Hilfe
    Schwierige Flächenberechnung mit Excel möglich?: Servus aus Bayern erstmal, Ich habe eine Frage zum Thema Flächenberechnung bei Excel. Das ganze ist gar nicht so einfach und die frage ob das ganze überhaupt möglich ist stelt sich nach Wochen des...
  8. Flächenberechnung möglich?

    in Microsoft Excel Hilfe
    Flächenberechnung möglich?: Hallo! Habe mich gefragt, ob man mit Excel die Fläche unter einer Kurve in einem Diagramm mit einer bestimmten Funktion ausrechnen lassen kann? Geht das? Vielen Dank. tobbes
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden