Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeichen für einen Wert anzeigen (Excel)





Frage

Guten Morgen! Ich möchte fragen, ob es möglich ist, in einer Tabelle (im Excel) eine Zahl (z.B. 2) einzutragen und danach in diesem Feld ein Zeichen (z.B. ein Pfeil nach oben) erscheint. Bei anderen Zahlen sollten auch andere Zeichen erscheinen. z.B. 2 = 1 = usw. Wenn ich also im Feld B7 die Zahl 2 eingebe, erscheint anstelle der 2 ein Pfeil nach oben. Das selbe gilt für die Zahl 1, die ich in das Feld B8 eingebe. Nur dass dort ein Pfeil nach rechts erscheint. Aber: Wenn ich die beiden Felder (B7 & B8) addiere, sollte ich als Summe trotzdem 3 erhalten... Ich hoffe, Ihr versteht einigermassen was ich meine und habe es nicht zu kompliziert geschrieben. Vielen Dank für Deine Bemühungen!

Antwort 1 von woher

Hallo, guten Morgen,
ich weiss nicht ob dein Problem lösbar ist. Zumindest müsstest du aber noch angaben bei welchen Ziffern, bzw. unter welchen Bedingungen was angezeigt werden soll.
mfg
woher

Antwort 2 von Freefly85

hmm, bin mir jetzt nicht ganz sicher, ob ich das richtig verstehe, aber...

...es soll immer, wenn ich die von mir bestimmte Zahl eingebe, ein Zeichen geben. Ich habe es jetzt auch schon mit Visual Basic versucht:

Public Function zahl(a As Integer) As Integer
zahl = zeichen
End Function

...als zahl soll dann z.B. 2 stehen und als zeichen ein Pfeil.

Das ganze soll eben ein Paarvergleich werden. Dann kann ich zwischen zwei verschiedenen Kriterien auswählen, welches wichtiger ist. Deshalb mache ich für den Benutzer 3 Buttons (wichtiger als, gleich wichtig, weniger wichtig).

Bis anhin gab man "von Hand" diese Zahlen ein:
2 = wichtiger als
1 = gleich wichtig
0 = weniger wichtig

Doch währen einer Präsentation weis dann der Zuschauer nicht recht, was jetzt diese Zahlen bedeuten, deshalb sollen statt Zahlen die Pfeile dargestellt werden:
2 = wichtiger als = Pfeil nach oben
1 = gleich wichtig = ein gleich zeichen (=)
0 = weniger wichtig = ein Pfeil nach unten

P.s. haben gerade gesehen, dass es bei meinem ersten Text die Pfeile nicht anzeigt (nach den "Gleich-Zeichen").

Antwort 3 von Primut

Hi Freefly85,

in diversen Threads wurde beispielsweise behandelt, wie man zB bei Zahleneingabe eine Textausgabe erhält,
zb hier, und hier , müßtest du halt statt des Textes die Zeichen einfügen, wichtig ist die Auswahl, für welche Zellen das gelten soll.
Ansonsten wird es aber sehr schwierig, mit den Zeichen als Zahlenwerte weiterrechnen, das würde eine recht komplexe Makroerweiterung bedeuten. Dh. vielleicht gibt es ja auch einfachere andere Möglichkeiten, dein Problem zu lösen.

Gruß Primut

Antwort 4 von Freefly85

Hallo!

Erstmal vielen Dank an die, die mir bereits geantwortet haben!

Ich habe mich mal schlau gemacht und bin nun auf ein Makro-Code gekommen (Visual Basik), der durch einen Schalter ausgelöst wird:

----------------------------------------------------------------
Private Sub CommandButton1_Click()

Dim strLocaction As Variant
Dim strValue As String

strLocaction = Range(Selection).Address ´Adresse speichern
Sheets("Berechnungen").Select ´3tes Sheet selektieren
Range(strLocaction).Select ´gleiche Zelle selektieren
ActiveSheet.Value = 2 ´speichern


´ pfeil holen und speichern
Range("D22").Select ´Feld D22 auswählen und selectieren
Selection.Copy ´Das Feld kopieren
Range(strLocaction).Select ´Die Position (Adresse) "holen"
Selection.Paste ´Das kopierte Feld einfügen

End Sub
-----------------------------------------------------------------

Aber bei "strLocaction = Range(Selection).Address ´Adresse speichern" bringt er mir einen Laufzeitfehler! Wieso??
In Feld D22 befindet sich das Zeichen "Pfeil nach oben". Der ganze Code ist nur dazu da, um den Pfeil nach oben zu setzen.

Gruss

Antwort 5 von Guenter

Hallo,
versuche mal, ob das so geht.


Option Explicit

Private Sub CommandButton1_Click()

Dim strLocaction As Variant

strLocaction = Selection.Address() ´Adresse speichern
Sheets("Berechnungen").Select ´3tes Sheet selektieren
Range(strLocaction).Select ´gleiche Zelle selektieren
ActiveCell.Value = 2 ´speichern


´ pfeil holen und speichern
Range("D22").Select ´Feld D22 auswählen und selectieren
Selection.Copy ´Das Feld kopieren
Range(strLocaction).Select ´Die Position (Adresse) "holen"
ActiveSheet.Paste ´Das kopierte Feld einfügen

End Sub


Gruß
GÜnter

Antwort 6 von Primut

Hi,

ja, Günter hat mit:
 strLocaction = Selection.Address 

recht, ich habs ausprobiert und bei mir feststellen müssen, daß erstaunlicherweise die Zellselection auf der anderen Seite nicht funzt, ging bei mir nur mit direkter Zellansprache ohne Selection, zB:
  Worksheets("Berechnungen").Range(strLocaction).Value = "testfeld"  

hier wird eben nur der String Testfeld zugewiesen, kannst dann deine Werte einsetzten.
Wichtig: Das Makro funzt nur, wenn überhaupt ein Zellbereich selektiert ist, ansonsten Fehlermeldung.
Zur behebung dieseer Fehlermeldung kannst du gerne
 On Error Resume Next

einsetzten, aber erst wenn´s läuft, läßt sich nämlich nicht wirklich mit Fehlerignorierung debuggen!

gruß Primut

Antwort 7 von Primut

Hey Freefly85,


keine Ahnung, wo du das entsprechende Makro her hattest und welche Werte du auf Buttondruck von wo nach wo kopieren willst!
Hab gerad gesehen:

ActiveSheet.Value = 2


diese Anweisung gibt es gar nicht! , kann also auch nicht laufen.
Vielleicht wär es ja sinnvoll, zu sagen was du kopiert haben willst.

Gruß Primut

Antwort 8 von Freefly85

Hallo Primut

Habe es jetzt geschafft!

Der Code lautet jetzt:

------------------------------------------------------------
Private Sub CommandButton1_Click()

Dim strLocaction As Variant
Dim strValue As String
Dim strKopie As String

strLocaction = ActiveWindow.RangeSelection.Address
Sheets("Berechnungen").Select ´3tes Sheet selektieren
ActiveSheet.Range(strLocaction).Select ´gleiche Zelle selektieren
ActiveCell.Value = 2 ´speichern


´ pfeil holen und speichern
Sheets("Paarvergleich").Select
ActiveSheet.Range(strLocaction).Value = ActiveSheet.Range("H22").Value

End Sub
------------------------------------------------------------

...und er funktioniert sogar :))

Vielen Dank trotzdem!