Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

shape verschieben und an Zellen ausrichten

shape verschieben und an Zellen ausrichten
17.06.2006 07:57:36
Emil
Hallo,
ich habe per Hand ein shape (eine vertikale Linie) erzeugt und dabei durch Drücken der alt-Taste an den Zellecken ausgerichtet.
Wie kann ich diese Linie per vba um genau zwei Zellen nach links verschieben und dabei wieder genau an den Zellecken ausrichten.
Gruß Emil

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: shape verschieben und an Zellen ausrichten
17.06.2006 10:28:26
Daniel
Hallo
Linke obere Ecke ausrichten
ActiveSheet.Shapes("ShapeName").Top = Range("gewünschte Zelle).top
ActiveSheet.Shapes("ShapeName").Left = Range("gewünschte Zelle).left
Länge Ausrichten:
ActiveSheet.Shapes("ShapeName").width = Range("gewünschte Zelle).width
Alternativ, wenn du nicht genau weißt, welche zu welcher Zelle die Linie verschoben werden soll, dann so
ActiveSheet.Shapes("ShapeName").IncrementTop -2*("gewünschte Zelle).heigth
Gruß, Daniel Eisert
AW: shape verschieben und an Zellen ausrichten
17.06.2006 10:28:39
Josef
Hallo Emil!
Vom Prinzip her, geht das so.
Sub verschiebeLinie()
Dim objLine As Shape
Dim rng As Range

Set objLine = ActiveSheet.Shapes("Linie 1") 'Name der Linie! - anpassen!
Set rng = objLine.TopLeftCell

If rng.Column >= 2 Then
  With objLine
    .Left = rng.Offset(0, -2).Left
    .Top = rng.Offset(0, -2).Top
    .Height = rng.Offset(0, -2).Height
  End With
End If

Set objLine = Nothing
Set rng = Nothing

End Sub


Gruß Sepp

Anzeige
AW: shape verschieben und an Zellen ausrichten
17.06.2006 19:53:53
Emil
Hallo Daniel und Sepp,
vielen Dank für eure Antworten. Gibt es auch eine Lösung, wenn ich den Namen der Linie nicht kenne, sondern nur weiß wo genau sie sich auf dem Arbeitsblatt befindet? Ich hatte es bisher so versucht, dass ich den umgebenden Bereich (und damit auch die Linie) ausgeschnitten und woanders hin kopiert habe, das macht aber Problem mit der Formatierung.
Gruß Emil
AW: shape verschieben und an Zellen ausrichten
17.06.2006 20:09:31
Josef
Hallo Emil!
Wozu soll den das ganze gut sein?
Das hat imho nichts mehr mit Tabellenkalkulation zu tun.
Ist nur eine Linie auf dem Blatt oder mehrere?
Gruß Sepp

Anzeige
AW: shape verschieben und an Zellen ausrichten
17.06.2006 20:20:28
Emil
Hallo Sepp,
Hintergrund ist folgender: Ich mache ein Makro für einen häufig benötigten Nachweis bei einer technischen Berechnung. Zu diesem Nachweis gehört auch eine Skizze. Die Skizze will ich in Abhängigkeit von bestimmten Eingabe anpassen. Dazu muss ich eine Linie in der Skizze verschieben.
Der ganze Nachweis liegt als Vorlage auf einem seperaten Blatt und wird bei Bedarf per vba in das aktuelle Tabellenblatt hineinkopiert, eventuell auch mehrmals hintereinander. Daher kenne ich dann auch nicht den Namen der Linie.
Gruß Emil
AW: shape verschieben und an Zellen ausrichten
17.06.2006 20:27:35
Josef
Hallo Emil!
Und wie kann man ermitteln welche Linie verschoben werden soll?
Gruß Sepp

Anzeige
AW: shape verschieben und an Zellen ausrichten
17.06.2006 20:38:15
Emil
Hallo Sepp,
es handelt sich immer um eine bestimmte Linie in der Skizze. Diese Linie befindet sich immer auf dem senkrechten Rand einer Zelle. Die Position dieser Zelle kann ich anhand einer Beschriftung der Skizze ermitteln. Wenn ich diese Beschriftung in der Skizze ändere soll auch die Linie entsprechend verschoben werden. Es gibt also immer einen Zusammenhang zwischen Beschriftung und Lage der Linie.
Gruß Emil
AW: shape verschieben und an Zellen ausrichten
17.06.2006 21:05:26
Josef
Hallo Emil!
Wie es vom Prinzip her funktioniert, hat Daniel schon beschrieben.
Wenn du damit nicht klar kommst, dann lade am besten ein Beispiel mit der Skizze hoch(mit Beschreibung).
Gruß Sepp

Anzeige
AW: shape verschieben und an Zellen ausrichten
17.06.2006 20:48:07
Daniel
Hallo
wenn er ,wie er schreibt, genau weiss, wo die Linie ist (also die Zelle kennt, in der sie sich befindet), dann könnte man mit
For Each shapeVariable in Sheet(xx).shapes
if shapeVariable.TopLeftCell.Address = Range(...).address then
....
end if
Next
die entsprechende Linie schon herausfinden und verschieben.
Es werden halt alle Grafik-Objekte verschoben, die ihre linke obere Ecke in der benannten Zelle haben.
gruß, Daniel
AW: shape verschieben und an Zellen ausrichten
17.06.2006 20:48:08
Daniel
Hallo
wenn er ,wie er schreibt, genau weiss, wo die Linie ist (also die Zelle kennt, in der sie sich befindet), dann könnte man mit
For Each shapeVariable in Sheet(xx).shapes
if shapeVariable.TopLeftCell.Address = Range(...).address then
....
end if
Next
die entsprechende Linie schon herausfinden und verschieben.
Es werden halt alle Grafik-Objekte verschoben, die ihre linke obere Ecke in der benannten Zelle haben.
gruß, Daniel
Anzeige
AW: shape verschieben und an Zellen ausrichten
18.06.2006 10:07:29
Emil
Hallo Daniel und Sepp,
nochmals vielen Dank für eure Hilfe. Allein hätte ich das nicht geschafft. Ich mache es im Prinzip jetzt so wie Daniel vorgeschlagen hat, indem ich die Eigenschaften top und left aller Linien mit der mir bekannten Zelle vergleiche und dann die richtige Linie entsprechend verschiebe.
Einen schönen Sonntag noch!
Gruß Emil

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige