Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1416to1420
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

Grafik vervielfältigen und ausrichten

Grafik vervielfältigen und ausrichten
28.03.2015 09:36:36
Max
Hallo Leute
ich habe ein - wie ich zunächst dachte - einfaches Problem: Ich möchte ein einfaches in Excel erstelltes Rechteck/Shape variabel in ein anderes Tabellenblatt kopieren und anschließend diese Kopien nebeneinander anordnen.
Ich habe schon einiges versucht:
Wenn ich das Shape mehrfach kopiere, haben natürlich alle "neuen" Rechtecke den gleichen Name --> ich kann die einzelnen Rechtecke zum Ausrichten nicht mehr gezielt ansprechen.
Alternative: Ich kann natürlich die einzelnen Rechtecke beim Einfügen an unterschiedlichen Zellen ausrichten, in etwa so wie hier..
Sub Grafik()
Worksheets("Tabelle1").Activate
Set Rechteck = Worksheets("Tabelle").Shapes("Rechteck")
Rechteck.Copy
Anzahl = 4
For x = 1 To Anzahl
Worksheets("Tabelle2").Activate
Worksheets("Tabelle2").Paste Cells(10, 5 + x)
Next x
End Sub

..dann müsste ich aber die Zellenbreite an der Rechteckbreite anpassen, was ich nicht will.
Kann ich jedem Rechteck direkt beim Einfügen an einen bestimmten Bildpunkt ausrichten, also quasi Koordinaten zuweisen(nicht Zellennamen)?
Gruß

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafik vervielfältigen und ausrichten
28.03.2015 10:17:21
Nepumuk
Hallo,
versuch es mal mit duplizieren. Beispiel:
Public Sub Duplizieren()
    Dim objShape As Shape, objDuplicat As Shape
    Set objShape = Tabelle1.Shapes("Rechteck 1")
    Set objDuplicat = objShape.Duplicate
    With objDuplicat
        .Name = "Rechteck 2"
        .Left = Columns(3).Left
        .Top = Rows(2).Top
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Grafik vervielfältigen und ausrichten
28.03.2015 10:56:54
Max
Hey danke! Ich habe das Ganze noch in eine For-Schleife gepackt und es funktioniert fast wie es soll.
Einziger Schönheitsfehler: Die Rechtecke werden in das selbe Tabellenblatt dupliziert. Lässt sich das ändern? Ich kriegst grad nicht hin..
hier der Text
Public Sub Duplizieren()
Dim objShape As Shape, objDuplicat As Shape
Set objShape = Tabelle1.Shapes("Rechteck")
Anzahl = 4
For x = 1 To Anzahl
Set objDuplicat = objShape.Duplicate
With objDuplicat
.Name = "Rechteck" & x
.Left = Columns(3).Left
.Top = Rows(2).Top
End With
Next x
End Sub

Gruß

Anzeige
AW: Grafik vervielfältigen und ausrichten
28.03.2015 10:58:51
Nepumuk
Hallo,
du kannst sie doch nach dem duplizieren umbenennen und so mit eindeutigen Namen per Cut & Paste in die andere Tabelle bringen.
Gruß
Nepumuk

AW: Grafik vervielfältigen und ausrichten
28.03.2015 11:25:35
Max
Danke Nepumuk für Mühe, aber mein eigentliches Problem ist, dass sich die Rechtecke später selbständig aneinander reihen sollen, die Anzahl der Rechtecke kann variieren. Daher würde am liebsten beim Durchlaufen der For-Schleife sofort jedem Rechteck seinen endgültigen Platz zuweisen.
Also etwa nach dem Motto:
"Rechteck"x.IncrementLeft 250*x
(als Beispiel für den Fall, dass ein Rechteck 250 Längeneinheiten misst)
Natürlich klappt das bisher noch nicht...
Gruß

Anzeige
AW: Grafik vervielfältigen und ausrichten
28.03.2015 11:04:49
Beverly
Hi,
dass du die neu eingefügten Rechtecke nicht mehr auseinanderhalten kannst, stimmt so nicht, denn du kennst ja die Reihenfolge, in der sie erstellt wurden und in dieser Reihenfolge indiziert Excel sie auch - du kannst also mit Shapes(5) das als 5. eingefügte Shape und mit Shapes(Shapes.Count) immer das zuletzt eingefügte ansprechen.
Sub Grafik()
Dim Rechteck As Shape
Dim x As Integer
Set Rechteck = Worksheets("Tabelle1").Shapes("Rechteck 1")
Rechteck.Copy
With Worksheets("Tabelle2")
For x = 1 To 4
.Paste
If .Shapes.Count = 1 Then
.Shapes(.Shapes.Count).Top = .Range("C5").Top
.Shapes(.Shapes.Count).Left = .Range("C5").Left
Else
.Shapes(.Shapes.Count).Top = .Range("C5").Top
.Shapes(.Shapes.Count).Left = .Shapes(.Shapes.Count - 1).Left + _
.Shapes(.Shapes.Count - 1).Width
End If
Next x
End With
End Sub


Anzeige
AW: Grafik vervielfältigen und ausrichten
28.03.2015 11:52:19
Max
Danke Beverly! Genauso hab ich's mir vorgestellt!
Klappt einwandfrei :D
Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige