Anzeige
Archiv - Navigation
1696to1700
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

mehrere Autoformen einfügen

mehrere Autoformen einfügen
09.06.2019 11:00:29
Raphael
Hallo zusammen,
ich möchte gerne mehrere Autoformen, hier Rechtecke, in Reihen und Spalten einfügen. Alles auf dem selben Arbeitsblatt
Die Größe und Positionen habe ich mir in Excel berechnet. Ebenso die Anzahl Rechtecke in der Reihe und die Anzahl der Reihen. Die Abstände zueinander in Spalten und Reihen habe ich auch in entsprechenden Zellen berechnet.
Wie bekomme ich nun den VBA Code dazu die richtige Anzahl Rechtecke in Reihen und Spalten mit den richtigen Abständen zueinander einzufügen.
Bis jetzt habe ich folgenden Codeschnipsel, der mir zwar bereits die ersten 5 Rechtecke einfügt, aber alle an der selben Position.
'Deklarierung Variable für shape2/TabRoute
Dim Farbe2
Farbe2 = Range("ce11").Interior.Color
Dim Left2
Left2 = Range("ch11")
Dim Top2
Top2 = Range("cj11")
Dim Width2
Width2 = Range("cl11")
Dim Hight2
Hight2 = Range("cn11")
Dim ishape2
ishape2 = 1
Dim Endwertrow2
Endwertrow2 = Range("cq11")
Dim Abstandrow2
Abstandrow2 = Range("co11")
Dim Endwertcolumn2
Endwertcolumn2 = Range("ct11")
Dim Abstandcolumn2
Abstandcolumn2 = Range("cr11")
'shape2/TabRoute mit Schleife -> FUNKTIONIERT NOCH NICHT->daher auskommentiert
For ishape2 = 1 To Endwertrow2
'activeshape.offset(Abstandrow2,0)
'If Endwertrow2 = Range("cq11") Then
''Offset(endwertcolumn2,0)
''ishape2 = 1 To Endwertrow2
'End If
ActiveSheet.Shapes.AddShape(msoShapeRectangle, Left2, Top2, Width2, Hight2).Select
Selection.ShapeRange.Name = Range("cc11")
Selection.Name = Range("cc11").Value
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = Farbe2
.Transparency = 0
.Solid
End With
'ohne Rahmen
Selection.ShapeRange.Line.Visible = msoFalse
Next
Im angehängten Beispiel sind die berechneten Zellen durch Werte ersetzt.
https://www.herber.de/bbs/user/130301.xlsm
Danke schon mal
Gruß
Raphael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Autoformen einfügen
11.06.2019 19:47:09
Raphael
Hallo nochmal,
ich kenne mich leider nicht so gut mit VBA aus, meine weiteren Versuche die Schleife programmiert zu bekommen haben leider keinen Erfolg gehabt :(
Kann mir bei der Schleife hier jemand mit VBA Kenntnissen helfen?
Danke schon mal
Gruß
Raphael
AW: mehrere Autoformen einfügen
11.06.2019 22:32:14
Piet
Hallo Raphael
schöner Name, ist glaube ich, ein Erzengel ....
Wie gefaellt dir dein überarbeitets Beispiel? - Den Rest, die genauen Abstaende, musst du selbst machen.
https://www.herber.de/bbs/user/130341.xlsm
mfg Piet
AW: mehrere Autoformen einfügen
12.06.2019 19:30:33
Raphael
Hallo Piet,
Danke fürs überarbeiten, ich schau mir das am Do an, vorher reichts nicht :( ich melde mich dann obs in der Originaldatei funktioniert
Ja Raphael ist ein Erzengel, Heiler und Patron der Reisenden :)
Gruß
Raphael
Anzeige
AW: mehrere Autoformen einfügen
13.06.2019 06:09:15
Hajo_Zi
Hallo Raphael,
offen bedeutet es soll noch eine Antwort kommen.
Warum ist dein Beitrag Offen.
Du willst doch was machen. Soll jemand vorbei kommen?

AW: mehrere Autoformen einfügen
13.06.2019 13:05:06
Raphael
Hi nochmal,
habs gerade getestet und den Code verbogen, bekomme es aber nicht hin :(
Wie bekomme ich die Anzahl Rechtecke aus Zelle CQ11 mit Abstand aus CO11 hin und dzu die selbe Anzahl Rechtecke in Zeilen aus CT11.
Ich denke es muss eine Schelife werden die eben die Anzahl Rechtecke abfragt und dann druchläuft in der gewünschten Reihenanzahl.
Ich bekomme das nicht hin, da habe ich zu wenig Erfahrung in VBA
Sub Panelimage()
'erzeigt ein Bild des berechnetetn Panels
'Deklarierung Variable für shape2/TabRoute
Dim Farbe2
Farbe2 = Range("ce11").Interior.Color
Dim Left2
Left2 = Range("ch11")
Dim Top2
Top2 = Range("cj11")
Dim Width2
Width2 = Range("cl11")
Dim Hight2
Hight2 = Range("cn11")
Dim ishape2
ishape2 = 1
Dim Endwertrow2
Endwertrow2 = Range("cq11")
Dim Abstandrow2
Abstandrow2 = Range("cp11")
Dim Endwertcolumn2
Endwertcolumn2 = Range("ct11")
Dim Abstandcolumn2
Abstandcolumn2 = Range("cs11")
'shape2/TabRoute mit Schleife -> FUNKTIONIERT NOCH NICHT
'--> ab hier test aus FORUM
For ishape2 = 1 To Endwertrow2
If Range("ch11").Cells(ishape2, Endwertrow2) > 0 Then
Farbe2 = Range("ce11").Interior.Color
Left2 = Range("ch11").Cells(ishape2, Abstandrow2)
Top2 = Range("cj11").Cells(ishape2, 1)
Width2 = Range("cl11").Cells(ishape2, 1)
Hight2 = Range("cn11").Cells(ishape2, 1)
Endwertrow2 = Range("cq11").Cells(ishape2, 1)
Abstandrow2 = Range("cp11").Cells(ishape2, Endwertrow2)
Endwertcolumn2 = Range("ct11").Cells(ishape2, 1)
Abstandcolumn2 = Range("cs11").Cells(ishape2, Endwertcolumn2)
ActiveSheet.Shapes.AddShape(msoShapeRectangle, Left2, Top2, Width2, Hight2).Select
Selection.ShapeRange.Name = Range("cc11")
Selection.Name = Range("cc11").Value
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = Farbe2
.Transparency = 0
.Solid
End With
'ohne Rahmen
Selection.ShapeRange.Line.Visible = msoFalse
End If
Next
End Sub

Danke und Gruß
Raphael
Anzeige
AW: mehrere Autoformen einfügen
13.06.2019 23:31:42
Piet
Hallo Raphael
schmunzel, schmunzel, du hast offenbar das Cells(z,s) System noch nicht richtig verstanden!! Dann teste es bitte mal mit Select!
Aendere deinen Code bitte zum testen mal wie unten und schau dir bitte selbst in welcher Zelle du stehst!
Abstandrow2 hat einen Wert von 119,37 und versetzt den Zellenbereich auf "GP11". Was willst du da laden?
Diese Zeile, und auch die anderen, müssen so lauten: - Left2 = Range("ch11").Cells(ishape2, 1)
Ausserdem ist ab Zeile 12 bei dir alles Null! Mit Nullwerten für Top, Left, Breite, Höhe kannst du kein Objekt erstellen!!
mfg Piet
MsgBox Abstandrow2
For ishape2 = 1 To Endwertrow2
Range("ch11").Cells(ishape2, Abstandrow2).Select
Exit Sub
If Range("ch11").Cells(ishape2, Endwertrow2) > 0 Then

Anzeige
AW: mehrere Autoformen einfügen
14.06.2019 12:08:05
Raphael
Hi Piet,
seit vorletzter Woche und einem Kurs kenne ich VBA etwas näher, zumindest habe ich mal gesehen was man alles machen kann.
Vom Verstehen bin ich noch weit weg, vom programmieren allgemein.
Ok, ich habe verstanden das mit Endwertrow2 nicht die Zelle angesprochen wird die ich meine sondern damit auf eine Zelle GP11 gesprungen wird.
Das die anderen Zeilen 12 - 17 nicht gefüllt sind liegt daran das ich hier noch ganz andere shapes berechnen will, z. B. Kreise oder Pfeile usw.
Die Angaben in den Zellen sind fix, im Original kommen die aus einem separaten Tabellenblatt und werden berechnet und können sich demnach immer ändern.
Die Berechnung des Rechtecks mit dem Namen TabRoute (alle haben dann den selben Namen und die selbe Farbe) war so gedacht das ich den Startpkt (CH11 & CJ11), die Dimensionen (CL11 & CN11) in einer Zeile definiere genauso wie die Azzahl der Rechtecke in Reihen (CT11) und die Anzahl innerhalb einer Reihe (CQ11) mit Abstand innerhalb einer Reihe (CP11) und der Abstand zu der nächsten Reihne (CR11)
Ich habe mir das so vorgestellt das ich mit diesen Angaben eine Schleife hinbekomme. Aber dazu kenne ich die Programmiersprache viel zu wenig.
Ich probier mal weiter.
Gruß
Raphael
Anzeige
AW: mehrere Autoformen einfügen
14.06.2019 14:26:39
Piet
Hallo Raphael,
okay, viel Glück, lass dich nicht entmutigen. Im Zweifelsfall mit Select prüfen wo du landest, dann lernst du das programmieren am schnellsten. Habe mir alles selbst beigebracht ... Bin aber kein Profi, bestenfalls guter Amateur.
mfg Piet

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige