Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pfeile in aktive Zelle

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
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
Anzeige
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
Anzeige
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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Pfeile in aktive Zelle einfügen in Excel


Schritt-für-Schritt-Anleitung

Um einen Pfeil in eine Zelle in Excel einzufügen, kannst du folgende Schritte ausführen:

  1. Makro aktivieren: Öffne Excel und aktiviere die Entwicklertools (Datei -> Optionen -> Menüband anpassen -> Entwicklertools aktivieren).

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul einfügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    
    Sub PfeilEinfügen()
       Dim oPfeil As Shape
       Dim Zelle As Range
       Set Zelle = ActiveCell ' Aktive Zelle auswählen
    
       ' Pfeil nach oben (rot)
       Set oPfeil = Zelle.Worksheet.Shapes.AddLine( _
           Zelle.Left + Zelle.Width / 2, Zelle.Top, _
           Zelle.Left + Zelle.Width / 2, Zelle.Top - 20)
       With oPfeil.Line
           .ForeColor.RGB = RGB(255, 0, 0) ' Rot
           .Weight = 2
           .EndArrowheadStyle = msoArrowheadTriangle
       End With
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Führe das Makro über Entwicklertools > Makros aus.

  6. Pfeil anpassen: Du kannst die Farbe und Richtung des Pfeils im Code ändern, um beispielsweise einen grünen Pfeil nach unten hinzuzufügen.


Häufige Fehler und Lösungen

  • Fehler: Der Pfeil wird nicht angezeigt

    • Lösung: Überprüfe, ob die aktive Zelle sichtbar ist und ob der Code korrekt ausgeführt wurde. Stelle sicher, dass der Pfeil nicht hinter anderen Objekten verborgen ist.
  • Fehler: Makro kann nicht ausgeführt werden

    • Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center und aktiviere die Makrosicherheit.

Alternative Methoden

Falls du keine Makros verwenden möchtest, kannst du auch Pfeile in Excel über die Formen-Funktion einfügen:

  1. Gehe zu Einfügen > Formen.
  2. Wähle den gewünschten Pfeil aus (z.B. Rechts-Pfeil oder Aufwärts-Pfeil).
  3. Ziehe den Pfeil in die gewünschte Zelle und passe die Größe an.

Diese Methode ist einfach und erfordert kein VBA.


Praktische Beispiele

  • Um einen roten Pfeil nach oben einzufügen, verwende den oben genannten VBA-Code und ändere die Farbe im Code.

  • Für einen grünen Pfeil nach unten kannst du die RGB-Werte anpassen:

    .ForeColor.RGB = RGB(0, 255, 0) ' Grün
  • Du kannst auch verschiedene Pfeile kombinieren, indem du mehrere Makros erstellst oder den Code entsprechend anpasst.


Tipps für Profis

  • Anpassung der Pfeilgröße: Ändere die Länge des Pfeils im Code, indem du die Zahl nach Top - 20 im AddLine-Befehl anpasst.
  • Pfeile zwischen Zellen: Wenn du Pfeile zwischen Zellen einfügen möchtest, musst du die Koordinaten der Zellen im Code entsprechend anpassen.
  • Verwendung von Formatvorlagen: Du kannst auch Pfeile als Formatierung verwenden, um die visuelle Darstellung zu verbessern.

FAQ: Häufige Fragen

1. Wie füge ich einen Pfeil in Excel 2003 ein?
Die Schritte sind ähnlich, aber die Benutzeroberfläche kann variieren. Stelle sicher, dass du die Entwicklertools aktivierst und den VBA-Editor nutzt.

2. Kann ich die Pfeile animieren?
In Excel sind Animationen für Formen nicht direkt verfügbar, du kannst jedoch die Formatierung ändern, um visuelle Effekte zu erzeugen.

3. Wie kann ich die Pfeile kopieren und einfügen?
Du kannst die Pfeile wie andere Formen kopieren, indem du mit der rechten Maustaste darauf klickst und Kopieren wählst. Füge sie dann in die gewünschte Zelle ein.

4. Gibt es eine Möglichkeit, Pfeile automatisch zu generieren?
Ja, du kannst ein Makro erstellen, das beim Drücken einer bestimmten Taste automatisch einen Pfeil in die aktive Zelle einfügt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige