Shapes ansprechen und Informationen hinterlegen

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von robin5003414.

    Shapes ansprechen und Informationen hinterlegen

    Hallo,

    habe folgenden VBA Code

    Visual Basic-Quellcode

    1. Sub schleife_max()
    2. i = 1: xmax = 0
    3. xmin = 1000
    4. i = 1: ymax = 0
    5. ymin = 1000
    6. Dim ingsz As Double
    7. Do
    8. i = i + 1
    9. If Worksheets("netzelement").Cells(i, 9) > xmax Then xmax = Worksheets("netzelement").Cells(i, 9)
    10. If Worksheets("netzelement").Cells(i, 9) < xmin Then xmin = Worksheets("netzelement").Cells(i, 9)
    11. If Worksheets("netzelement").Cells(i, 10) > ymax Then ymax = Worksheets("netzelement").Cells(i, 10)
    12. If Worksheets("netzelement").Cells(i, 10) < ymin Then ymin = Worksheets("netzelement").Cells(i, 10)
    13. Loop Until Worksheets("netzelement").Cells(i + 1, 1) = ""
    14. MsgBox "Xmax=" & xmax
    15. MsgBox "Xmin=" & xmin
    16. MsgBox "Ymax=" & ymax
    17. MsgBox "Ymin=" & ymin
    18. xdiff = xmax - xmin
    19. ydiff = ymax - ymin
    20. i = 1
    21. Do
    22. i = i + 1
    23. xakt = Worksheets("netzelement").Cells(i, 9)
    24. yakt = Worksheets("netzelement").Cells(i, 10)
    25. xd = 1 - (xmax - xakt) / xdiff
    26. yd = (ymax - yakt) / ydiff
    27. ActiveSheet.Shapes.AddShape(msoShapeOval, xd * 2000, yd * 2000, 31.5, 28.5).Select
    28. selction.Name = "FXB" & "B45"
    29. Loop Until Worksheets("netzelement").Cells(i + 1, 1) = ""
    30. End Sub


    Es werden relativ viele Shapes erstellt, nun will ich einzelene shapes ansprechen und den shapes infos hinterlegen.

    Hat jemand eine idee für mich ?

    Bild im anhang

    lg

    robin
    Dateien
    • Unbenannt.jpg

      (791,09 kB, 155 mal heruntergeladen, zuletzt: )
    Wie willst du sie ansprechen? Alle? dann einfach

    Visual Basic-Quellcode

    1. For each shape in Worksheet
    2. 'mach wat
    3. next

    'Achtung nur Vorgehensweise nich lauffähig ;)
    oder ein bestimmtes? Wenn ja welches?
    Du solltest sie dann vielleicht beim erstellen entsprechend benamsen ;)
    btw.. gib deinem sheet man nen namen, dann brauchste den Käse nich so oft zu schreiben.

    Visual Basic-Quellcode

    1. Dim wsZeichenfläche as Worksheet
    2. Set wsZeichenfläche = Activeworkbook.worksheets("netzelement")
    danke schonmal für die antwort,

    also das was ich eher suche, dass ich auf ein shape klicke, mir dann einen msg box angezeigt wird mit einer bestimmten info (breitengrad)

    ich weis aber absolut nicht, wie man das umsetzenkann bin auch noch relativ unerfahren.
    also habe jetzt schon mal folgendes hinbekommen

    Visual Basic-Quellcode

    1. ActiveSheet.Shapes.AddShape(msoShapeOval, xd * 2000, yd * 2000, 31.5, 28.5).Select
    2. Selection.OnAction = "test"
    3. Selection.Characters.Text = Worksheets("netzelement").Cells(i, 5)
    4. Selection.Name = Worksheets("netzelement").Cells(i, 5)
    5. Loop Until Worksheets("netzelement").Cells(i + 1, 1) = ""
    6. End Sub
    7. Sub Test()
    8. MsgBox Application.Caller
    9. End Sub




    MsgBox Application.Caller

    Bei dieser Stelle müsste ich jetzt noch irgendwie sagen können, dass er die werte aus der spalte i nehmen soll, aber irgendwie bekomm ich das nicht hin.