Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1220to1224
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
Pfeile in aktive Zelle
gerhard
Hallo zusammen,
bitte um Makrohilfe!
Wie kann per Auswahl den grünen Pfeil (Richtung unten) oder
den roten Pfeil (Richtung oben) in die aktive Zelle einfügen?
Vielen Dank
https://www.herber.de/bbs/user/75747.xls

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pfeile in aktive Zelle
18.07.2011 19:13:42
gerhard
Hallo Tino, Vielen Dank für deine schnelle Hilfe.
Ich möchte nicht beide Pfeile zusammen einfügen, sondern immer nur einen Pfeil, entwender den Pfeil nach oben (sollte rot sein) oder den Pfeil nach unten (sollte grün sein).
Die beiden Pfeile in der Beispieldatei sind nur zur Anschauung, wie die Pfeile aussehen sollten.
Noch eine Anmmerkung, wenn ich eine variable Zellposition auswähle und dann entweder den Pfeil nach oben oder den Pfeil nach unten setze, muß der Pfeil in dieser Position bleiben.
Nachdem ich eine neue Position auswähle muß wieder eine Auswahlmöglichkeit zum setzen eines erneuten Pfeils erfolgen. Alle vorher gesetzten Pfeile müssen bestehen bleiben!
Vielen Dank
Anzeige
und wie soll dies ablaufen?
18.07.2011 19:20:22
Tino
Hallo,
wann soll nun welcher Pfeil gesetzt werden?
So wie Du schreibst soll immer ein neuer Pfeil erzeugt werden, weil der alte bestehen bleiben soll?!
Gruß Tino
AW: und wie soll dies ablaufen?
18.07.2011 20:07:45
gerhard
Hallo Tino,
Ich werte manuell Messreihen aus und möchte dann in den variablen Positionen, wo ich die Zelle ebenfalls manuell auswähle, über eine Auswahlmöglichkeit entweder einen roten oder einen grünen Pfeil in diese Zelle einfügen.
Vielen Dank
so müsste es gehen...
18.07.2011 20:30:22
Tino
Hallo,
wenn ich dich verstanden habe.
Pfeil nach oben mit Strg+Pfeil oben
Pfeil nach unten mit Strg+Pfeil unten
Kannst Du im Code auch anders einstellen, siehe unter OnKey in der Hilfe nach.
(erstellt unter xl2007)
https://www.herber.de/bbs/user/75749.xls
Gruß Tino
Anzeige
AW: so müsste es gehen...
18.07.2011 21:05:55
gerhard
Hallo Tino,
so funktionierts..
1.) aber wie kann ich Größe und Farbe der Pfeile noch anpassen?
2.) wie muß der Code noch angepasst werden, wenn ich noch Pfeile in waagerechter Richtung
einmal Spitze nach links und einmal Spitze nach rechts?
Ich habe Excel 2003
Vielen Dank
2. erweiterte Version
18.07.2011 21:32:45
Tino
Hallo,
mit dem Code im Modul Modul2_Pfeile_Bearbeiten kannst Du die Vorlage für die Pfeile
sichtbar/unsichtbar machen und bearbeiten.
Diese befinden sich oben im Bereich M1:P3.
https://www.herber.de/bbs/user/75752.xls
Gruß Tino
Anzeige
AW: 2. erweiterte Version
18.07.2011 22:07:02
gerhard
Hallo Tino,
Vielen Dank
Super!
Aber leider kann ich die verborgenen Pfeile nicht sichtbar machen?
Kann das an meiner Excel-Version2003 liegen?
Was muss ich tun?
Danke
geht bei mir auch unter xl2003 ...
18.07.2011 22:15:26
Tino
Hallo,
den Code im Modul Modul2_Pfeile_Bearbeiten
ausführen Pfeile sichbar nochmal ausführen Pfeile unsichbar usw... .
Gruß Tino
AW: geht bei mir auch unter xl2003 ...
18.07.2011 22:50:35
fcs
Hallo Gerhard, hallo Tino,
man kann die Formatierung der Linien/Pfeile auch im Code festlegen, dann geht es auch ohne Musterpfeile.
Leider ist der Makrorecorder unter Excel 2007 nicht so doll, so dass es etwas mühselig war, die Formatierungen zusammenzustellen.
Alles drum herum ist dann so wie in Tino's Lösung (Tastenbelegung für Strg+Pfeiltasten änder, wenn das Tabellenblatt aktiviert wird.)
Gruß
Franz
Code in Modul1:
Option Explicit
'Erstellt unter Excel 2007
'Code in allgemeinem Modul
Sub Aktiviere_Taste()
Application.OnKey "^{UP}", "'PfeilSetzen ""1""'"
Application.OnKey "^{DOWN}", "'PfeilSetzen ""2""'"
Application.OnKey "^{RIGHT}", "'PfeilSetzen ""3""'"
Application.OnKey "^{LEFT}", "'PfeilSetzen ""4""'"
End Sub
Sub DeAktiviere_Taste()
Application.OnKey "^{UP}"
Application.OnKey "^{DOWN}"
Application.OnKey "^{RIGHT}"
Application.OnKey "^{LEFT}"
End Sub
Public Sub Pfeilsetzen(lOption)
Select Case Val(lOption)
Case 1: Call EinfuegenPfeil(Zelle:=ActiveCell, lRichtung:=1, Farbe:=255) 'Pfeil oben - rot
Case 2: Call EinfuegenPfeil(Zelle:=ActiveCell, lRichtung:=2, Farbe:=6723891) 'Pfeil unten -  _
grün
Case 3: Call EinfuegenPfeil(Zelle:=ActiveCell, lRichtung:=3, Farbe:=255) 'Pfeil rechts -  _
rot
Case 4: Call EinfuegenPfeil(Zelle:=ActiveCell, lRichtung:=4, Farbe:=6723891) 'Pfeil links -  _
grün
End Select
End Sub
Public Sub EinfuegenPfeil(Zelle As Range, lRichtung As Long, Farbe As Long)
Dim oPfeil As Shape, wks As Worksheet
Dim B_X#, B_Y#, E_X#, E_Y#, lFarbe As Long
Dim Laenge#
'Koordinaten der Linie, ermittelt aus Top- und Left-Position und Width der Zelle
'B_X = Beginn X
'E_X = Ende X
'B_Y = Beginn Y
'E_Y = Ende Y
With Zelle
Laenge = 16 'Länge der Pfeillinien
Select Case lRichtung
Case 1 'unten nach oben
B_X = .Left + .Width - 1: B_Y = .Top + .Height - 1
E_X = B_X:  E_Y = B_Y - Laenge
Case 2 'oben nach unten
B_X = .Left + .Width - 1: B_Y = .Top + 1
E_X = B_X: E_Y = B_Y + Laenge
Case 3 'links nach rechts
B_X = .Left + .Width - 1 - Laenge: B_Y = Zelle.Top + .Height / 2
E_X = B_X + Laenge: E_Y = B_Y
Case 4 'rechts nach links
B_X = .Left + .Width - 1: B_Y = .Top + .Height / 2
E_X = B_X - Laenge: E_Y = B_Y
End Select
End With
Set wks = Zelle.Parent
Set oPfeil = wks.Shapes.AddLine(BeginX:=B_X, BeginY:=B_Y, EndX:=E_X, EndY:=E_Y)
With oPfeil
.Placement = xlMove 'Pfeil an Zelle gebunden
With .Line
'Form und Größe der Pfeile
.BeginArrowheadStyle = 1 'msoArrowheadNone
.EndArrowheadStyle = 2 'msoArrowheadTriangle
.EndArrowheadLength = 3 'msoArrowheadLong
.EndArrowheadWidth = 3 'msoArrowheadWide
.Weight = 1 'Linienbreite
'Farbe der Linie
.ForeColor.RGB = Farbe
End With
End With
Set wks = Nothing: Set oPfeil = Nothing
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige