Wie lautet der Befehl um eine Linie zu zeichnen, und zwar vom Mittelpunkt einer Zelle zum Mittelpunkt einer anderen Zelle? Z.B. von B4 nach C7
Danke schon mal
Sub Macro2()
Dim lbx As Long
Dim lby As Long
Dim lex As Long
Dim ley As Long
Dim shp As Shape
With Range("B4")
lbx = .Left + .Width / 2
lby = .Top + .Height / 2
End With
With Range("c7")
lex = .Left + .Width / 2
ley = .Top + .Height / 2
End With
ActiveSheet.Shapes.AddLine lbx, lby, lex, ley
End Sub
Um in Excel eine Linie zu zeichnen, die vom Mittelpunkt einer Zelle zum Mittelpunkt einer anderen Zelle führt, kannst du folgendes VBA-Makro verwenden:
Sub LinieZeichnen()
Dim lbx As Long
Dim lby As Long
Dim lex As Long
Dim ley As Long
With Range("B4")
lbx = .Left + .Width / 2
lby = .Top + .Height / 2
End With
With Range("C7")
lex = .Left + .Width / 2
ley = .Top + .Height / 2
End With
ActiveSheet.Shapes.AddLine lbx, lby, lex, ley
End Sub
ALT + F11
, um den VBA-Editor zu öffnen.Mit dieser Methode kannst du eine Linie in Excel zeichnen, die von einer Zelle zur anderen führt.
Fehler: "Zelle nicht gefunden"
Fehler: Linie wird nicht angezeigt
Fehler: Ungültige Koordinaten
Neben der Verwendung von VBA kannst du auch die Form-Funktion in Excel nutzen:
SHIFT
-Taste gedrückt hältst, um eine gerade Linie zu erstellen.Diese Methode ist einfach, aber weniger flexibel als das Zeichnen mit einem Makro.
Wenn du mehrere Linien in Excel zeichnen möchtest, kannst du folgendes erweitertes Makro verwenden, das Koordinaten aus einem anderen Blatt ausliest:
Sub LinienVonKoordinaten()
Dim wsData As Worksheet
Dim wsStr As Worksheet
Dim letzteZeile As Long
Dim i As Long
Set wsData = ThisWorkbook.Sheets("Dat")
Set wsStr = ThisWorkbook.Sheets("Str")
letzteZeile = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
For i = 2 To letzteZeile
Dim startX As Long, startY As Long
Dim endX As Long, endY As Long
startX = wsData.Cells(i, 1).Value
startY = wsData.Cells(i, 2).Value
endX = wsData.Cells(i, 3).Value
endY = wsData.Cells(i, 4).Value
wsStr.Shapes.AddLine wsStr.Cells(startY, startX).Left + wsStr.Cells(startY, startX).Width / 2, _
wsStr.Cells(startY, startX).Top + wsStr.Cells(startY, startX).Height / 2, _
wsStr.Cells(endY, endX).Left + wsStr.Cells(endY, endX).Width / 2, _
wsStr.Cells(endY, endX).Top + wsStr.Cells(endY, endX).Height / 2
Next i
End Sub
Dieses Makro liest die Koordinaten aus dem Blatt „Dat“ aus und zeichnet die Linien im Blatt „Str“.
1. Wie kann ich die Farbe der Linie ändern?
Du kannst die Farbe der Linie ändern, indem du den ForeColor
-Eigenschaft im VBA-Code anpasst.
2. Funktioniert das auch in älteren Excel-Versionen?
Ja, die meisten VBA-Funktionen sind in den meisten Excel-Versionen ab 2007 verfügbar. Achte darauf, dass du die richtige Syntax verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen