Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Rechtecke zeichnen

Rechtecke zeichnen
04.02.2017 17:46:52
Raphael
Hallo zusammen,
ist es möglich mit VBA (von dem ich leider keine Ahnung habe) Rechtecke zu zeichnen, die überlagert und in sich zentriert sind?
Die Daten für die Rechtecke sind variabel und in einer Tabelle zusammengefasst die aus Formeln gefüllt wird (in der Beispieldatei sind feste Werte, falls das einen Unterschied macht)
Die Rechtecke sind farbig gefüllt (im Beispiel unterschiedlich grün) und ohne Rand, ein Rechteck jedoch nur Rand ohne Füllung.
Ich weiß das man dann einen Button für den Start des Makros benötigt. Was ist der Unterschied hier von einem Steuerelement und einem Aktiv X Steuerelement. Wie verknüpft man dieses mit dem Makro und wohin muss das Makro kopiert werden.
Ich hoffe so etwas ist relativ einfach zu bewerkstelligen, ohne das es an Auftragsprogrammierung geht.
Vielen Dank schon mal vorab.
Hier die Beispieldatei:
https://www.herber.de/bbs/user/111192.xlsm
Gruß
Raphael

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechtecke zeichnen
04.02.2017 17:49:35
Raphael
ach ja,
wenn man den Button nochmal drückt, weil sich die Werte in der Tabelle geändert haben, soll die alte Grafik gelöscht werden und komplett neu erstellt werden
Sorry, den Satz habe ich vergessen
Gruß
Raphael
AW: proof of concept
04.02.2017 21:29:19
Fennek
Hallo,
die Vorlage war mir zu kompliziert, aber einen Anfang

Sub T1()
W1 = Array("x", "y", "l", "b")
W2 = Array(300, 30, 200, 300)
W3 = Array(320, 50, 160, 260)
Cells(3, 1).Resize(, 4) = W1
Cells(4, 1).Resize(, 4) = W2
Cells(5, 1).Resize(, 4) = W3
For i = 4 To 5
x = Cells(i, 1)
y = Cells(i, 2)
l = Cells(i, 3)
b = Cells(i, 4)
F = Array(11, 17, 50)
ActiveSheet.Shapes.AddShape(msoShapeRectangle, x, y, l, b).Select
Selection.ShapeRange.Line.Visible = msoFalse
Selection.ShapeRange.Fill.ForeColor.SchemeColor = F(i - 4)
Next i
Debug.Print Selection.Name
End Sub
Sub Shape_loesch()
Dim WS As Worksheet
Set WS = ActiveSheet
For Each Sp In WS.Shapes
Sp.Delete
Next Sp
End Sub
Für jedes weitere Shape müßten die Koordinaten und Größe berechnet werden.
mfg
Anzeige
AW: proof of concept
05.02.2017 09:58:54
Raphael
Hallo Fennek,
danke für das Makro.
Ich habe es in die Arbeitsmappe kopiert und zwei Schaltflächen verknüpft. Wenn ich Löschen drücke sind auch die Schaltflächen weg :( was mache ich da falsch?
Kann man das Makro auch dazu bringen Werte aus der Tabelle auszulesen. Die Koordinaten kann ich separat berechnen und bereit stellen. Die Größe der weiteren Shapes im inneren habe ich ja definiert als Länge 3 und Breite 3, demnach fehlt nur der Startpunkt dazu für jedes shape, wenn ich es richtig gedeutet habe immer oben links
Danke und Gruß
Raphael
AW: proof of concept
05.02.2017 10:03:19
Raphael
Frage als offen gekennzeichnet
Anzeige
AW: Erweiterung
05.02.2017 10:53:20
Fennek
Hallo,
die Daten für die Rechtecke werden ab A4, pro Rechteck jeweils 4 Spalten, eingetragen.
Dann muss die Schleifen "For i = 4 to 5" entsprechend erweitert werden. Ich habe nur 3 verschiedene grün-Töne gefunden.
Das Löschen ist im Moment für alle Shapes eingestellt, kann auch auf Rechtecke reduziert werden.
mfg
AW: Rechtecke zeichnen
04.02.2017 22:05:24
Piet
Hallo Raphael,
eine Lösung von Fennek liegt ja vor, eine Frage von dir noch Offen - der Unterschied zwischen:
Steuerelement und einem Aktiv X Steuerelement
Für einfache Anwendung wie Button drücken empfehle ich den normalen CommandButton, denn dem kannst du problemlos ein Makro zuweisen, das in einem Modulblatt liegt. Das AktiveSteuerelement hat ein eigenes Codeblatt, das Makro kannst du aber nicht von einem Modul aus starten. Das startet nur "BeiKlck" Button! Einziger Vorteil, man kann bestimmte Eigenschaften extra einstellen, wie Schriftfarbe etc. Zum Programmieren gebe ich dem normalen Button den Vorzug.
mfg Piet
Anzeige
AW: Rechtecke zeichnen
05.02.2017 06:18:35
 Matthias
Hallo
Das AktiveSteuerelement hat ein eigenes Codeblatt, das Makro kannst du aber nicht von einem Modul aus starten.
Das ist falsch.
Kann man auch aus einem Modul starten.
Gruß Matthias
AW: Rechtecke zeichnen
05.02.2017 10:00:30
Raphael
Hallo Piet,
danke für die Erklärung....für mich reicht erst mal das Steuerelement
Gruß
Raphael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge