Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dynamische Formatierung aus einer Zelle erstellen

dynamische Formatierung aus einer Zelle erstellen
04.06.2008 01:39:00
Gerhard
hallo...
je später der Abend, desto schräger die Vorstellungen was Excel kann :)
Meine Frage, ist es möglich einer Zelle ein Zellformat zuzuweisen, das aus einem Inhalt einer anderen Zelle besteht?
Z.B.
Tabelle 1 Spalte C werden Zahlen eingetragen. Diese sollen jedoch das "Vorzeichen" aus Tabelle 2, Spalte 4 Zelle 2 erhalten (z.B. HSK63A-)
Normal mache ich das ja über Zellen formatieren - Benutzerdefiniert "HSK63A-"0
Da jedoch meine Mappe mehrmals kopiert und je nach Projekt individuell angepasst wird und das "Vorzeichen" nicht immer das selbe verwendet wird (Jedoch wird pro Mappe immer nur ein einziges bestimmtes Vorzeichen verwendet!) hätte ich gerne dieses Format dynamisch, so das nicht immer das Format von Hand geändert werden muss.
Ist dies überhaupt möglich?
LG Gerhard

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

Betreff
Datum
Anwender
Anzeige
AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 08:14:43
Gerhard
ok ich habe meinen Grips nochmals ein wenig angestrengt und habe folgendes überlegt:
Über eine bedingte Formatierung das evtl. zu lösen.
Habe das "Vorzeichen" mit auf Tabelle 1 gelegt und so versucht nachfolgende Formel in eine Bedingte Formatierung zu kopieren:
=WENN($R8>1;$BU$7&$R8;0)
in einer Zelle funktioniert diese Formel wunderbar allerdings bei der bedingten Formatierung ned. Woran liegt es? Bin ich "gedanklich2 völlig auf dem Holzweg und "missbrauche" die bedingte Formatierung und ist die Formel hierfür nicht geeignet oder muss diese Formel umgebaut werden?
Gruß Gerhard

Anzeige
AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 08:33:00
David
Bedingte Formatierung funzt hier definitiv nicht. Du kannst damit nur das "Aussehen" einer Zelle verändern, z. Bsp. Farbe, Rahmen, Hintergrund aber auf keinen Fall den Zellinhalt.
Außerdem muss eine Formel in der bedingten Formatierung einen Wahrheitswert ergeben (WAHR/FALSCH), alles andere geht nicht.
Ich muss ehrlich gestehen, ich habe noch nicht ganz verstanden, was du überhaupt erreichen willst.
Gruß
David

AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 08:55:51
Gerhard
Moin David
so etwas in der Richtung habe ich mir schon gedacht :(
Was ich genau damit will? Ich versuche es zu erklären (dauert ein wenig länger weil zum Hochladen die Datei zu groß ist)
Via UF werden Eintragungen in die Mappe gemacht u.a. auch eine Werkzeugnummer. Auf diese Werkzeugnummer wird später mit VBA zugegriffen um eine Suche in einer anderen Mappe zu starten.
Damit der Eintrag in die Spalte aber immer "richtig" ist, wollte ich das das Vorzeichen von Excel eingefügt wird (z.B. HSK63A) und der Benutzer der Mappe lediglich die Zahl eingeben muss (das wird man von Benutzern ja noch verlangen können, weil die Erfahrung hat gezeigt das meisten Fehler bei Eingabe des "Vorzeichens" gemacht werden - HSK63- HSK-A63 usw. und somit die Suchfunktion nicht mehr funktioniert)
Da diese Mappe eine "Vorlagenmappe wird (wird später einfach per VBA kopiert und über eine "Installations UF" die benötigten Angaben gemacht und auf diverse Sheets eingetragen) habe ich es mir so gedacht:
In dieser "installations"UF wird eine Eintragung des Kürzels / Vorzeichen gemacht(diese können lauten z.B. HSK63A-; HSK100A; MAS-BT40 etc., je nach dem für welche Maschine / Projekt die Mappe verwendet wird). Diese werden dann mittels VBA in die Mappen eingetragen, wo das Vorzeichen benötigt wird. Somit wird immer das gleiche Vorzeichen in allen Mappen verwendet, wenn es möglich gewesen wäre dass Vorzeichen mittels bedingter Formatierung zu lösen.
Leider ist das einfügen einer "Hilfsspalte" nicht mehr möglich, da ich mit Proggen der Mappen schon ziemlich fertig bin und mir gestern beim Testen genau dieser Fehler einer Falscheingabe des Vorzeichens unterlaufen ist.
Ich hoffe es ist rübergekommen was ich "will"
Evtl vllt. ne Lösung über VBA mittel WorksheetChange in der betreffenden Spalte möglich?
Oder kann man via VBA auch die Bedingte Formatierung anspechen?
Gruß Gerhard

Anzeige
AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 09:09:22
David
Für VBA bin ich nicht der Richtige.
Das ganze hört sich danach an, als ob man einfach mit Textverknüpfungen arbeiten könnte. Sozusagen eine Formel nach dem Muster ="HSK63A-"&A1. Diesen String kannst du natürlich auch in anderen Funktionen weiterverwenden, auch als Formel.
Hilft dir das weiter?
Gruß
David

AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 09:49:03
Gerhard
Genau richtig David.
allerdings in dem Sheet selber isses nichtmehr möglich, da ich ja dazu eine "Hilfspalte" benötigen würde
z:b A1= B1&C1
A1 wäre die angezeigte Zelle (HSK63A-500) B1 wäre das Kürzel (HSK63A-) und C1 die Wz Nummer ohne Vorzeichen (500).
Jetzt das ganze in VBA und ich wäre glücklich... Keiner ne Idee ohne Hilfsspalte?

Anzeige
AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 10:40:00
David
Diesen String kannst du natürlich auch in anderen Funktionen weiterverwenden, auch als Formel.

Damit meinte ich eine Lösung OHNE Hilfsspalte. Da ich nicht weiß, was du mit dem eingegebenen Wert machen willst, hatte ich das allgemein formuliert.
Statt in einer Folge-Formel auf die Hilfszelle A1 zu verweisen, einfach die Verkettungs-Formel einfügen.
Aber irgendwie habe ich das Gefühl, wir reden aneinander vorbei...
Vielleicht doch ein Beispiel?
Gruß

AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 11:40:26
Gerhard
David danke erst mal für deine Geduld....
hier eine kleine Beispielmappe, ich hoffe jetzt kommt es besser rüber was ich mir vorstelle
https://www.herber.de/bbs/user/52806.xls
lg

Anzeige
AW: dynamische Formatierung aus einer Zelle erstellen
04.06.2008 12:18:32
David
Versuchs mal so:

Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public strLastCell As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If strLastCell  "" Then
' Für Zelle A8, sonst anpassen.
If Range(strLastCell).Address = "$A$8" Then
If GetAsyncKeyState(&HD) = -32768 Then
Range("A8").Value = Range("D1").Value & Range("A8").Value
End If
End If
End If
strLastCell = Target.Address
End Sub


Allerdings kollidiert das mit dem Code, den du schon im Tabellenblatt stehen hast. Wenn ich diesen hier dort mit einfüge, funzt es nicht (Zelle wird bis zur maximalen Zeichenanzahl gefüllt), wenn ich deinen Code deaktiviere, dann gehts.
Wenn du das selbst nicht "heilen" kannst, müssen die anderen VBA-Experten ran, so gut bin ich nicht.
Auch für diese Lösung möchte ich mich nicht mit fremden Federn schmücken:
Dieser Beitrag https://www.herber.de/forum/archiv/688to692/t691315.htm
war meine Grundlage.
Gruß
David

Anzeige
Was ist an diesem Code falsch?
04.06.2008 16:21:31
Gerhard
Danke David!!!
Sieht schon mal ned schlecht aus... auch ich bin in VBA ned so bewandert :)
Jetzt bezieht sich das ja nur auf Zelle A8. Klasse wäre die ganze Spalte.
Das mit meinem Code, war der klägliche Versuch es selbst zu lösen. Allerdings habe ich null Plan wieso die Zelle bis zur maximalen Anzahl von Zeichen aufgefüllt wird...
Hier mal der Code (vllt weis jemand anders noch ne lösung?)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WZNUMMER As String
Dim ZELLE As Range
kürzel = ActiveWorkbook.Worksheets("Tabelle1").Cells(1, 4)
If Target.Column = 1 And Target.Row >= 4 And Target.Cells.Count Then
If Target.Value > 0 Then
WZNUMMER = ActiveWorkbook.Worksheets("Tabelle1").Cells(Target.Row, 1).Text
Set ZELLE = ActiveWorkbook.Worksheets("Tabelle1").Cells(Target.Row, Target.Column). _
Cells
ZELLE = kürzel & WZNUMMER
End If
End If
End Sub


Anzeige
AW: Was ist an diesem Code falsch - Endlosschleife
04.06.2008 16:36:00
Gerhard
ok habe es selbst rausgefunden... klassischer Fall von Endlosschleife, weil dieser code ja immer anspringt, wenn eine Änderung in dieser Spalte vorgenommen wird.
Wie bringe ich dem Code bei, das nach einer Eintragung schluss ist?
LG Gerhard

erledigt
04.06.2008 16:47:51
Gerhard
ok habe es selbst gelöst
Trotzdem Danke an David!!!
Hier die Lösung

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WZNUMMER As String
Dim ZELLE As Range
Application.EnableEvents = False
On Error GoTo Errhandling
kürzel = ActiveWorkbook.Worksheets("Tabelle1").Cells(1, 4)
If Target.Column = 1 And Target.Row >= 4 And Target.Cells.Count Then
If Target.Value > 0 Then
WZNUMMER = ActiveWorkbook.Worksheets("Tabelle1").Cells(Target.Row, 1).Text
Set ZELLE = ActiveWorkbook.Worksheets("Tabelle1").Cells(Target.Row, Target.Column). _
Cells
ZELLE = kürzel & WZNUMMER
End If
End If
Errhandling:
Application.EnableEvents = True
End Sub


Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige